diff --git a/app/Classes/Modules/Accounting/Processors/CreateBankStatementTransactionOwnersProcessor.php b/app/Classes/Modules/Accounting/Processors/CreateBankStatementTransactionOwnersProcessor.php index 164546c3..ccc70032 100644 --- a/app/Classes/Modules/Accounting/Processors/CreateBankStatementTransactionOwnersProcessor.php +++ b/app/Classes/Modules/Accounting/Processors/CreateBankStatementTransactionOwnersProcessor.php @@ -26,7 +26,7 @@ class CreateBankStatementTransactionOwnersProcessor public function execute() { $transactions = StatementTransaction::whereDoesntHave('owners', function($query){ - return $query->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + return $query->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); })->orderBy('posting_date')->get(); // $transactions = StatementTransaction::whereDoesntHave('owners')->where('amount', '<', 0)->get(); @@ -39,12 +39,13 @@ class CreateBankStatementTransactionOwnersProcessor // Exchange Sales $creditTransactions = $this->getTransactions($transaction->posting_date, $transaction->amount, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], $keywords); foreach ($creditTransactions as $creditTransaction) { + $isArray = is_array($creditTransaction); $transaction->owners()->firstOrCreate([ 'type' => StatementTransactionOwnerType::SALES, 'system' => 'EXCHANGE', 'owner_type' => Transaction::class, - 'owner_id'=> $creditTransaction->id, - 'owner_reference'=> $creditTransaction->owner->marking, + 'owner_id'=> $isArray ? $creditTransaction['owner_id'] : $creditTransaction->id, + 'owner_reference'=> $isArray ? $creditTransaction['owner_reference'] : $creditTransaction->owner->marking, ]); } @@ -65,12 +66,13 @@ class CreateBankStatementTransactionOwnersProcessor // Exchange Wallet Top Up $creditTransactions = $this->getTransactions($transaction->posting_date, $transaction->amount, TransactionType::TOP_UP, Wallet::class, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], $keywords); foreach ($creditTransactions as $creditTransaction) { + $isArray = is_array($creditTransaction); $transaction->owners()->firstOrCreate([ 'type' => StatementTransactionOwnerType::WALLET_TOP_UP, 'system' => 'EXCHANGE', 'owner_type' => Transaction::class, - 'owner_id'=> $creditTransaction->id, - 'owner_reference'=> $creditTransaction->owner->owner->reference, + 'owner_id'=> $isArray ? $creditTransaction['owner_id'] : $creditTransaction->id, + 'owner_reference'=> $isArray ? $creditTransaction['owner_reference'] : $creditTransaction->owner->owner->reference, ]); } @@ -136,12 +138,13 @@ class CreateBankStatementTransactionOwnersProcessor // Exchange Wallet Withdrawal $debitTransactions = $this->getTransactions($transaction->posting_date, $transaction->amount, TransactionType::DEBIT_NOTE, Wallet::class, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], $keywords); foreach ($debitTransactions as $debitTransaction) { + $isArray = is_array($creditTransaction); $transaction->owners()->firstOrCreate([ 'type' => StatementTransactionOwnerType::WALLET_WITHDRAWAL, 'system' => 'EXCHANGE', 'owner_type' => Transaction::class, - 'owner_id'=> $debitTransaction->id, - 'owner_reference'=> $debitTransaction->owner->owner->marking, + 'owner_id'=> $isArray ? $debitTransaction['owner_id'] : $debitTransaction->id, + 'owner_reference'=> $isArray ? $debitTransaction['owner_reference'] : $debitTransaction->owner->owner->marking, ]); } @@ -271,10 +274,8 @@ class CreateBankStatementTransactionOwnersProcessor return $query->get(); } else { $result = $this->getTransactionsFromExchange($amount, $dateRange, $type, $ownerType, $paymentMethod); - $transactionsId = Arr::pluck($result, 'owner_id'); - $query = $model::whereIn('id', $transactionsId); - return $query->get(); + return $result; } }