From 914e9a6f0f5e81c57310ee6017d3a3f366d8fed2 Mon Sep 17 00:00:00 2001 From: edmondlang Date: Sun, 21 May 2023 19:20:26 +0800 Subject: [PATCH 01/27] add BillNo Filter --- .../General/Eloquent/Filters/BillNo.php | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 app/Classes/General/Eloquent/Filters/BillNo.php diff --git a/app/Classes/General/Eloquent/Filters/BillNo.php b/app/Classes/General/Eloquent/Filters/BillNo.php new file mode 100644 index 00000000..167dcd51 --- /dev/null +++ b/app/Classes/General/Eloquent/Filters/BillNo.php @@ -0,0 +1,20 @@ +where('bill_no', $value); + } + +} \ No newline at end of file From ef37f1ebbe8790ecc6a769a82151c7d3973908ac Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Thu, 25 May 2023 15:06:17 +0800 Subject: [PATCH 02/27] fix bug with fetching company module from invoice modal in create payment transaction processor --- .../CreatePaymentTransactionProcessor.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/Classes/Modules/Transactions/Processors/CreatePaymentTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreatePaymentTransactionProcessor.php index 454ffaf9..f6ec622e 100644 --- a/app/Classes/Modules/Transactions/Processors/CreatePaymentTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreatePaymentTransactionProcessor.php @@ -38,7 +38,7 @@ class CreatePaymentTransactionProcessor /** @var UpdatesWalletBalance */ private $updatesWalletBalance; - + /** @var UpdateDoFromVTPortalProcessor */ private $updateDoFromVTPortalProcessor; @@ -69,7 +69,7 @@ class CreatePaymentTransactionProcessor UpdateDoFromVTPortalProcessor $updateDoFromVTPortalProcessor, UpdateDoFromYDPortalProcessor $updateDoFromYDPortalProcessor, UpdatesTransactionStatus $updatesTransactionStatus - ) + ) { $this->generatesTransactionBillNumber = $generatesTransactionBillNumber; $this->createsPaymentTransaction = $createsPaymentTransaction; @@ -87,7 +87,7 @@ class CreatePaymentTransactionProcessor public function execute(Transaction $invoice, $payment_method, $bank_code) { $amount = $invoice->amount; - $company_module = $invoice->owner()->first()->owner()->first()->companyModule()->first(); + $company_module = $invoice->owner->owner->companyModule()->first(); $approvalStatus = ApprovalStatus::PENDING_SUBMISSION; $billNumber = $this->generatesTransactionBillNumber->execute('PYMT-'); $payment_reference = null; @@ -97,12 +97,12 @@ class CreatePaymentTransactionProcessor // create billplz transaction $payment_method = PaymentMethodType::PAYMENT_GATEWAY; $billPlzBill = $this->createsBillplzBill->execute( - $company_module->name, + $company_module->name, (app()->environment(['production'])) ? $company_module->employees()->first()->email : 'uldvstar@gmail.com', 'This payment is for the invoice number . ' . $billNumber, $amount, - $billNumber, - $bank_code, + $billNumber, + $bank_code, true ); @@ -117,7 +117,7 @@ class CreatePaymentTransactionProcessor } $walletPaymentBillNumber = $this->generatesTransactionBillNumber->execute('PYMT-'); - + $transaction_object = new TransactionObject($walletPaymentBillNumber, TransactionType::PAYMENT, 1, $company_module->id, 1, PaymentMethodType::WALLET, $amount, $amount, 1, 1, 1, 0, 0, null, ApprovalStatus::APPROVED, [], ''); $transaction = $this->createsTransactionableTransaction->execute($wallet, $transaction_object); From 7f73ec14a589a016358f8f325bd05aae3ee306d8 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Thu, 25 May 2023 15:08:24 +0800 Subject: [PATCH 03/27] fix bug with fetching company module from invoice modal in create payment transaction processor --- .../Processors/CreatePaymentTransactionProcessor.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Classes/Modules/Transactions/Processors/CreatePaymentTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreatePaymentTransactionProcessor.php index f6ec622e..568bc4fb 100644 --- a/app/Classes/Modules/Transactions/Processors/CreatePaymentTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreatePaymentTransactionProcessor.php @@ -20,6 +20,7 @@ use App\Models\Wallet; use App\Classes\Modules\Orders\Processors\UpdateDoFromVTPortalProcessor; use App\Classes\Modules\Orders\Processors\UpdateDoFromYDPortalProcessor; use App\Classes\Modules\Transactions\Services\UpdatesTransactionStatus; +use Illuminate\Support\Facades\Log; class CreatePaymentTransactionProcessor { @@ -87,6 +88,7 @@ class CreatePaymentTransactionProcessor public function execute(Transaction $invoice, $payment_method, $bank_code) { $amount = $invoice->amount; + Log::info($invoice->owner); $company_module = $invoice->owner->owner->companyModule()->first(); $approvalStatus = ApprovalStatus::PENDING_SUBMISSION; $billNumber = $this->generatesTransactionBillNumber->execute('PYMT-'); From 0d555eedc9844f9a89ef6034e4c4e035fc8a2f45 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Thu, 25 May 2023 15:32:19 +0800 Subject: [PATCH 04/27] fix bug with invoice showing that doesn't belong to the order --- app/Http/Resources/OrderResource.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php index 207231ee..6d7caf96 100644 --- a/app/Http/Resources/OrderResource.php +++ b/app/Http/Resources/OrderResource.php @@ -7,6 +7,7 @@ use App\Classes\ValueObjects\Constants\OrderRoleTypes; use App\Classes\ValueObjects\Constants\PackingListType; use App\Classes\ValueObjects\Constants\TransactionType; use App\Classes\ValueObjects\Constants\TransportType; +use App\Models\Transaction; use Carbon\Carbon; use Illuminate\Http\Resources\Json\JsonResource; @@ -20,6 +21,8 @@ class OrderResource extends JsonResource */ public function toArray($request) { + $orderId = $this->id; + return [ 'id' => $this->id, 'reference' => $this->reference, @@ -47,8 +50,9 @@ class OrderResource extends JsonResource 'received_packages' => PackingListResource::collection($this->packingLists()->where('type', PackingListType::WAREHOUSE_RECEIVE_LIST)->whereHas('packages')->get()), ]; }), - 'invoices' => $this->whenLoaded('packingLists', function() { - return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->where('transactions.type', TransactionType::SHIPPING_INVOICE)->get()); + 'invoices' => $this->whenLoaded('packingLists', function() use ($orderId) { + return TransactionResource::collection(Transaction::whereHas('owner', function($query) use ($orderId) { return $query->where('owner_id', $orderId); })->get()); +// return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->where('transactions.type', TransactionType::SHIPPING_INVOICE)->get()); }), 'remarks' => RemarkResource::collection($this->remarks), 'created_at' => $this->created_at->format('d-m-Y') From 4dede50156d0ecbff80201967664a6d883e93573 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Thu, 25 May 2023 15:34:19 +0800 Subject: [PATCH 05/27] fix bug with invoice showing that doesn't belong to the order --- app/Http/Resources/OrderResource.php | 4 ++-- app/Http/Resources/OrderV2Resource.php | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php index 6d7caf96..63eea75b 100644 --- a/app/Http/Resources/OrderResource.php +++ b/app/Http/Resources/OrderResource.php @@ -51,8 +51,8 @@ class OrderResource extends JsonResource ]; }), 'invoices' => $this->whenLoaded('packingLists', function() use ($orderId) { - return TransactionResource::collection(Transaction::whereHas('owner', function($query) use ($orderId) { return $query->where('owner_id', $orderId); })->get()); -// return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->where('transactions.type', TransactionType::SHIPPING_INVOICE)->get()); +// return TransactionResource::collection(Transaction::whereHas('owner', function($query) use ($orderId) { return $query->where('owner_id', $orderId); })->get()); + return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->where('transactions.type', TransactionType::SHIPPING_INVOICE)->get()); }), 'remarks' => RemarkResource::collection($this->remarks), 'created_at' => $this->created_at->format('d-m-Y') diff --git a/app/Http/Resources/OrderV2Resource.php b/app/Http/Resources/OrderV2Resource.php index 7ca77149..7d8a9a63 100644 --- a/app/Http/Resources/OrderV2Resource.php +++ b/app/Http/Resources/OrderV2Resource.php @@ -30,7 +30,9 @@ class OrderV2Resource extends JsonResource 'address' => new AddressResource($this->addresses()->where('status', '=', ApprovalStatus::APPROVED)->first()), 'address_change_request' => new AddressResource($this->addressesPendingVerification()->first()), 'invoices' => $this->whenLoaded('packingLists', function() { - return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->get()); + return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->where('transactions.type', TransactionType::SHIPPING_INVOICE)->get()); + +// return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->get()); }), 'remarks' => RemarkResource::collection($this->remarks), 'created_at' => $this->created_at->format('d-m-Y') From f7d0fe117e1727f276719a5fea7f8d855ac8bb67 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Thu, 25 May 2023 15:35:11 +0800 Subject: [PATCH 06/27] fix bug with invoice showing that doesn't belong to the order --- app/Http/Resources/OrderV2Resource.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Resources/OrderV2Resource.php b/app/Http/Resources/OrderV2Resource.php index 7d8a9a63..6aa1ecb6 100644 --- a/app/Http/Resources/OrderV2Resource.php +++ b/app/Http/Resources/OrderV2Resource.php @@ -5,6 +5,7 @@ namespace App\Http\Resources; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\OrderRoleTypes; use App\Classes\ValueObjects\Constants\PackingListType; +use App\Classes\ValueObjects\Constants\TransactionType; use App\Classes\ValueObjects\Constants\TransportType; use Carbon\Carbon; use Illuminate\Http\Resources\Json\JsonResource; From 1cdd511f67a56e5fcfe6ece4ebc42bb5d345b8ac Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Thu, 25 May 2023 15:35:56 +0800 Subject: [PATCH 07/27] fix bug with invoice showing that doesn't belong to the order --- app/Http/Resources/OrderResource.php | 1 - app/Http/Resources/OrderV2Resource.php | 2 -- 2 files changed, 3 deletions(-) diff --git a/app/Http/Resources/OrderResource.php b/app/Http/Resources/OrderResource.php index 63eea75b..8b72130a 100644 --- a/app/Http/Resources/OrderResource.php +++ b/app/Http/Resources/OrderResource.php @@ -51,7 +51,6 @@ class OrderResource extends JsonResource ]; }), 'invoices' => $this->whenLoaded('packingLists', function() use ($orderId) { -// return TransactionResource::collection(Transaction::whereHas('owner', function($query) use ($orderId) { return $query->where('owner_id', $orderId); })->get()); return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->where('transactions.type', TransactionType::SHIPPING_INVOICE)->get()); }), 'remarks' => RemarkResource::collection($this->remarks), diff --git a/app/Http/Resources/OrderV2Resource.php b/app/Http/Resources/OrderV2Resource.php index 6aa1ecb6..c8b82e19 100644 --- a/app/Http/Resources/OrderV2Resource.php +++ b/app/Http/Resources/OrderV2Resource.php @@ -32,8 +32,6 @@ class OrderV2Resource extends JsonResource 'address_change_request' => new AddressResource($this->addressesPendingVerification()->first()), 'invoices' => $this->whenLoaded('packingLists', function() { return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->where('transactions.type', TransactionType::SHIPPING_INVOICE)->get()); - -// return TransactionResource::collection($this->transactions()->whereNotIn('transactions.status', [0, 1])->get()); }), 'remarks' => RemarkResource::collection($this->remarks), 'created_at' => $this->created_at->format('d-m-Y') From ddbfc5fdfd83afccb91c649e706755b3a580dd13 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 7 Jun 2023 09:51:06 +0800 Subject: [PATCH 08/27] debug invoice email --- routes/web.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/routes/web.php b/routes/web.php index 6fdfc14f..8a145f36 100644 --- a/routes/web.php +++ b/routes/web.php @@ -246,7 +246,7 @@ Route::get('/customer/{marking}/payment-and-billing', function ($marking) { return view('pages.customers.paymentsBilling', ['company_module_id' => $company_module_id]); })->name('customer.payment-and-billing'); -Route::get('/customer-invoices/{company_module_id}/payment-and-billing', function ($company_module_id) { +Route::get('/customer-invoices/{company_module_id}/payment-and-billing', function ($company_module_id) { // todo-new: check company_module_id return view('pages.customers.paymentsBilling', ['company_module_id' => $company_module_id]); })->name('customer.payment-and-billing-by-company-module-id'); @@ -359,9 +359,12 @@ Route::group(['prefix' => 'yd', 'as' => 'yd.'], function () { }); Route::get('/yd', function (Request $request){ + $invoice = PackingList::whereHas('transactions')->first()->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED)->first(); + $invoiceDocument = $invoice->documents()->first()->files; + dd($invoiceDocument->file->file_info->original->file); // $start = $request->input('start_date') ? Carbon::parse($request->input('start_date')): null; // $end = $request->input('end_date') ? Carbon::parse($request->input('end_date')): null; -// (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute($start, $end); + (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute(); // (App()->make(\App\Classes\Modules\PackingLists\Processors\FetchPackingListsFromYdPortalProcessor::class))->execute($start, $end); // (App()->make(\App\Classes\Modules\PackingLists\Processors\FetchContainersFromYdPortalProcessor::class))->execute(); // (App()->make(\App\Classes\Modules\PackingLists\Processors\FetchContainersUpdatesFromYdPortalProcessor::class))->execute(); @@ -1101,12 +1104,12 @@ Route::get('/final-duplicated-invoice-debug', function(){ foreach ($duplicatedTransactions as $transaction) { $transactionIds = explode(',', $transaction->transaction_ids); - $duplicatedInvoice = Transaction::whereIn('id', $transactionIds)->get(); - - $order_reference = $duplicatedInvoice->first()->owner->owner->reference ?? null; + $duplicatedInvoice = Transaction::whereIn('id', $transactionIds)->get(); + + $order_reference = $duplicatedInvoice->first()->owner->owner->reference ?? null; if ($transaction->type == TransactionType::PAYMENT) { - $order_reference = $duplicatedInvoice->first()->owner->owner->owner->reference ?? null; + $order_reference = $duplicatedInvoice->first()->owner->owner->owner->reference ?? null; } echo ''; @@ -1125,4 +1128,4 @@ Route::get('/final-duplicated-invoice-debug', function(){ } echo ''; }); - + From e1b712ad1055a4e9518127f7761f1b84322d6e4b Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 7 Jun 2023 09:54:52 +0800 Subject: [PATCH 09/27] debug invoice email --- routes/web.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index 8a145f36..fe2129c0 100644 --- a/routes/web.php +++ b/routes/web.php @@ -359,7 +359,9 @@ Route::group(['prefix' => 'yd', 'as' => 'yd.'], function () { }); Route::get('/yd', function (Request $request){ - $invoice = PackingList::whereHas('transactions')->first()->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED)->first(); + $invoice = PackingList::whereHas('transactions', function($query){ + return $query->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED); + })->first()->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED)->first(); $invoiceDocument = $invoice->documents()->first()->files; dd($invoiceDocument->file->file_info->original->file); // $start = $request->input('start_date') ? Carbon::parse($request->input('start_date')): null; From a2ef3ed1b11e86ed9e70c2aa634d602db0d09cee Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 7 Jun 2023 09:57:47 +0800 Subject: [PATCH 10/27] debug invoice email --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index fe2129c0..e2908494 100644 --- a/routes/web.php +++ b/routes/web.php @@ -363,7 +363,7 @@ Route::get('/yd', function (Request $request){ return $query->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED); })->first()->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED)->first(); $invoiceDocument = $invoice->documents()->first()->files; - dd($invoiceDocument->file->file_info->original->file); + dd($invoiceDocument); // $start = $request->input('start_date') ? Carbon::parse($request->input('start_date')): null; // $end = $request->input('end_date') ? Carbon::parse($request->input('end_date')): null; (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute(); From b368b1c0d1ccbaa2e944caef1e564ed865bea8c5 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 7 Jun 2023 09:59:21 +0800 Subject: [PATCH 11/27] debug invoice email --- routes/web.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routes/web.php b/routes/web.php index e2908494..ed669aa2 100644 --- a/routes/web.php +++ b/routes/web.php @@ -363,7 +363,7 @@ Route::get('/yd', function (Request $request){ return $query->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED); })->first()->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED)->first(); $invoiceDocument = $invoice->documents()->first()->files; - dd($invoiceDocument); + dd($invoiceDocument->first()->file->file_info->original->file); // $start = $request->input('start_date') ? Carbon::parse($request->input('start_date')): null; // $end = $request->input('end_date') ? Carbon::parse($request->input('end_date')): null; (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute(); From d6ddf6d607eaf2fe4b7a73d0411f10a8b50911d2 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 7 Jun 2023 10:04:54 +0800 Subject: [PATCH 12/27] fix invoice email --- app/Classes/Notifications/InvoiceIssuedEmail.php | 3 +-- app/Classes/Notifications/ShipmentDepartureEmail.php | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Classes/Notifications/InvoiceIssuedEmail.php b/app/Classes/Notifications/InvoiceIssuedEmail.php index f3cb4b97..8a5c90cc 100644 --- a/app/Classes/Notifications/InvoiceIssuedEmail.php +++ b/app/Classes/Notifications/InvoiceIssuedEmail.php @@ -6,7 +6,6 @@ namespace App\Classes\Notifications; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\TransactionType; use App\Models\PackingList; -use App\Models\PasswordReset; use App\Models\User; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Support\Facades\Storage; @@ -39,7 +38,7 @@ class InvoiceIssuedEmail extends AbstractEmail return (new MailMessage) ->subject('Att: '.$this->user->name.' - Invoice for order no.'. $this->packingList->owner->reference) - ->attach(Storage::disk('documents')->get($invoiceDocument->file->file_info->original->file), [ + ->attach(Storage::disk('documents')->get($invoiceDocument->first()->file->file_info->original->file), [ 'as' => 'name.pdf', 'mime' => 'application/pdf', ])->view('emails.shipment.invoice', ['user' => $this->user, 'packingList' => $this->packingList]); diff --git a/app/Classes/Notifications/ShipmentDepartureEmail.php b/app/Classes/Notifications/ShipmentDepartureEmail.php index 8fab151d..44362d44 100644 --- a/app/Classes/Notifications/ShipmentDepartureEmail.php +++ b/app/Classes/Notifications/ShipmentDepartureEmail.php @@ -9,6 +9,7 @@ use App\Models\PackingList; use App\Models\PasswordReset; use App\Models\User; use Illuminate\Notifications\Messages\MailMessage; +use Illuminate\Support\Facades\Storage; class ShipmentDepartureEmail extends AbstractEmail { @@ -42,7 +43,7 @@ class ShipmentDepartureEmail extends AbstractEmail return (new MailMessage) ->subject('Your packages are on the way to malaysia - Invoice pending payment for order no.'. $this->packingList->owner->reference) - ->attach(Storage::disk('documents')->get($invoiceDocument->file->file_info->original->file), [ + ->attach(Storage::disk('documents')->get($invoiceDocument->first()->file->file_info->original->file), [ 'as' => 'name.pdf', 'mime' => 'application/pdf', ])->bcc(['email_test@cief-malaysia.com'])->view('emails.shipment.ETD', ['user' => $this->user, 'packingList' => $this->packingList]); From 6502957021b2677db34501676c25449920dd3660 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Fri, 9 Jun 2023 15:21:16 +0800 Subject: [PATCH 13/27] debug yd api --- routes/web.php | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/routes/web.php b/routes/web.php index ed669aa2..510daf3a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -359,18 +359,13 @@ Route::group(['prefix' => 'yd', 'as' => 'yd.'], function () { }); Route::get('/yd', function (Request $request){ - $invoice = PackingList::whereHas('transactions', function($query){ - return $query->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED); - })->first()->transactions()->where('type', TransactionType::SHIPPING_INVOICE)->where('status', ApprovalStatus::APPROVED)->first(); - $invoiceDocument = $invoice->documents()->first()->files; - dd($invoiceDocument->first()->file->file_info->original->file); -// $start = $request->input('start_date') ? Carbon::parse($request->input('start_date')): null; -// $end = $request->input('end_date') ? Carbon::parse($request->input('end_date')): null; - (App()->make(FetchOrderListsFromYdPortalProcessor::class))->execute(); -// (App()->make(\App\Classes\Modules\PackingLists\Processors\FetchPackingListsFromYdPortalProcessor::class))->execute($start, $end); -// (App()->make(\App\Classes\Modules\PackingLists\Processors\FetchContainersFromYdPortalProcessor::class))->execute(); -// (App()->make(\App\Classes\Modules\PackingLists\Processors\FetchContainersUpdatesFromYdPortalProcessor::class))->execute(); -// (App()->make(FetchDeliveryUpdatesFromYdPortalProcessor::class))->execute(); + $start = $request->input('start_date') ? Carbon::parse($request->input('start_date')): null; + $end = $request->input('end_date') ? Carbon::parse($request->input('end_date')): null; + (App()->make(FetchPackingListsFromYdPortalProcessor::class))->execute($start, $end); + (App()->make(FetchPackingListsFromYdPortalProcessor::class))->execute($start, $end); + (App()->make(FetchContainersFromYdPortalProcessor::class))->execute(); + (App()->make(FetchContainersUpdatesFromYdPortalProcessor::class))->execute(); + (App()->make(FetchDeliveryUpdatesFromYdPortalProcessor::class))->execute(); // (App()->make(FetchPackingListFromVTPortalProcessor::class))->execute(); })->name('yd.refresh'); From 8f390311af01d1f27efeaec7d17f476a063cf2e3 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Fri, 9 Jun 2023 15:32:39 +0800 Subject: [PATCH 14/27] debug yd api --- .../Processors/FetchContainersUpdatesFromYdPortalProcessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php index ecc99f4e..73f2f9a8 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php @@ -51,7 +51,7 @@ class FetchContainersUpdatesFromYdPortalProcessor foreach ($containers as $container) { $time_start = microtime(true); - $packingList = $container->packingLists()->random(); + $packingList = $container->packingLists()->first(); $trackingRequest = $this->fetchesDataFRomYDPortal->clientRequest('http://www.yd-wl.com/api/ApiTracking.ashx', 'GET', [ 'trakingno' => $packingList->reference From 7db77d619bfc425040a653b50cc7659a9ed37730 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Fri, 9 Jun 2023 17:40:59 +0800 Subject: [PATCH 15/27] debug yd api --- .../FetchContainersUpdatesFromYdPortalProcessor.php | 1 + routes/web.php | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php index 73f2f9a8..962935df 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php @@ -47,6 +47,7 @@ class FetchContainersUpdatesFromYdPortalProcessor public function execute() { $containers = Container::where('status', ApprovalStatus::PENDING_VERIFICATION)->get(); + dd($containers); foreach ($containers as $container) { $time_start = microtime(true); diff --git a/routes/web.php b/routes/web.php index 510daf3a..eb394bdc 100644 --- a/routes/web.php +++ b/routes/web.php @@ -361,11 +361,10 @@ Route::group(['prefix' => 'yd', 'as' => 'yd.'], function () { Route::get('/yd', function (Request $request){ $start = $request->input('start_date') ? Carbon::parse($request->input('start_date')): null; $end = $request->input('end_date') ? Carbon::parse($request->input('end_date')): null; - (App()->make(FetchPackingListsFromYdPortalProcessor::class))->execute($start, $end); - (App()->make(FetchPackingListsFromYdPortalProcessor::class))->execute($start, $end); - (App()->make(FetchContainersFromYdPortalProcessor::class))->execute(); +// (App()->make(FetchPackingListsFromYdPortalProcessor::class))->execute($start, $end); +// (App()->make(FetchContainersFromYdPortalProcessor::class))->execute(); (App()->make(FetchContainersUpdatesFromYdPortalProcessor::class))->execute(); - (App()->make(FetchDeliveryUpdatesFromYdPortalProcessor::class))->execute(); +// (App()->make(FetchDeliveryUpdatesFromYdPortalProcessor::class))->execute(); // (App()->make(FetchPackingListFromVTPortalProcessor::class))->execute(); })->name('yd.refresh'); From 39e3398f8e342648e4385139d22b97efbbd80f40 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Fri, 9 Jun 2023 17:46:27 +0800 Subject: [PATCH 16/27] debug yd api --- .../Processors/FetchContainersUpdatesFromYdPortalProcessor.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php b/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php index 962935df..93ad4471 100644 --- a/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php +++ b/app/Classes/Modules/PackingLists/Processors/FetchContainersUpdatesFromYdPortalProcessor.php @@ -47,7 +47,6 @@ class FetchContainersUpdatesFromYdPortalProcessor public function execute() { $containers = Container::where('status', ApprovalStatus::PENDING_VERIFICATION)->get(); - dd($containers); foreach ($containers as $container) { $time_start = microtime(true); @@ -109,6 +108,8 @@ class FetchContainersUpdatesFromYdPortalProcessor } } + dump($delayDate, $unstuffingDate); + if($delayDate){ $delayDate = $delayDate->addDays(2); $transport = $container->transports()->first(); From 4a9e89c75227f0c8a93a5ae54c223e0db56335fc Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Thu, 15 Jun 2023 06:30:48 +0800 Subject: [PATCH 17/27] disable accounting task in crm --- .../Processors/TransactionToPerfexCRMProcessor.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php index d7aeeff2..de12b30f 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php @@ -51,11 +51,11 @@ class TransactionToPerfexCRMProcessor PerfexCRMProjectStatus::IN_PROGRESS, [], [ - PerfexCRMTasks::TASK_1, - PerfexCRMTasks::TASK_POST_PAYMENT_1, - PerfexCRMTasks::TASK_POST_PAYMENT_2, - PerfexCRMTasks::TASK_POST_PAYMENT_3, - PerfexCRMTasks::TASK_POST_PAYMENT_4, +// PerfexCRMTasks::TASK_1, +// PerfexCRMTasks::TASK_POST_PAYMENT_1, +// PerfexCRMTasks::TASK_POST_PAYMENT_2, +// PerfexCRMTasks::TASK_POST_PAYMENT_3, +// PerfexCRMTasks::TASK_POST_PAYMENT_4, ] ); From 99efce22db65ceae1be5231f34dde0281d2686a4 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 21 Jun 2023 13:25:56 +0800 Subject: [PATCH 18/27] add owner type column to transaction resource to help with bank mapping function in exchange --- app/Http/Resources/TransactionResource.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Resources/TransactionResource.php b/app/Http/Resources/TransactionResource.php index 9e9e5771..43540820 100644 --- a/app/Http/Resources/TransactionResource.php +++ b/app/Http/Resources/TransactionResource.php @@ -22,6 +22,7 @@ class TransactionResource extends JsonResource { return [ 'id' => $this->id, + 'owner_type' => $this->owner_type, 'order' => ($this->owner instanceof Transaction) ? new OrderResource($this->owner->owner->owner) : new OrderResource($this->owner->owner), 'documents' => DocumentResource::collection($this->documents), 'type' => (int) $this->type, From 626dff61375eb22d6058b72502f3ed06b9dc3a2e Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 21 Jun 2023 15:19:45 +0800 Subject: [PATCH 19/27] create a public api for mappable transactions --- .../ListMappableTransactionsLogic.php | 52 +++++++++++++++++++ .../ListMappableTransactionsController.php | 20 +++++++ .../Resources/MappableTransactionResource.php | 40 ++++++++++++++ routes/apipub.php | 1 + 4 files changed, 113 insertions(+) create mode 100644 app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionsLogic.php create mode 100644 app/Http/Controllers/Transactions/ListMappableTransactionsController.php create mode 100644 app/Http/Resources/MappableTransactionResource.php diff --git a/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionsLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionsLogic.php new file mode 100644 index 00000000..4cfc8395 --- /dev/null +++ b/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionsLogic.php @@ -0,0 +1,52 @@ + 'Retrieved Transactions', + 'message' => 'You have successfully retrieved a list of transactions' + ]; + } + + + /** @var ListsTransactions */ + private $listsTransactions; + + /** + * ListTransactionsLogic constructor. + * @param ListsTransactions $listsTransactions + */ + public function __construct(ListsTransactions $listsTransactions) + { + $this->listsTransactions = $listsTransactions; + } + + + + public function logic(Request $request) : JsonResponse + { + + $query = $this->listsTransactions->execute($this->listsTransactions->deserializeFilters($request->input('filters'))); + + return $this->collectionResponse(TransactionResource::collection($query)); + + } + + + +} diff --git a/app/Http/Controllers/Transactions/ListMappableTransactionsController.php b/app/Http/Controllers/Transactions/ListMappableTransactionsController.php new file mode 100644 index 00000000..abf83758 --- /dev/null +++ b/app/Http/Controllers/Transactions/ListMappableTransactionsController.php @@ -0,0 +1,20 @@ +execute($request); + } +} diff --git a/app/Http/Resources/MappableTransactionResource.php b/app/Http/Resources/MappableTransactionResource.php new file mode 100644 index 00000000..cd89f940 --- /dev/null +++ b/app/Http/Resources/MappableTransactionResource.php @@ -0,0 +1,40 @@ +type === TransactionType::TOP_UP) { + $reference = $this->owner->owner->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference; + } + + if($this->type === TransactionType::PAYMENT && $this->owner === Transaction::class){ + $reference = $this->owner->owner->owner->reference; + } + + return [ + 'system' => 'SHIPPING_PORTAL', + 'owner_type' => $this->owner_type, + 'owner_id'=> $this->id, + 'owner_reference'=> $reference, + ]; + } +} diff --git a/routes/apipub.php b/routes/apipub.php index 3df8edae..86809f05 100644 --- a/routes/apipub.php +++ b/routes/apipub.php @@ -5,6 +5,7 @@ use Illuminate\Support\Facades\Route; Route::group(['middleware' => 'apipub', 'prefix' => 'v1', 'as' => 'apipub.'], function () { Route::group(['middleware' => 'token.check'], function () { Route::get('transactions/query', 'Transactions\ListTransactionsController@list')->name('transaction.list'); + Route::get('transactions/mappable/query', 'Transactions\ListMappableTransactionsController@list')->name('transaction.mappable.list'); Route::get('groups/query', 'Transactions\ListGroupsController@list')->name('group.list'); }); }); From 85ba9d66d5797fae018888fcfd8ccabab94f957c Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 21 Jun 2023 16:21:08 +0800 Subject: [PATCH 20/27] create a public api for mappable transactions --- .../ControllersLogic/ListMappableTransactionsLogic.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionsLogic.php b/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionsLogic.php index 4cfc8395..7fab513d 100644 --- a/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionsLogic.php +++ b/app/Classes/Modules/Transactions/ControllersLogic/ListMappableTransactionsLogic.php @@ -6,6 +6,7 @@ namespace App\Classes\Modules\Transactions\ControllersLogic; use App\Classes\General\Abstracts\AbstractControllerLogic; use App\Classes\Modules\Transactions\Services\ListsTransactions; use App\Http\Resources\BookingResource; +use App\Http\Resources\MappableTransactionResource; use App\Http\Resources\TransactionResource; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -43,7 +44,7 @@ class ListMappableTransactionsLogic extends AbstractControllerLogic $query = $this->listsTransactions->execute($this->listsTransactions->deserializeFilters($request->input('filters'))); - return $this->collectionResponse(TransactionResource::collection($query)); + return $this->collectionResponse(MappableTransactionResource::collection($query)); } From 23193937588b84e62ce7a7d56adc18edbdf9b571 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 21 Jun 2023 16:30:30 +0800 Subject: [PATCH 21/27] create a public api for mappable transactions --- app/Http/Resources/MappableTransactionResource.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Resources/MappableTransactionResource.php b/app/Http/Resources/MappableTransactionResource.php index cd89f940..ba3598b5 100644 --- a/app/Http/Resources/MappableTransactionResource.php +++ b/app/Http/Resources/MappableTransactionResource.php @@ -26,7 +26,7 @@ class MappableTransactionResource extends JsonResource $reference = $this->owner->owner->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference; } - if($this->type === TransactionType::PAYMENT && $this->owner === Transaction::class){ + if($this->type === TransactionType::PAYMENT && $this->owner !== Wallet::class){ $reference = $this->owner->owner->owner->reference; } From 096e039ffb38fb532682b8a2c133cc748d75d1ab Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 21 Jun 2023 16:31:52 +0800 Subject: [PATCH 22/27] create a public api for mappable transactions --- app/Http/Resources/MappableTransactionResource.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Http/Resources/MappableTransactionResource.php b/app/Http/Resources/MappableTransactionResource.php index ba3598b5..d69c145c 100644 --- a/app/Http/Resources/MappableTransactionResource.php +++ b/app/Http/Resources/MappableTransactionResource.php @@ -32,6 +32,7 @@ class MappableTransactionResource extends JsonResource return [ 'system' => 'SHIPPING_PORTAL', + 'type' => $this->type, 'owner_type' => $this->owner_type, 'owner_id'=> $this->id, 'owner_reference'=> $reference, From 7a171685f65757366672fbb61c024f6ff7bd7501 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Wed, 21 Jun 2023 16:34:50 +0800 Subject: [PATCH 23/27] create a public api for mappable transactions --- app/Models/Transaction.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/Models/Transaction.php b/app/Models/Transaction.php index a3472ed6..448c2170 100644 --- a/app/Models/Transaction.php +++ b/app/Models/Transaction.php @@ -22,6 +22,10 @@ class Transaction extends AbstractModel implements Documentable, Transactionable use SoftDeletes; use LogData; + protected $casts = [ + 'type' => 'int' + ]; + protected $table = 'transactions'; public function owner(): morphTo From 840fb8619285343aaee7b87091857422f757d87d Mon Sep 17 00:00:00 2001 From: edmondlang Date: Thu, 22 Jun 2023 13:41:48 +0800 Subject: [PATCH 24/27] show bill_no for all payments --- .../elements/PaymentHistoryComponent.vue | 6 ++++++ .../elements/PaymentsBillingComponents.vue | 4 ++++ .../elements/WalletTopUpHistoryComponent.vue | 15 +++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/resources/assets/vue/components/paymentsBilling/elements/PaymentHistoryComponent.vue b/resources/assets/vue/components/paymentsBilling/elements/PaymentHistoryComponent.vue index a3ffd197..49869473 100644 --- a/resources/assets/vue/components/paymentsBilling/elements/PaymentHistoryComponent.vue +++ b/resources/assets/vue/components/paymentsBilling/elements/PaymentHistoryComponent.vue @@ -18,6 +18,12 @@ {{item.currency.short_code}} {{(Math.round((item.amount + Number.EPSILON) * 100) / 100).toFixed(2).toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")}} +
+
Bill Number
+
+ {{ item.bill_no }} +
+
diff --git a/resources/assets/vue/components/paymentsBilling/elements/PaymentsBillingComponents.vue b/resources/assets/vue/components/paymentsBilling/elements/PaymentsBillingComponents.vue index 337427de..1bbc1253 100644 --- a/resources/assets/vue/components/paymentsBilling/elements/PaymentsBillingComponents.vue +++ b/resources/assets/vue/components/paymentsBilling/elements/PaymentsBillingComponents.vue @@ -27,6 +27,10 @@

Payment Date

{{ item.payment_history[item.payment_history.length-1].created_at }}
+
+

Bill Number

+
{{ item.payment_history[item.payment_history.length-1].payment_reference }}
+
diff --git a/resources/assets/vue/components/wallets/elements/WalletTopUpHistoryComponent.vue b/resources/assets/vue/components/wallets/elements/WalletTopUpHistoryComponent.vue index 29219ff1..86726e04 100644 --- a/resources/assets/vue/components/wallets/elements/WalletTopUpHistoryComponent.vue +++ b/resources/assets/vue/components/wallets/elements/WalletTopUpHistoryComponent.vue @@ -26,6 +26,11 @@
Submitted On: {{ item.updated_at }}
+
+
+
Bill Number: {{ item.bill_no }}
+
+
@@ -66,6 +71,11 @@
Paid On: {{ item.updated_at }}
+
+
+
Bill Number: {{ item.bill_no }}
+
+
+
+
+
Bill Number: {{ item.bill_no }}
+
+
From 4a1f05e62a06df48ccbb35066815c2ba5b5ee591 Mon Sep 17 00:00:00 2001 From: Omair Saleh Date: Fri, 23 Jun 2023 14:42:46 +0800 Subject: [PATCH 25/27] include ref column to payment export for autocount --- .../Modules/Exports/Services/ExportsPaymentTransactions.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php b/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php index 946f36c6..abc89a65 100644 --- a/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php +++ b/app/Classes/Modules/Exports/Services/ExportsPaymentTransactions.php @@ -32,6 +32,7 @@ class ExportsPaymentTransactions implements FromQuery, WithHeadings, WithHeading 'DocNo', 'DocDate', 'DebtorCode', + 'DebtorCode', 'ShipInfo', 'AccNo', 'DetailDescription', @@ -126,6 +127,7 @@ class ExportsPaymentTransactions implements FromQuery, WithHeadings, WithHeading $transaction->created_at->format('m/d/Y H:m'), $company->debtor, $order->reference, + $order->reference, '500-0000', 'X1 Freight Service Charge', $furtherDescription, From 80471acc5b21ea439e514864d6c17c4acbaf6340 Mon Sep 17 00:00:00 2001 From: edmondlang Date: Wed, 28 Jun 2023 01:08:31 +0800 Subject: [PATCH 26/27] update support page --- .../elements/UserCompanyComponent.vue | 104 ++++++++++++++---- resources/views/pages/support.blade.php | 4 +- routes/web.php | 27 ++++- 3 files changed, 105 insertions(+), 30 deletions(-) diff --git a/resources/assets/vue/components/companies/elements/UserCompanyComponent.vue b/resources/assets/vue/components/companies/elements/UserCompanyComponent.vue index ed8a2463..9fa640f5 100644 --- a/resources/assets/vue/components/companies/elements/UserCompanyComponent.vue +++ b/resources/assets/vue/components/companies/elements/UserCompanyComponent.vue @@ -1,38 +1,96 @@