From c51de540401fb6993ff58c2368bc54a719c97cdb Mon Sep 17 00:00:00 2001 From: omair saleh Date: Fri, 15 Jul 2022 11:40:47 +0800 Subject: [PATCH] fix up group transactions bulk purchase orders --- .../GenerateGroupTransactionsWhiteForm.php | 22 ++++ ...eneratesGroupTransactionsPurchaseOrder.php | 4 +- .../GeneratesGroupTransactionsWhiteForm.php | 73 ++++++++++++ .../RecoverGroupTransactionTableSeeder.php | 111 ++++++++---------- .../seeds/UpdateSuppliersReferenceSeeder.php | 40 +++++++ .../pdfs/supplier_deliver_order.blade.php | 13 +- 6 files changed, 189 insertions(+), 74 deletions(-) create mode 100644 app/Classes/Jobs/GenerateGroupTransactionsWhiteForm.php create mode 100644 app/Classes/Modules/Transactions/Processors/GeneratesGroupTransactionsWhiteForm.php create mode 100644 database/seeds/UpdateSuppliersReferenceSeeder.php diff --git a/app/Classes/Jobs/GenerateGroupTransactionsWhiteForm.php b/app/Classes/Jobs/GenerateGroupTransactionsWhiteForm.php new file mode 100644 index 00000000..97475dac --- /dev/null +++ b/app/Classes/Jobs/GenerateGroupTransactionsWhiteForm.php @@ -0,0 +1,22 @@ +make(GeneratesGroupTransactionsWhiteForm::class))->execute(); + } +} diff --git a/app/Classes/Modules/Transactions/Processors/GeneratesGroupTransactionsPurchaseOrder.php b/app/Classes/Modules/Transactions/Processors/GeneratesGroupTransactionsPurchaseOrder.php index e7471a50..70c84a89 100644 --- a/app/Classes/Modules/Transactions/Processors/GeneratesGroupTransactionsPurchaseOrder.php +++ b/app/Classes/Modules/Transactions/Processors/GeneratesGroupTransactionsPurchaseOrder.php @@ -47,7 +47,7 @@ class GeneratesGroupTransactionsPurchaseOrder } public function execute(){ - $groups = Group::where('status', '!=', ApprovalStatus::COMPLETED)->whereDoesntHave('transactions', function ($query){ + $groups = Group::whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED])->whereDoesntHave('transactions', function ($query){ $query->whereHasMorph('owner', [Transaction::class], function($query){ return $query->whereHas('booking', function($query){ return $query->whereDoesntHave('transactions', function($query){ @@ -62,7 +62,7 @@ class GeneratesGroupTransactionsPurchaseOrder // if ($transaction->owner()->owner()->transactions()->where('type', TransactionType::PURCHASE_ORDER)->where('status', '!=', ApprovalStatus::APPROVED)->exists()) { // throw new MalformedRequestException('You can\'t generate bulk purchased order if there in uncomplete transactions'); // } - $supplier = $this->fetchesCompany->execute(['id' => $group->receiver]); + $supplier = $this->fetchesCompany->execute(['id' => $group->issuer]); $document_type = DocumentType::BULK_PURCHASE_ORDER; diff --git a/app/Classes/Modules/Transactions/Processors/GeneratesGroupTransactionsWhiteForm.php b/app/Classes/Modules/Transactions/Processors/GeneratesGroupTransactionsWhiteForm.php new file mode 100644 index 00000000..695d3c96 --- /dev/null +++ b/app/Classes/Modules/Transactions/Processors/GeneratesGroupTransactionsWhiteForm.php @@ -0,0 +1,73 @@ +listsGroups = $listsGroups; + $this->fetchesCompany = $fetchesCompany; + $this->createsDocument = $createsDocument; + $this->createsFile = $createsFile; + } + + public function execute(){ + $groups = Group::where('status', ApprovalStatus::PENDING_SUBMISSION)->get(); + + + foreach ($groups as $group) { + $pdf = LaravelMpdf::loadView('pages.pdfs.currency_vendor_order', ['transactions' => $group->transactions, 'transferFeeTransactions' => $group->transferFees, 'supplier' => $group->issuerCompany]); + + $object = new DocumentObject( + DocumentType::CURRENCY_VENDOR_ORDER, + [chunk_split('data:application/pdf;base64,'.base64_encode($pdf->output()))], + '', + ApprovalStatus::COMPLETED, + 'currency_vendor_order' + ); + + /** @var Document $document */ + $document = $this->createsDocument->execute($group, $object); + $this->createsFile->execute($document, $object); + + $group->status = ApprovalStatus::APPROVED; + $group->save(); + + } + } +} \ No newline at end of file diff --git a/database/seeds/RecoverGroupTransactionTableSeeder.php b/database/seeds/RecoverGroupTransactionTableSeeder.php index d48ef5b9..8b42f6b3 100644 --- a/database/seeds/RecoverGroupTransactionTableSeeder.php +++ b/database/seeds/RecoverGroupTransactionTableSeeder.php @@ -1,6 +1,7 @@ orderBy('id')->get(); - foreach ($transaction_group as $group) { - $transactions = Transaction:: - where('type', 3) - ->where('issuer', $group->issuer) - ->where('currency_rate', $group->currency_rate) - ->where(DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d %H:%i')"), $group->new_date) - ->get(); + foreach ($transaction_group as $group) { + $transactions = Transaction:: + where('type', 3) + ->where('issuer', $group->issuer) + ->where('currency_rate', $group->currency_rate) + ->where(DB::raw("DATE_FORMAT(created_at, '%Y-%m-%d %H:%i')"), $group->new_date) + ->get(); - $group = new Group(); - $group->save(); + $group = new Group(); + $group->save(); - $issuer = ''; - $date = now(); - $receiver = ''; - $amount = 0; - $original_amount = 0; - $currency_id = 0; - $original_currency_id = ''; - $currency_rate = ''; - $tax = 0; - $service_charge = 0; + $issuer = ''; + $date = now(); + $receiver = ''; + $amount = 0; + $original_amount = 0; + $currency_id = 0; + $original_currency_id = ''; + $currency_rate = ''; + $tax = 0; + $service_charge = 0; - foreach ($transactions as $transaction) { - $group->transactions()->sync($transaction->id, false); - $issuer = $transaction->issuer; - $date = $transaction->created_at; - $receiver = $transaction->receiver; - $amount += $transaction->amount; - $original_amount += $transaction->original_amount; - $currency_id = $transaction->currency_id; - $original_currency_id = $transaction->original_currency_id; - $currency_rate = $transaction->currency_rate; - $tax += $transaction->tax; - $service_charge += $transaction->service_charge; - } - - $group->issuer = $issuer; - $group->receiver = $receiver; - $group->amount = $amount; - $group->original_amount = $original_amount; - $group->currency_id = $currency_id; - $group->original_currency_id = $original_currency_id; - $group->currency_rate = $currency_rate; - $group->tax = $tax; - $group->service_charge = $service_charge; - $group->created_at = $date; - $group->updated_at = $date; - - $group->update(); - -// $pdf = LaravelMpdf::loadView('pages.pdfs.currency_vendor_order', ['transactions' => $group->transactions, 'transferFeeTransactions' => $group->transferFees, 'supplier' => $group->issuerCompany]); -// -// $object = new DocumentObject( -// DocumentType::CURRENCY_VENDOR_ORDER, -// [chunk_split('data:application/pdf;base64,'.base64_encode($pdf->output()))], -// '', -// ApprovalStatus::COMPLETED, -// 'currency_vendor_order' -// ); -// -// /** @var Document $document */ -// $document = $this->createsDocument->execute($group, $object); -// $this->createsFile->execute($document, $object); + foreach ($transactions as $transaction) { + $group->transactions()->sync($transaction->id, false); + $issuer = $transaction->issuer; + $date = $transaction->created_at; + $receiver = $transaction->receiver; + $amount += $transaction->amount; + $original_amount += $transaction->original_amount; + $currency_id = $transaction->currency_id; + $original_currency_id = $transaction->original_currency_id; + $currency_rate = $transaction->currency_rate; + $tax += $transaction->tax; + $service_charge += $transaction->service_charge; } + + $group->issuer = $issuer; + $group->receiver = $receiver; + $group->amount = $amount; + $group->original_amount = $original_amount; + $group->currency_id = $currency_id; + $group->original_currency_id = $original_currency_id; + $group->currency_rate = $currency_rate; + $group->tax = $tax; + $group->service_charge = $service_charge; + $group->status = ApprovalStatus::PENDING_SUBMISSION; + $group->created_at = $date; + $group->updated_at = $date; + + $group->update(); + } + DB::commit(); + + GenerateGroupTransactionsWhiteForm::dispatch(); } } diff --git a/database/seeds/UpdateSuppliersReferenceSeeder.php b/database/seeds/UpdateSuppliersReferenceSeeder.php new file mode 100644 index 00000000..255e21dc --- /dev/null +++ b/database/seeds/UpdateSuppliersReferenceSeeder.php @@ -0,0 +1,40 @@ +get(); + + foreach ($suppliers as $supplier) { + if(in_array($supplier->name, ['ATVANTIC IMPORT EXPORT SDN BHD', 'Atvantic - JACK'])) $supplier->reference = 'ATVANTIC IMPORT EXPORT SDN BHD (1309816-P)'; + if(in_array($supplier->name, ['BK GEMILANG SDN BHD', 'BK GEMILANG - JACK'])) $supplier->reference = 'BK GEMILANG SDN BHD (1403513-U)'; + if(in_array($supplier->name, ['YSN - Teh', 'YSN Solution Trading Sdn Bhd - Teh', 'YSN Solution Trading Sdn Bhd', 'YSN SOLUTION TRADING SDN BHD - Jack'])) $supplier->reference = 'YSN Solution Trading Sdn Bhd (1393892-D)'; + if(in_array($supplier->name, ['RACK SOLUTION INDUSTRIES SDN BHD'])) $supplier->reference = 'RACK SOLUTION INDUSTRIES SDN BHD (954723-W)'; + if(in_array($supplier->name, ['RACK SOLUTION INDUSTRIES SDN BHD'])) $supplier->reference = 'RACK SOLUTION INDUSTRIES SDN BHD (954723-W)'; + if(in_array($supplier->name, ['OFY UNION SDN BHD'])) $supplier->reference = 'OFY UNION SDN BHD (1410695-H)'; + if(in_array($supplier->name, ['Simply Infantry Sdn. Bhd.', 'SIMPLY INFANTRY SDN. BHD. - JACK'])) $supplier->reference = 'Simply Infantry Sdn. Bhd. (14393131-W)'; + if(in_array($supplier->name, ['HIGH HILL INTERNATIONAL MARKETING SDN BHD', 'HIGH HILL INTERNATIONAL SDN BHD - JACK'])) $supplier->reference = 'HIGH HILL INTERNATIONAL MARKETING SDN BHD (1419836-X)'; + if(in_array($supplier->name, ['CNT CARGO SDN BHD', 'CNT CARGO SDN BHD - JACK'])) $supplier->reference = 'CNT CARGO SDN BHD 202101036178(1436478-V)'; + if(in_array($supplier->name, ['WEST EXPRESS INTERNATIONAL TRADING SDN BHD'])) $supplier->reference = 'WEST EXPRESS INTERNATIONAL TRADING SDN BHD (1432178-T)'; + if(in_array($supplier->name, ['CIEF WORLDWIDE SDN. BHD.'])) $supplier->reference = 'CIEF WORLDWIDE SDN. BHD. (1134596-M)'; + } + + DB::commit(); + } +} diff --git a/resources/views/pages/pdfs/supplier_deliver_order.blade.php b/resources/views/pages/pdfs/supplier_deliver_order.blade.php index 4f299878..6b667219 100644 --- a/resources/views/pages/pdfs/supplier_deliver_order.blade.php +++ b/resources/views/pages/pdfs/supplier_deliver_order.blade.php @@ -6,18 +6,7 @@
- @if(in_array($transactions->issuer, [2, 1921])) - Atvantic Import & Export Snd. Bhd (1309816-P) - @endif - @if(in_array($transactions->issuer, [1937, 1970])) - BK Gemilang Sdn Bhd (1403513-U) - @endif - @if(in_array($transactions->issuer, [2165, 2185])) - YSN SOLUTION TRADING SDN BHD (1393892-D) - @endif - @if(in_array($transactions->issuer, [2210])) - RACK SOLUTION INDUSTRIES SDN BHD (954723-W) - @endif + {{ $transactions->issuerCompany->reference }}