fix mapping fail when more than one file is import

This commit is contained in:
JiaSheng
2023-09-21 17:37:57 +08:00
parent 6542710ba9
commit 0c2aa95bd4
@@ -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;
}
}