diff --git a/app/Classes/General/Eloquent/Filters/WhereHasOwnersAndNotNull.php b/app/Classes/General/Eloquent/Filters/WhereHasOwnersAndNotNull.php new file mode 100644 index 00000000..b10fd92d --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/WhereHasOwnersAndNotNull.php @@ -0,0 +1,22 @@ +whereHas('owners', function ($query) use ($value) { + return $query->whereNotNull($value); + }); + } + +} \ No newline at end of file diff --git a/app/Classes/General/Eloquent/Filters/WhereHasOwnersAndNull.php b/app/Classes/General/Eloquent/Filters/WhereHasOwnersAndNull.php new file mode 100644 index 00000000..a9317771 --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/WhereHasOwnersAndNull.php @@ -0,0 +1,22 @@ +whereHas('owners', function ($query) use ($value) { + return $query->whereNull($value); + }); + } + +} \ No newline at end of file diff --git a/app/Http/Controllers/Imports/ImportStatementInvoiceController.php b/app/Http/Controllers/Imports/ImportStatementInvoiceController.php index 56eecc7d..b6cfd567 100644 --- a/app/Http/Controllers/Imports/ImportStatementInvoiceController.php +++ b/app/Http/Controllers/Imports/ImportStatementInvoiceController.php @@ -57,13 +57,13 @@ class ImportStatementInvoiceController } // if still unable to map, will try to check the shipping_info without TOPUP - foreach (['exchange','izyim'] as $system) { - $returnReference = $this->mappingTopUp($row, $system); - if ($returnReference) { - $row['mapped_result_reference'] = $returnReference; - $row['mapped_status'] = 'success'; - } - } + // foreach (['exchange','izyim'] as $system) { + // $returnReference = $this->mappingTopUp($row, $system); + // if ($returnReference) { + // $row['mapped_result_reference'] = $returnReference; + // $row['mapped_status'] = 'success'; + // } + // } return $row; } @@ -155,16 +155,18 @@ class ImportStatementInvoiceController private function mappingExchange(Array $row) { $date = $row['date']; - $transactions = Transaction::getReceiverWithJoinStatementTransactionAndOwner($row)->select('transactions.*')->where('statement_transactions.amount', $row['net_total'])->whereRaw("DATE(posting_date) = '$date'")->get(); - - if ($transactions && $transactions->count() == 0) { - $transactions = Transaction::getReceiverWithJoinStatementTransactionAndOwner($row)->select('transactions.*')->where(DB::raw('FLOOR(statement_transactions.amount)'), floor($row['net_total']))->whereRaw("DATE(posting_date) = '$date'")->get(); + $transaction = Transaction::getReceiverWithJoinStatementTransactionAndOwner($row)->select('transactions.*')->where('owner_reference', $row['shipping_info'])->first(); + + if ($transaction && $transaction->count() == 0) { + $transaction = Transaction::getReceiverWithJoinStatementTransactionAndOwner($row)->select('transactions.*')->where('statement_transactions.amount', $row['net_total'])->whereRaw("DATE(posting_date) = '$date'")->first(); } - if ($transactions && $transactions->count() == 1) { - foreach ($transactions as $key => $transaction) { - return $this->updateTransactionOwnerReference($transaction, $row['doc_no']); - } + if ($transaction && $transaction->count() == 0) { + $transaction = Transaction::getReceiverWithJoinStatementTransactionAndOwner($row)->select('transactions.*')->where(DB::raw('FLOOR(statement_transactions.amount)'), floor($row['net_total']))->whereRaw("DATE(posting_date) = '$date'")->first(); + } + + if ($transaction && $transaction->count() > 0) { + return $this->updateTransactionOwnerReference($transaction, $row['doc_no']); } return false; } diff --git a/app/Http/Resources/BankStatementTransactionResource.php b/app/Http/Resources/BankStatementTransactionResource.php index 993b8c93..8f5e0193 100644 --- a/app/Http/Resources/BankStatementTransactionResource.php +++ b/app/Http/Resources/BankStatementTransactionResource.php @@ -34,7 +34,8 @@ class BankStatementTransactionResource extends JsonResource 'owners' => [ 'approved' => BankStatementTransactionOwnerResource::collection($this->owners()->whereIn('status', [ApprovalStatus::APPROVED])->get()), 'pending_verification' => BankStatementTransactionOwnerResource::collection($this->owners()->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION])->get()), - 'rejected' => BankStatementTransactionOwnerResource::collection($this->owners()->whereIn('status', [ApprovalStatus::REJECTED])->get()) + 'rejected' => BankStatementTransactionOwnerResource::collection($this->owners()->whereIn('status', [ApprovalStatus::REJECTED])->get()), + 'completed' => BankStatementTransactionOwnerResource::collection($this->owners()->whereIn('status', [ApprovalStatus::COMPLETED])->get()), ] ]; } diff --git a/resources/assets/vue/components/accounting/elements/StatementTransactionMappedComponent.vue b/resources/assets/vue/components/accounting/elements/StatementTransactionMappedComponent.vue index e4186bb6..e37e4f3b 100644 --- a/resources/assets/vue/components/accounting/elements/StatementTransactionMappedComponent.vue +++ b/resources/assets/vue/components/accounting/elements/StatementTransactionMappedComponent.vue @@ -6,11 +6,11 @@