From c94173a097c2210ff222640718144633abe557c1 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 04:18:11 +0800 Subject: [PATCH 01/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index effac446..53ae34b2 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -61,7 +61,7 @@ class ImportBankRecordController }); }) ->WhereDate('created_at', $date->format('Y-m-d')) - ->where('amount', '>=', $credit)->where('amount', '<', ($credit + 0.01)) + ->where('amount', '>', ($credit - 0.01))->where('amount', '<', ($credit + 0.01)) ->get(); if(count($transactions)) { From a84610b5ee8f3d123db151f3ceb80731bcc99b15 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 04:49:15 +0800 Subject: [PATCH 02/21] import bank record --- .../Imports/ImportBankRecordController.php | 76 ++++++++++++++----- 1 file changed, 55 insertions(+), 21 deletions(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 53ae34b2..c7baa997 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -8,6 +8,7 @@ use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\PaymentMethodType; use App\Classes\ValueObjects\Constants\TransactionType; use App\Models\Booking; +use App\Models\Group; use App\Models\Transaction; use App\Models\Wallet; use Illuminate\Http\Request; @@ -30,6 +31,7 @@ class ImportBankRecordController Bank Description Credit + debit Pay For System Reference Human Reference @@ -49,39 +51,70 @@ class ImportBankRecordController foreach ($sheet as $row) { $date = Date::excelToDateTimeObject($row['date']); $credit = (float) $row['credit']; + $debit = (float) $row['debit']; $systemReference = null; $multiple = 'No'; - $transactions = Transaction::whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) - ->where(function ($query){ - return $query->where(function ($query){ - return $query->where('type', TransactionType::PAYMENT)->where('owner_type', Booking::class)->where('payment_method', '!=', PaymentMethodType::WALLET); - })->orWhere(function ($query){ - $query->where('type', TransactionType::TOP_UP); - }); - }) - ->WhereDate('created_at', $date->format('Y-m-d')) - ->where('amount', '>', ($credit - 0.01))->where('amount', '<', ($credit + 0.01)) - ->get(); - if(count($transactions)) { - foreach ($transactions as $transaction){ - if($transaction->owner instanceof Booking){ - $systemReference[] = $transaction->owner->marking; + + if($credit){ + $payments = Transaction::whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) + ->where(function ($query){ + return $query->where(function ($query){ + return $query->where('type', TransactionType::PAYMENT)->where('owner_type', Booking::class)->where('payment_method', '!=', PaymentMethodType::WALLET); + })->orWhere(function ($query){ + $query->where('type', TransactionType::TOP_UP); + }); + }) + ->WhereDate('created_at', $date->format('Y-m-d')) + ->where('amount', '>', ($credit - 0.01))->where('amount', '<', ($credit + 0.01)) + ->get(); + + if(count($payments)) { + foreach ($payments as $transaction){ + if($transaction->owner instanceof Booking){ + $systemReference[] = $transaction->owner->marking; + } + + if($transaction->owner instanceof Wallet){ + $systemReference[] = $transaction->bill_no; + } } - if($transaction->owner instanceof Wallet){ - $systemReference[] = $transaction->bill_no; + if(count($systemReference) > 1) { + $multiple = 'Yes'; } - } + $systemReference = implode(',', $systemReference); + + } + } + if($debit){ + $bills = Group::WhereDate('created_at', $date->format('Y-m-d')) + ->where('amount', '>', ($debit - 0.01))->where('amount', '<', ($debit + 0.01)) + ->get(); + + if(count($bills)) { + foreach ($bills as $transaction){ + if($transaction->owner instanceof Booking){ + $systemReference[] = $transaction->owner->marking; + } + + if($transaction->owner instanceof Wallet){ + $systemReference[] = $transaction->bill_no; + } + } + + if(count($systemReference) > 1) { + $multiple = 'Yes'; + } + $systemReference = implode(',', $systemReference); - if(count($systemReference) > 1) { - $multiple = 'Yes'; } - $systemReference = implode(',', $systemReference); } + + $matches = $systemReference == $row['remarkreferences'] ? 'Yes' : 'No'; echo ' @@ -89,6 +122,7 @@ class ImportBankRecordController '.$branch.' '.$row['description'].' '.$credit.' + '.$debit.' '.$row['pay_for'].' '.$systemReference.' '.$row['remarkreferences'].' From fd991d19e0ea866c0790dff7d4d9aeaa31986c48 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 05:02:45 +0800 Subject: [PATCH 03/21] import bank record --- .../Imports/ImportBankRecordController.php | 162 ++++++++---------- 1 file changed, 71 insertions(+), 91 deletions(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index c7baa997..a8b8b147 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -20,117 +20,97 @@ class ImportBankRecordController /** * @param Request $request * @return array - * @throws \App\Classes\Exceptions\MalformedRequestException */ public function import(Request $request) { -// $object = new DocumentObject('', $request->input('files'), '', ApprovalStatus::APPROVED, 'imports'); - - echo ' - - - - - - - - - - - - '; - - $collection = Excel::toCollection(new ImportsBankRecord(), 'daily_transaction_nov.xlsx'); + $headers = [ + 'Date', + 'Bank', + 'Description', + 'Credit', + 'Debit', + 'Pay For', + 'System Reference', + 'Human Reference', + 'Multiple', + 'Match?', + ]; $branches = [ 0 => 'MBB Cyber', - 1 => 'MBB SS2' + 1 => 'MBB SS2', ]; + $yes = 'Yes'; + $no = 'No'; + + $table = '
DateBankDescriptionCreditdebitPay ForSystem ReferenceHuman ReferenceMultipleMatch?
'; + + $collection = Excel::toCollection(new ImportsBankRecord(), 'daily_transaction_nov.xlsx'); + foreach ($collection as $key => $sheet){ - $branch = $branches[$key]; + $branch = $branches[$key]; foreach ($sheet as $row) { $date = Date::excelToDateTimeObject($row['date']); $credit = (float) $row['credit']; $debit = (float) $row['debit']; + + $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + $debitTransactions = $this->getTransactions($date, $debit, null, null, null, null, Group::class); + $systemReference = null; - $multiple = 'No'; - - - - if($credit){ - $payments = Transaction::whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]) - ->where(function ($query){ - return $query->where(function ($query){ - return $query->where('type', TransactionType::PAYMENT)->where('owner_type', Booking::class)->where('payment_method', '!=', PaymentMethodType::WALLET); - })->orWhere(function ($query){ - $query->where('type', TransactionType::TOP_UP); - }); - }) - ->WhereDate('created_at', $date->format('Y-m-d')) - ->where('amount', '>', ($credit - 0.01))->where('amount', '<', ($credit + 0.01)) - ->get(); - - if(count($payments)) { - foreach ($payments as $transaction){ - if($transaction->owner instanceof Booking){ - $systemReference[] = $transaction->owner->marking; - } - - if($transaction->owner instanceof Wallet){ - $systemReference[] = $transaction->bill_no; - } - } - - if(count($systemReference) > 1) { - $multiple = 'Yes'; - } - $systemReference = implode(',', $systemReference); - - } - } - if($debit){ - $bills = Group::WhereDate('created_at', $date->format('Y-m-d')) - ->where('amount', '>', ($debit - 0.01))->where('amount', '<', ($debit + 0.01)) - ->get(); - - if(count($bills)) { - foreach ($bills as $transaction){ - if($transaction->owner instanceof Booking){ - $systemReference[] = $transaction->owner->marking; - } - - if($transaction->owner instanceof Wallet){ - $systemReference[] = $transaction->bill_no; - } - } - - if(count($systemReference) > 1) { - $multiple = 'Yes'; - } - $systemReference = implode(',', $systemReference); - - } + $multiple = count($creditTransactions) + count($debitTransactions) > 1 ? $yes : $no; + foreach ($creditTransactions as $transaction) { + $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; } + foreach ($debitTransactions as $transaction) { + $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; + } + $systemReference = $systemReference ? implode(',', $systemReference) : null; - $matches = $systemReference == $row['remarkreferences'] ? 'Yes' : 'No'; + $matches = $systemReference == $row['remarkreferences'] ? $yes : $no; - echo ' - - - - - - - - - - - '; + $table .= ' + + + + + + + + + + + '; } } -// return []; + + $table .= '
'.implode('', $headers).'
'.$date->format('d-m-Y').''.$branch.''.$row['description'].''.$credit.''.$debit.''.$row['pay_for'].''.$systemReference.''.$row['remarkreferences'].''.$multiple.''.$matches.'
'.$date->format('d-m-Y').''.$branch.''.$row['description'].''.$credit.''.$debit.''.$row['pay_for'].''.$systemReference.''.$row['remarkreferences'].''.$multiple.''.$matches.'
'; + + echo $table; + } + + private function getTransactions($date, $amount, $type, $ownerType, $paymentMethod, $statuses, $model = Transaction::class) { + $query = $model::whereIn('status', $statuses) + ->where(function ($query) use ($ownerType, $paymentMethod, $type) { + if ($ownerType) { + $query->where('owner_type', $ownerType); + } + + if ($paymentMethod) { + $query->where('payment_method', '!=', $paymentMethod); + } + + if ($type) { + $query->where('type', $type); + } + }) + ->whereDate('created_at', $date->format('Y-m-d')) + ->where('amount', '>', ($amount - 0.01)) + ->where('amount', '<', ($amount + 0.01)); + + return $query->get(); } } From 99beec842811996ba96ed7d331569b0cf5fc5ec7 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 05:05:54 +0800 Subject: [PATCH 04/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index a8b8b147..51f664b2 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -55,7 +55,7 @@ class ImportBankRecordController $debit = (float) $row['debit']; $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); - $debitTransactions = $this->getTransactions($date, $debit, null, null, null, null, Group::class); + $debitTransactions = $this->getTransactions($date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); $systemReference = null; $multiple = count($creditTransactions) + count($debitTransactions) > 1 ? $yes : $no; From 4ade33a2ce74784827059b0b65771b925b525e8a Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 05:10:19 +0800 Subject: [PATCH 05/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 51f664b2..6b0f212e 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -65,7 +65,7 @@ class ImportBankRecordController } foreach ($debitTransactions as $transaction) { - $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; + $systemReference[] = $transaction->reference; } $systemReference = $systemReference ? implode(',', $systemReference) : null; From 422a7c9d65ec2a9a222ac25d9bc06792e82cd1ac Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 05:17:56 +0800 Subject: [PATCH 06/21] import bank record --- .../Imports/ImportBankRecordController.php | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 6b0f212e..43799bfd 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -2,7 +2,6 @@ namespace App\Http\Controllers\Imports; -use App\Classes\Modules\Documents\DataTransferObjects\DocumentObject; use App\Classes\Modules\Imports\Services\ImportsBankRecord; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\PaymentMethodType; @@ -10,7 +9,6 @@ use App\Classes\ValueObjects\Constants\TransactionType; use App\Models\Booking; use App\Models\Group; use App\Models\Transaction; -use App\Models\Wallet; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; use PhpOffice\PhpSpreadsheet\Shared\Date; @@ -53,21 +51,28 @@ class ImportBankRecordController $date = Date::excelToDateTimeObject($row['date']); $credit = (float) $row['credit']; $debit = (float) $row['debit']; - - $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); - $debitTransactions = $this->getTransactions($date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); + $creditTransactions = []; + $debitTransactions = []; $systemReference = null; + + if($credit){ + $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + foreach ($creditTransactions as $transaction) { + $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; + } + } + + if($debit){ + $debitTransactions = $this->getTransactions($date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); + foreach ($debitTransactions as $transaction) { + $systemReference[] = $transaction->reference; + } + } + + $multiple = count($creditTransactions) + count($debitTransactions) > 1 ? $yes : $no; - foreach ($creditTransactions as $transaction) { - $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; - } - - foreach ($debitTransactions as $transaction) { - $systemReference[] = $transaction->reference; - } - $systemReference = $systemReference ? implode(',', $systemReference) : null; $matches = $systemReference == $row['remarkreferences'] ? $yes : $no; From 85d38c36459a8f44ffecdddc0fb2b03b39d9e805 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 05:21:38 +0800 Subject: [PATCH 07/21] import bank record --- .../Imports/ImportBankRecordController.php | 125 +++++++++++------- 1 file changed, 78 insertions(+), 47 deletions(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 43799bfd..3c0ebb1b 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -10,6 +10,8 @@ use App\Models\Booking; use App\Models\Group; use App\Models\Transaction; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Cache; +use Illuminate\Support\Facades\DB; use Maatwebsite\Excel\Facades\Excel; use PhpOffice\PhpSpreadsheet\Shared\Date; @@ -19,7 +21,8 @@ class ImportBankRecordController * @param Request $request * @return array */ - public function import(Request $request) { + public function import(Request $request) + { $headers = [ 'Date', 'Bank', @@ -41,55 +44,59 @@ class ImportBankRecordController $yes = 'Yes'; $no = 'No'; - $table = ''; + $table = '
'.implode('', $headers).'
'; - $collection = Excel::toCollection(new ImportsBankRecord(), 'daily_transaction_nov.xlsx'); + $cacheKey = 'bank_transaction_data'; - foreach ($collection as $key => $sheet){ - $branch = $branches[$key]; - foreach ($sheet as $row) { - $date = Date::excelToDateTimeObject($row['date']); - $credit = (float) $row['credit']; - $debit = (float) $row['debit']; - $creditTransactions = []; - $debitTransactions = []; + $data = Cache::get($cacheKey); - $systemReference = null; + if (!$data) { + $data = $this->fetchDataFromDatabase(); + Cache::put($cacheKey, $data, now()->addMinutes(60)); + } - if($credit){ - $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); - foreach ($creditTransactions as $transaction) { - $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; - } + foreach ($data as $row) { + $branch = $branches[$row->branch_id]; + + $credit = (float)$row->credit; + $debit = (float)$row->debit; + $creditTransactions = []; + $debitTransactions = []; + + $systemReference = null; + + if ($credit) { + $creditTransactions = $this->getTransactions($row->date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + foreach ($creditTransactions as $transaction) { + $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; } - - if($debit){ - $debitTransactions = $this->getTransactions($date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); - foreach ($debitTransactions as $transaction) { - $systemReference[] = $transaction->reference; - } - } - - - $multiple = count($creditTransactions) + count($debitTransactions) > 1 ? $yes : $no; - - $systemReference = $systemReference ? implode(',', $systemReference) : null; - - $matches = $systemReference == $row['remarkreferences'] ? $yes : $no; - - $table .= ' - - - - - - - - - - - '; } + + if ($debit) { + $debitTransactions = $this->getTransactions($row->date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); + foreach ($debitTransactions as $transaction) { + $systemReference[] = $transaction->reference; + } + } + + $multiple = count($creditTransactions) + count($debitTransactions) > 1 ? $yes : $no; + + $systemReference = $systemReference ? implode(',', $systemReference) : null; + + $matches = $systemReference == $row->remark_references ? $yes : $no; + + $table .= ' + + + + + + + + + + + '; } $table .= '
' . implode('', $headers) . '
'.$date->format('d-m-Y').''.$branch.''.$row['description'].''.$credit.''.$debit.''.$row['pay_for'].''.$systemReference.''.$row['remarkreferences'].''.$multiple.''.$matches.'
' . $row->date->format('d-m-Y') . '' . $branch . '' . $row->description . '' . $credit . '' . $debit . '' . $row->pay_for . '' . $systemReference . '' . $row->remark_references . '' . $multiple . '' . $matches . '
'; @@ -97,7 +104,30 @@ class ImportBankRecordController echo $table; } - private function getTransactions($date, $amount, $type, $ownerType, $paymentMethod, $statuses, $model = Transaction::class) { + private function fetchDataFromDatabase() + { + $data = DB::table('bank_transactions') + ->select([ + 'date', + 'branch_id', + 'description', + 'credit', + 'debit', + 'pay_for', + 'remark_references', + ]) + ->get(); + + $data = $data->map(function ($row) { + $row->date = Date::excelToDateTimeObject($row->date); + return $row; + }); + + return $data; + } + + private function getTransactions($date, $amount, $type, $ownerType, $paymentMethod, $statuses, $model = Transaction::class) + { $query = $model::whereIn('status', $statuses) ->where(function ($query) use ($ownerType, $paymentMethod, $type) { if ($ownerType) { @@ -114,8 +144,9 @@ class ImportBankRecordController }) ->whereDate('created_at', $date->format('Y-m-d')) ->where('amount', '>', ($amount - 0.01)) - ->where('amount', '<', ($amount + 0.01)); + ->where('amount', '<', ($amount + 0.01)) + ->cursor(); - return $query->get(); + return $query; } } From 779de8a7e9de9009aad55634babc7b3f83a1fe8a Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 05:24:05 +0800 Subject: [PATCH 08/21] import bank record --- .../Imports/ImportBankRecordController.php | 117 +++++++----------- 1 file changed, 45 insertions(+), 72 deletions(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 3c0ebb1b..ebf1ea61 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -10,8 +10,6 @@ use App\Models\Booking; use App\Models\Group; use App\Models\Transaction; use Illuminate\Http\Request; -use Illuminate\Support\Facades\Cache; -use Illuminate\Support\Facades\DB; use Maatwebsite\Excel\Facades\Excel; use PhpOffice\PhpSpreadsheet\Shared\Date; @@ -21,8 +19,7 @@ class ImportBankRecordController * @param Request $request * @return array */ - public function import(Request $request) - { + public function import(Request $request) { $headers = [ 'Date', 'Bank', @@ -44,59 +41,59 @@ class ImportBankRecordController $yes = 'Yes'; $no = 'No'; - $table = ''; + $table = '
' . implode('', $headers) . '
'; - $cacheKey = 'bank_transaction_data'; + $collection = Excel::toCollection(new ImportsBankRecord(), 'daily_transaction_nov.xlsx'); - $data = Cache::get($cacheKey); + foreach ($collection as $key => $sheet){ + $branch = $branches[$key]; + foreach ($sheet as $row) { + $date = Date::excelToDateTimeObject($row['date']); + $credit = (float) $row['credit']; + $debit = (float) $row['debit']; + $creditTransactions = []; + $debitTransactions = []; - if (!$data) { - $data = $this->fetchDataFromDatabase(); - Cache::put($cacheKey, $data, now()->addMinutes(60)); - } + $systemReference = null; - foreach ($data as $row) { - $branch = $branches[$row->branch_id]; - - $credit = (float)$row->credit; - $debit = (float)$row->debit; - $creditTransactions = []; - $debitTransactions = []; - - $systemReference = null; - - if ($credit) { - $creditTransactions = $this->getTransactions($row->date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); - foreach ($creditTransactions as $transaction) { - $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; + if($credit){ + $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + foreach ($creditTransactions as $transaction) { + $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; + } } - } - if ($debit) { - $debitTransactions = $this->getTransactions($row->date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); - foreach ($debitTransactions as $transaction) { - $systemReference[] = $transaction->reference; + if($debit){ + $debitTransactions = $this->getTransactions($date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); + foreach ($debitTransactions as $transaction) { + $systemReference[] = $transaction->reference; + } } - } - $multiple = count($creditTransactions) + count($debitTransactions) > 1 ? $yes : $no; - $systemReference = $systemReference ? implode(',', $systemReference) : null; + $multiple = count($creditTransactions) + count($debitTransactions) > 1 ? $yes : $no; - $matches = $systemReference == $row->remark_references ? $yes : $no; - $table .= ' - - - - - - - - - - + + + + $systemReference = $systemReference ? implode(',', $systemReference) : null; + + $matches = $systemReference == $row['remarkreferences'] ? $yes : $no; + + $table .= ' + + + + + + + + + + '; + } } $table .= '
'.implode('', $headers).'
' . $row->date->format('d-m-Y') . '' . $branch . '' . $row->description . '' . $credit . '' . $debit . '' . $row->pay_for . '' . $systemReference . '' . $row->remark_references . '' . $multiple . '' . $matches . '
'.$date->format('d-m-Y').''.$branch.''.$row['description'].''.$credit.''.$debit.''.$row['pay_for'].''.$systemReference.''.$row['remarkreferences'].''.$multiple.''.$matches.'
'; @@ -104,30 +101,7 @@ class ImportBankRecordController echo $table; } - private function fetchDataFromDatabase() - { - $data = DB::table('bank_transactions') - ->select([ - 'date', - 'branch_id', - 'description', - 'credit', - 'debit', - 'pay_for', - 'remark_references', - ]) - ->get(); - - $data = $data->map(function ($row) { - $row->date = Date::excelToDateTimeObject($row->date); - return $row; - }); - - return $data; - } - - private function getTransactions($date, $amount, $type, $ownerType, $paymentMethod, $statuses, $model = Transaction::class) - { + private function getTransactions($date, $amount, $type, $ownerType, $paymentMethod, $statuses, $model = Transaction::class) { $query = $model::whereIn('status', $statuses) ->where(function ($query) use ($ownerType, $paymentMethod, $type) { if ($ownerType) { @@ -144,9 +118,8 @@ class ImportBankRecordController }) ->whereDate('created_at', $date->format('Y-m-d')) ->where('amount', '>', ($amount - 0.01)) - ->where('amount', '<', ($amount + 0.01)) - ->cursor(); + ->where('amount', '<', ($amount + 0.01)); - return $query; + return $query->get(); } } From 14efd5f60e3723621bbf36e71bce5b2c90349674 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 05:35:11 +0800 Subject: [PATCH 09/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index ebf1ea61..93a05a7b 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -57,7 +57,7 @@ class ImportBankRecordController $systemReference = null; if($credit){ - $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); foreach ($creditTransactions as $transaction) { $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; } From 57cb45062e4f36ae4a43296c3483cedda3c49971 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 05:43:53 +0800 Subject: [PATCH 10/21] import bank record --- .../Controllers/Imports/ImportBankRecordController.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 93a05a7b..94f34bf9 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -9,6 +9,7 @@ use App\Classes\ValueObjects\Constants\TransactionType; use App\Models\Booking; use App\Models\Group; use App\Models\Transaction; +use App\Models\Wallet; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; use PhpOffice\PhpSpreadsheet\Shared\Date; @@ -57,7 +58,12 @@ class ImportBankRecordController $systemReference = null; if($credit){ - $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); + foreach ($creditTransactions as $transaction) { + $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; + } + + $creditTransactions = $this->getTransactions($date, $credit, TransactionType::TOP_UP, Wallet::class, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); foreach ($creditTransactions as $transaction) { $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; } From bf336084b5ef6251a33a38ce95ffd7cb376cfe78 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:20:21 +0800 Subject: [PATCH 11/21] import bank record --- .../Imports/ImportBankRecordController.php | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 94f34bf9..cdf3804d 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -7,6 +7,7 @@ use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\PaymentMethodType; use App\Classes\ValueObjects\Constants\TransactionType; use App\Models\Booking; +use App\Models\Company; use App\Models\Group; use App\Models\Transaction; use App\Models\Wallet; @@ -32,6 +33,7 @@ class ImportBankRecordController 'Human Reference', 'Multiple', 'Match?', + 'System Amount' ]; $branches = [ @@ -50,29 +52,46 @@ class ImportBankRecordController $branch = $branches[$key]; foreach ($sheet as $row) { $date = Date::excelToDateTimeObject($row['date']); + $description = $row['description']; $credit = (float) $row['credit']; $debit = (float) $row['debit']; $creditTransactions = []; $debitTransactions = []; $systemReference = null; + $systemAmount = null; if($credit){ $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); foreach ($creditTransactions as $transaction) { $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; + $systemAmount[] = $transaction->amount; } $creditTransactions = $this->getTransactions($date, $credit, TransactionType::TOP_UP, Wallet::class, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); foreach ($creditTransactions as $transaction) { $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; + $systemAmount[] = $transaction->amount; } } if($debit){ $debitTransactions = $this->getTransactions($date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); + + if(!$debitTransactions) { + foreach (['YSN', 'HCK', 'AVANTIC', 'HIGH HILL'] as $reference){ + if(str_contains($description, $reference)) { + $issuer = Company::where('name', 'like', '%'.$reference.'%')->get()->pluck('id'); + $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', $date->format('Y-m-d')); + break; + } + } + + } + foreach ($debitTransactions as $transaction) { $systemReference[] = $transaction->reference; + $systemAmount[] = $transaction->amount; } } @@ -84,13 +103,14 @@ class ImportBankRecordController $systemReference = $systemReference ? implode(',', $systemReference) : null; + $systemAmount = $systemAmount ? implode(',', $systemAmount) : null; $matches = $systemReference == $row['remarkreferences'] ? $yes : $no; $table .= ' '.$date->format('d-m-Y').' '.$branch.' - '.$row['description'].' + '.$description.' '.$credit.' '.$debit.' '.$row['pay_for'].' @@ -98,6 +118,7 @@ class ImportBankRecordController '.$row['remarkreferences'].' '.$multiple.' '.$matches.' + '.$systemAmount.' '; } } From 26df516ec800148dd3d4a5e8928412b21fb4aed7 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:31:45 +0800 Subject: [PATCH 12/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index cdf3804d..da1b0672 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -11,6 +11,7 @@ use App\Models\Company; use App\Models\Group; use App\Models\Transaction; use App\Models\Wallet; +use Carbon\Carbon; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; use PhpOffice\PhpSpreadsheet\Shared\Date; @@ -51,7 +52,7 @@ class ImportBankRecordController foreach ($collection as $key => $sheet){ $branch = $branches[$key]; foreach ($sheet as $row) { - $date = Date::excelToDateTimeObject($row['date']); + $date = Carbon::instance(Date::excelToDateTimeObject($row['date'])); $description = $row['description']; $credit = (float) $row['credit']; $debit = (float) $row['debit']; @@ -62,6 +63,7 @@ class ImportBankRecordController $systemAmount = null; if($credit){ + continue; $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); foreach ($creditTransactions as $transaction) { $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; @@ -82,7 +84,7 @@ class ImportBankRecordController foreach (['YSN', 'HCK', 'AVANTIC', 'HIGH HILL'] as $reference){ if(str_contains($description, $reference)) { $issuer = Company::where('name', 'like', '%'.$reference.'%')->get()->pluck('id'); - $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', $date->format('Y-m-d')); + $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', '>=', $date->format('Y-m-d'))->whereDate('created_at', '<', $date->addDays(2)->format('Y-m-d')); break; } } From 64624ae2a33b7b5361dea474b60ba3962a852414 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:33:13 +0800 Subject: [PATCH 13/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index da1b0672..2f6d5a53 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -84,6 +84,7 @@ class ImportBankRecordController foreach (['YSN', 'HCK', 'AVANTIC', 'HIGH HILL'] as $reference){ if(str_contains($description, $reference)) { $issuer = Company::where('name', 'like', '%'.$reference.'%')->get()->pluck('id'); + dump($issuer); $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', '>=', $date->format('Y-m-d'))->whereDate('created_at', '<', $date->addDays(2)->format('Y-m-d')); break; } From be80313122f552c14163105b71aaeaa34bcdc79f Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:33:50 +0800 Subject: [PATCH 14/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 2f6d5a53..8fc16e7d 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -79,7 +79,7 @@ class ImportBankRecordController if($debit){ $debitTransactions = $this->getTransactions($date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); - +dump($debitTransactions); if(!$debitTransactions) { foreach (['YSN', 'HCK', 'AVANTIC', 'HIGH HILL'] as $reference){ if(str_contains($description, $reference)) { From f55e6609b6c67799aa477a9cd755d3772d1045a7 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:34:31 +0800 Subject: [PATCH 15/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 8fc16e7d..816962e3 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -79,8 +79,8 @@ class ImportBankRecordController if($debit){ $debitTransactions = $this->getTransactions($date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); -dump($debitTransactions); - if(!$debitTransactions) { + + if(!count($debitTransactions)) { foreach (['YSN', 'HCK', 'AVANTIC', 'HIGH HILL'] as $reference){ if(str_contains($description, $reference)) { $issuer = Company::where('name', 'like', '%'.$reference.'%')->get()->pluck('id'); From 1c0d64fb12869081140096ff20ad4d2553317469 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:36:03 +0800 Subject: [PATCH 16/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 816962e3..4597e132 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -85,7 +85,7 @@ class ImportBankRecordController if(str_contains($description, $reference)) { $issuer = Company::where('name', 'like', '%'.$reference.'%')->get()->pluck('id'); dump($issuer); - $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', '>=', $date->format('Y-m-d'))->whereDate('created_at', '<', $date->addDays(2)->format('Y-m-d')); + $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', '>=', $date->format('Y-m-d'))->whereDate('created_at', '<', $date->addDays(2)->format('Y-m-d'))->get(); break; } } From d31b6cfca680c155bac02e4594920e5223d859d5 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:38:52 +0800 Subject: [PATCH 17/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 4597e132..1b7b27e1 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -84,8 +84,7 @@ class ImportBankRecordController foreach (['YSN', 'HCK', 'AVANTIC', 'HIGH HILL'] as $reference){ if(str_contains($description, $reference)) { $issuer = Company::where('name', 'like', '%'.$reference.'%')->get()->pluck('id'); - dump($issuer); - $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', '>=', $date->format('Y-m-d'))->whereDate('created_at', '<', $date->addDays(2)->format('Y-m-d'))->get(); + $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', '>=', $date->format('Y-m-d'))->whereDate('created_at', '<=', $date->addDays(1)->format('Y-m-d'))->get(); break; } } From 2960b2855d4e12e599923326079648821af52860 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:42:23 +0800 Subject: [PATCH 18/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index 1b7b27e1..b1f9a683 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -63,7 +63,6 @@ class ImportBankRecordController $systemAmount = null; if($credit){ - continue; $creditTransactions = $this->getTransactions($date, $credit, TransactionType::PAYMENT, Booking::class, PaymentMethodType::WALLET, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED]); foreach ($creditTransactions as $transaction) { $systemReference[] = $transaction->owner instanceof Booking ? $transaction->owner->marking : $transaction->bill_no; @@ -81,7 +80,7 @@ class ImportBankRecordController $debitTransactions = $this->getTransactions($date, $debit, null, null, null, [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED], Group::class); if(!count($debitTransactions)) { - foreach (['YSN', 'HCK', 'AVANTIC', 'HIGH HILL'] as $reference){ + foreach (['YSN', 'HCK', 'ATVANTIC', 'HIGH HILL'] as $reference){ if(str_contains($description, $reference)) { $issuer = Company::where('name', 'like', '%'.$reference.'%')->get()->pluck('id'); $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', '>=', $date->format('Y-m-d'))->whereDate('created_at', '<=', $date->addDays(1)->format('Y-m-d'))->get(); From bff743111b0e7dcbbda13b7517766e03840077c0 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:44:13 +0800 Subject: [PATCH 19/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index b1f9a683..afae5389 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -83,7 +83,7 @@ class ImportBankRecordController foreach (['YSN', 'HCK', 'ATVANTIC', 'HIGH HILL'] as $reference){ if(str_contains($description, $reference)) { $issuer = Company::where('name', 'like', '%'.$reference.'%')->get()->pluck('id'); - $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', '>=', $date->format('Y-m-d'))->whereDate('created_at', '<=', $date->addDays(1)->format('Y-m-d'))->get(); + $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', $date->addDays(1)->format('Y-m-d'))->get(); break; } } From aed176f66253e87410b8b2b4eb7fbdc6f5cba81b Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Sat, 18 Mar 2023 06:56:09 +0800 Subject: [PATCH 20/21] import bank record --- app/Http/Controllers/Imports/ImportBankRecordController.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Imports/ImportBankRecordController.php b/app/Http/Controllers/Imports/ImportBankRecordController.php index afae5389..bd0272d2 100644 --- a/app/Http/Controllers/Imports/ImportBankRecordController.php +++ b/app/Http/Controllers/Imports/ImportBankRecordController.php @@ -82,8 +82,12 @@ class ImportBankRecordController if(!count($debitTransactions)) { foreach (['YSN', 'HCK', 'ATVANTIC', 'HIGH HILL'] as $reference){ if(str_contains($description, $reference)) { + $paymentDate = $date->addDays(1)->format('Y-m-d'); + if($reference = 'ATVANTIC'){ + $paymentDate = $date->format('Y-m-d'); + } $issuer = Company::where('name', 'like', '%'.$reference.'%')->get()->pluck('id'); - $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', $date->addDays(1)->format('Y-m-d'))->get(); + $debitTransactions = Group::whereIn('issuer', $issuer)->whereDate('created_at', $paymentDate)->get(); break; } } From a8b69cd6a6cfc4905bd71666bd36d9ff5c32fb2b Mon Sep 17 00:00:00 2001 From: Dillon Date: Sun, 19 Mar 2023 22:16:42 +0800 Subject: [PATCH 21/21] Sync code for bug fixes at Shipping Portal --- .../Modules/PerfexCRM/Services/CreatesPerfexCRMInvoice.php | 7 +++++-- .../Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMInvoice.php b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMInvoice.php index b595a86f..ba0c2755 100644 --- a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMInvoice.php +++ b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMInvoice.php @@ -16,14 +16,17 @@ class CreatesPerfexCRMInvoice */ public function execute(InvoicePerfexCRMObject $invoicePerfexCRMObject) { try{ + $subtotal = floor($invoicePerfexCRMObject->getSubTotal() * 100) / 100; + $total = floor($invoicePerfexCRMObject->getTotal() * 100) / 100; + $data = [ 'clientid' => $invoicePerfexCRMObject->getClientId(), 'number' => $invoicePerfexCRMObject->getNumber(), 'date' => $invoicePerfexCRMObject->getDate(), 'duedate' => $invoicePerfexCRMObject->getDueDate(), 'currency' => $invoicePerfexCRMObject->getCurrency(), - 'subtotal' => number_format($invoicePerfexCRMObject->getSubTotal(), 2, '.', ''), - 'total' => number_format($invoicePerfexCRMObject->getTotal(), 2, '.', ''), + 'subtotal' => number_format($subtotal, 2, '.', ''), + 'total' => number_format($total, 2, '.', ''), 'billing_street' => $invoicePerfexCRMObject->getBillingStreet(), 'project_id' => $invoicePerfexCRMObject->getProjectId(), 'allowed_payment_modes[0]' => 1, diff --git a/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php b/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php index 5240d931..e5e5088b 100644 --- a/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php +++ b/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php @@ -35,6 +35,9 @@ class UpdatesPerfexCRMInvoice array_push($newInvoiceItems,$item); } + $allowedPaymentModes = []; + array_push($allowedPaymentModes, 1, 2); + $data = [ 'number' => $invoice->number, 'date' => $invoice->date, @@ -46,7 +49,7 @@ class UpdatesPerfexCRMInvoice 'shipping_street' => $invoice->billing_street, 'project_id' => $projectId, 'items' => $newInvoiceItems, - 'allowed_payment_modes' => $invoice->allowed_payment_modes, + 'allowed_payment_modes' => $allowedPaymentModes, ]; $response = Http::asJson()->withHeaders([