From 8b20bfc0a6baa12d59b9097bd181cda1b6a46bda Mon Sep 17 00:00:00 2001 From: Dillon Date: Fri, 4 Aug 2023 14:45:01 +0800 Subject: [PATCH 01/11] Minor logging update --- .../PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php | 1 - .../PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php | 3 +-- .../Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php | 1 - 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php index 2bd95920..ca2c4069 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php @@ -120,7 +120,6 @@ class CreatePerfexCRMInvoiceProcessor $bookingMarking = $transaction->owner->marking; $serviceTypeName = $transaction->owner->company->services()->where('id', $transaction->owner->service_id)->first()->name; $projectName = 'Exchange | '.$serviceTypeName.' | '.$bookingMarking; - Log::error('CreatePerfexCRMInvoiceProcessor debug:'.json_encode($transaction)); Log::error('$projectName: '.$projectName); return $email; } diff --git a/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php index ddf0ee55..f9ffced9 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php @@ -56,13 +56,12 @@ class FetchPerfexCRMInvoiceProcessor $number = 'EXC-'.$number; $invoice = $this->fetchesPerfexCRMInvoice->execute($customer->userid,"INV-", $number); - Log::error(json_encode('FetchPerfexCRMInvoiceProcessor debug $number: '.$number)); if(is_null($invoice)){ $result = $this->createPerfexCRMInvoiceProcessor->execute($transaction, null, null, $fetchPerfexCRMInvoiceObject->getIsPaid()); if ($result) { $invoiceId = $result->payload['id']; } else { - $log['message'] = 'FetchPerfexCRMInvoiceProcessor failed'; + $log['message'] = 'FetchPerfexCRMInvoiceProcessor failed for transaction > bill_no: '.$number; Helper::debugLogger($log); } } diff --git a/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php b/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php index 1ade5453..9adb9460 100644 --- a/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php +++ b/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMInvoice.php @@ -64,7 +64,6 @@ class UpdatesPerfexCRMInvoice return null; } }catch(\Exception $exception){ - dd(json_encode($exception)); throw new MalformedRequestException('Unable to get correct response from Perfex CRM server: ' . $exception->getMessage()); } } From ba2fcb1d6f66862b685c39c36ab4230834353301 Mon Sep 17 00:00:00 2001 From: Dillon Date: Fri, 4 Aug 2023 23:17:26 +0800 Subject: [PATCH 02/11] Some code syntax fixes + remove comments --- app/Classes/Jobs/UpdatePerfexCRM.php | 17 +++--- .../FetchPerfexCRMInvoiceObject.php | 14 +---- .../CreatePerfexCRMInvoiceProcessor.php | 20 ------- .../FetchPerfexCRMInvoiceProcessor.php | 2 +- .../Processors/UpdatePerfexCRMProcessor.php | 24 +++++--- .../Services/CreatesPerfexCRMTask.php | 60 ++++++------------- 6 files changed, 45 insertions(+), 92 deletions(-) diff --git a/app/Classes/Jobs/UpdatePerfexCRM.php b/app/Classes/Jobs/UpdatePerfexCRM.php index 93f536c5..83e91df4 100644 --- a/app/Classes/Jobs/UpdatePerfexCRM.php +++ b/app/Classes/Jobs/UpdatePerfexCRM.php @@ -26,28 +26,28 @@ class UpdatePerfexCRM implements ShouldQueue private $transaction; /** @var Boolean|null */ - private $shouldCreateInvoice; + private $shouldCreateInvoiceWithPayment; /** * @param UpdatePerfexCRMObject $updatePerfexCRMObject * @param $transaction - * @param bool|null $shouldCreateInvoice + * @param bool|null $shouldCreateInvoiceWithPayment */ - public function __construct(UpdatePerfexCRMObject $updatePerfexCRMObject, $transaction, ?bool $shouldCreateInvoice = false) + public function __construct(UpdatePerfexCRMObject $updatePerfexCRMObject, $transaction, ?bool $shouldCreateInvoiceWithPayment = false) { $this->updatePerfexCRMObject = $updatePerfexCRMObject; $this->transaction = $transaction; - $this->shouldCreateInvoice = $shouldCreateInvoice; + $this->shouldCreateInvoiceWithPayment = $shouldCreateInvoiceWithPayment; } public function handle() { //To use invoice as a reference to decide whether more tasks should be created - $this->updatePerfexCRMObject->setInvoiceId($this->getInvoiceId()); + $this->updatePerfexCRMObject->setInvoiceId($this->getInvoiceIdOrCreateInvoice()); $result = (App()->make(UpdatePerfexCRMProcessor::class))->execute($this->updatePerfexCRMObject); - if($this->transaction != null && $this->shouldCreateInvoice){ + if($this->transaction != null && $this->shouldCreateInvoiceWithPayment){ $updatePerfexCRMInvoiceObject = new UpdatePerfexCRMInvoiceObject( $this->updatePerfexCRMObject->getContactEmail(), $this->updatePerfexCRMObject->getProjectName(), @@ -59,12 +59,11 @@ class UpdatePerfexCRM implements ShouldQueue } } - private function getInvoiceId(){ + private function getInvoiceIdOrCreateInvoice(){ if($this->transaction != null){ $fetchPerfexCRMInvoiceObject = new FetchPerfexCRMInvoiceObject( $this->updatePerfexCRMObject->getContactEmail(), - $this->transaction, - true + $this->transaction ); $invoiceId = (App()->make(FetchPerfexCRMInvoiceProcessor::class))->execute($fetchPerfexCRMInvoiceObject); return $invoiceId; diff --git a/app/Classes/Modules/PerfexCRM/DataTransferObjects/FetchPerfexCRMInvoiceObject.php b/app/Classes/Modules/PerfexCRM/DataTransferObjects/FetchPerfexCRMInvoiceObject.php index cbb85a3e..56c5a01d 100644 --- a/app/Classes/Modules/PerfexCRM/DataTransferObjects/FetchPerfexCRMInvoiceObject.php +++ b/app/Classes/Modules/PerfexCRM/DataTransferObjects/FetchPerfexCRMInvoiceObject.php @@ -13,15 +13,11 @@ class FetchPerfexCRMInvoiceObject implements DataTransferObject /** @var Transaction */ private $transaction; - /** @var bool */ - private $isPaid; - - public function __construct(string $email, Transaction $transaction, bool $isPaid) + public function __construct(string $email, Transaction $transaction) { $this->email = $email; $this->transaction = $transaction; - $this->isPaid = $isPaid; } /** @@ -39,12 +35,4 @@ class FetchPerfexCRMInvoiceObject implements DataTransferObject { return $this->transaction; } - - /** - * @return bool - */ - public function getIsPaid(): bool - { - return $this->isPaid; - } } diff --git a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php index ca2c4069..2b6a557d 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php @@ -228,26 +228,6 @@ class CreatePerfexCRMInvoiceProcessor ); $result = $this->createsPerfexCRMInvoice->execute($invoicePerfexCRMObject); - - //cief todo: When invoices need to be regenerated, need to ensure payment do not get double created - - // if(!is_null($result)) - // { - // if($result->payload['id']){ - // $invoicePaymentPerfexCRMObject = new InvoicePaymentPerfexCRMObject( - // $result->payload['id'], - // $total, - // $date, - // 1, - // "", - // "" - // ); - // $this->createsPerfexCRMInvoicePayment->execute($invoicePaymentPerfexCRMObject); - // } - // } - //else: logs will record the following: - //"status":false,"error":{"number":"The Invoice number is already in use"},"message":"

The Invoice number is already in use<\/p>"} - return $result; } } diff --git a/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php index f9ffced9..28ee70a7 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php @@ -57,7 +57,7 @@ class FetchPerfexCRMInvoiceProcessor $number = 'EXC-'.$number; $invoice = $this->fetchesPerfexCRMInvoice->execute($customer->userid,"INV-", $number); if(is_null($invoice)){ - $result = $this->createPerfexCRMInvoiceProcessor->execute($transaction, null, null, $fetchPerfexCRMInvoiceObject->getIsPaid()); + $result = $this->createPerfexCRMInvoiceProcessor->execute($transaction, null, null); if ($result) { $invoiceId = $result->payload['id']; } else { diff --git a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php index 2971e3c8..5552edd9 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php @@ -15,8 +15,8 @@ use App\Classes\Modules\PerfexCRM\Services\UpdatesPerfexCRMTask; use App\Classes\Modules\PerfexCRM\Services\UpdatesPerfexCRMCustomer; use App\Classes\Modules\PerfexCRM\Services\UpdatesPerfexCRMProject; use App\Classes\Modules\PerfexCRM\DataTransferObjects\CustomerContactObject; -use App\Classes\Exceptions\MalformedRequestException; use App\Classes\Modules\PerfexCRM\DataTransferObjects\UpdatePerfexCRMObject; +use App\Classes\Modules\PerfexCRM\DataTransferObjects\CreateTaskPerfexCRMObject; use App\Classes\ValueObjects\Constants\PerfexCRMTaskStatus; use App\Classes\ValueObjects\Constants\PerfexCRMProjectStatus; use Illuminate\Support\Facades\Http; @@ -219,13 +219,23 @@ class UpdatePerfexCRMProcessor } } else{ - $result = $this->createsPerfexCRMTask->execute($taskName, $tasks[$count]['description'], '', $milestoneId, $projectId, $tasks[$count]['reference'], $tasks[$count]['on_task_completion'], $tasks[$count]['department'], $taskStatus, $tasks[$count]['priority'], $tasks[$count]['duedate'], $updatePerfexCRMObject->getInvoiceId()); + $createTaskPerfexCRMObject = new CreateTaskPerfexCRMObject( + "", + $taskName, + $tasks[$count]['description'], + "", + $projectId, + $milestoneId, + $tasks[$count]['reference'], + $tasks[$count]['on_task_completion'], + $taskStatus, + $tasks[$count]['department'], + $tasks[$count]['priority'], + $tasks[$count]['duedate'], + $updatePerfexCRMObject->getInvoiceId() + ); + $result = $this->createsPerfexCRMTask->execute($createTaskPerfexCRMObject); } - - //cief todo: to evaluate if this is still needed - // if(is_null($result)){ - // break; //Breaking the rest of the tasks in array assuming that they are all created as a batch previously - // } } } diff --git a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMTask.php b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMTask.php index ace2aa00..feb8f9c8 100644 --- a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMTask.php +++ b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMTask.php @@ -6,70 +6,46 @@ use Illuminate\Support\Facades\Http; use App\Classes\Exceptions\MalformedRequestException; use Illuminate\Support\Facades\Log; use App\Classes\ValueObjects\Constants\PerfexCRMCustomFields; +use App\Classes\Modules\PerfexCRM\DataTransferObjects\CreateTaskPerfexCRMObject; class CreatesPerfexCRMTask { /** - * @param string $taskName - * @param string $taskDescription - * @param string $leadId - * @param string $milestoneId - * @param string $projectId - * @param string $reference - * @param string $on_task_completion - * @param string $department - * @param string $status - * @param string $priority - * @param string $duedate - * @param int $invoiceId + * @param CreateTaskPerfexCRMObject $createTaskPerfexCRMObject * @return null|object * @throws MalformedRequestException */ - public function execute(string $taskName, string $taskDescription, string $leadId, string $milestoneId, string $projectId, string $reference, string $on_task_completion, string $department, string $status, string $priority, string $duedate, int $invoiceId) { + public function execute(CreateTaskPerfexCRMObject $createTaskPerfexCRMObject) { try{ $custom_fields = []; - if($department != ""){ + if($createTaskPerfexCRMObject->getDepartment() != ""){ $custom_fields = [ "tasks" => [ - PerfexCRMCustomFields::TASKS_DEPARTMENT => $department + PerfexCRMCustomFields::TASKS_DEPARTMENT => $createTaskPerfexCRMObject->getDepartment() ] ]; } $data = [ - 'name' => $taskName, - 'description' => $taskDescription, - 'milestone' => $milestoneId, + 'name' => $createTaskPerfexCRMObject->getName(), + 'description' => $createTaskPerfexCRMObject->getDescription(), + 'milestone' => $createTaskPerfexCRMObject->getMilestoneId(), 'startdate' => date('Y-m-d'), 'rel_type' => 'project', - 'rel_id' => $projectId, - 'status' => $status, + 'rel_id' => $createTaskPerfexCRMObject->getProjectId(), + 'status' => $createTaskPerfexCRMObject->getStatus(), 'is_system_created' => 1, - 'reference' => $reference, - 'on_task_completion' => $on_task_completion, + 'reference' => $createTaskPerfexCRMObject->getReference(), + 'on_task_completion' => $createTaskPerfexCRMObject->getOnTaskCompletion(), 'custom_fields' => $custom_fields, - 'priority' => $priority, - 'duedate' => date('Y-m-d', strtotime('+' . $duedate . ' days')), - 'invoice_id' => $invoiceId, + 'priority' => $createTaskPerfexCRMObject->getPriority(), + 'duedate' => date('Y-m-d', strtotime('+' . $createTaskPerfexCRMObject->getDuedate() . ' days')), + 'invoice_id' => $createTaskPerfexCRMObject->getInvoiceId(), ]; - if($leadId != '') { - $data = [ - 'name' => $taskName, - 'description' => $taskDescription, - 'milestone' => $milestoneId, - 'startdate' => date('Y-m-d'), - 'rel_type' => 'lead', - 'rel_id' => $leadId, - 'status' => $status, - 'is_system_created' => 1, - 'reference' => $reference, - 'on_task_completion' => $on_task_completion, - 'custom_fields' => $custom_fields, - 'priority' => $priority, - 'duedate' => date('Y-m-d', strtotime('+' . $duedate . ' days')), - 'invoice_id' => 0 - ]; + if($createTaskPerfexCRMObject->getLeadId() != '') { + $data['rel_type'] = 'lead'; + $data['rel_id'] = $createTaskPerfexCRMObject->getLeadId(); } $response = Http::asForm()->withHeaders([ From fd3aacd2c069957e21410b47f2195f7e56b888bc Mon Sep 17 00:00:00 2001 From: Dillon Date: Sat, 5 Aug 2023 00:13:21 +0800 Subject: [PATCH 03/11] Fix error from production logs --- app/Classes/Jobs/UpdatePerfexCRM.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/Classes/Jobs/UpdatePerfexCRM.php b/app/Classes/Jobs/UpdatePerfexCRM.php index 83e91df4..65d40126 100644 --- a/app/Classes/Jobs/UpdatePerfexCRM.php +++ b/app/Classes/Jobs/UpdatePerfexCRM.php @@ -26,28 +26,30 @@ class UpdatePerfexCRM implements ShouldQueue private $transaction; /** @var Boolean|null */ - private $shouldCreateInvoiceWithPayment; + private $shouldCreateInvoice; /** * @param UpdatePerfexCRMObject $updatePerfexCRMObject * @param $transaction - * @param bool|null $shouldCreateInvoiceWithPayment + * @param bool|null $shouldCreateInvoice */ - public function __construct(UpdatePerfexCRMObject $updatePerfexCRMObject, $transaction, ?bool $shouldCreateInvoiceWithPayment = false) + public function __construct(UpdatePerfexCRMObject $updatePerfexCRMObject, $transaction, ?bool $shouldCreateInvoice = false) { $this->updatePerfexCRMObject = $updatePerfexCRMObject; $this->transaction = $transaction; - $this->shouldCreateInvoiceWithPayment = $shouldCreateInvoiceWithPayment; + $this->shouldCreateInvoice = $shouldCreateInvoice; } public function handle() { //To use invoice as a reference to decide whether more tasks should be created - $this->updatePerfexCRMObject->setInvoiceId($this->getInvoiceIdOrCreateInvoice()); + if($this->transaction != null && $this->shouldCreateInvoice){ + $this->updatePerfexCRMObject->setInvoiceId($this->getInvoiceIdOrCreateInvoice()); + } $result = (App()->make(UpdatePerfexCRMProcessor::class))->execute($this->updatePerfexCRMObject); - if($this->transaction != null && $this->shouldCreateInvoiceWithPayment){ + if($this->transaction != null && $this->shouldCreateInvoice){ $updatePerfexCRMInvoiceObject = new UpdatePerfexCRMInvoiceObject( $this->updatePerfexCRMObject->getContactEmail(), $this->updatePerfexCRMObject->getProjectName(), From edfec118fe943ad4bc339614e592eb0c60cabe2c Mon Sep 17 00:00:00 2001 From: Dillon Date: Sat, 5 Aug 2023 00:36:18 +0800 Subject: [PATCH 04/11] Fix error from production logs --- app/Classes/Jobs/UpdatePerfexCRM.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Classes/Jobs/UpdatePerfexCRM.php b/app/Classes/Jobs/UpdatePerfexCRM.php index 65d40126..cbb65228 100644 --- a/app/Classes/Jobs/UpdatePerfexCRM.php +++ b/app/Classes/Jobs/UpdatePerfexCRM.php @@ -14,6 +14,7 @@ use App\Classes\Modules\PerfexCRM\DataTransferObjects\UpdatePerfexCRMInvoiceObje use App\Classes\Modules\PerfexCRM\DataTransferObjects\FetchPerfexCRMInvoiceObject; use Illuminate\Support\Facades\Log; use PhpOffice\PhpSpreadsheet\Calculation\Logical\Boolean; +use App\Classes\ValueObjects\Constants\TransactionType; class UpdatePerfexCRM implements ShouldQueue { @@ -44,7 +45,7 @@ class UpdatePerfexCRM implements ShouldQueue public function handle() { //To use invoice as a reference to decide whether more tasks should be created - if($this->transaction != null && $this->shouldCreateInvoice){ + if($this->transaction != null && $this->transaction->type === TransactionType::PAYMENT){ $this->updatePerfexCRMObject->setInvoiceId($this->getInvoiceIdOrCreateInvoice()); } From bea8180e200a0b04ba5d89c4dfc091bebe51067c Mon Sep 17 00:00:00 2001 From: Dillon Date: Sat, 5 Aug 2023 00:44:11 +0800 Subject: [PATCH 05/11] Fix error from production logs --- app/Classes/Jobs/UpdatePerfexCRM.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/Classes/Jobs/UpdatePerfexCRM.php b/app/Classes/Jobs/UpdatePerfexCRM.php index cbb65228..9f598c34 100644 --- a/app/Classes/Jobs/UpdatePerfexCRM.php +++ b/app/Classes/Jobs/UpdatePerfexCRM.php @@ -45,9 +45,7 @@ class UpdatePerfexCRM implements ShouldQueue public function handle() { //To use invoice as a reference to decide whether more tasks should be created - if($this->transaction != null && $this->transaction->type === TransactionType::PAYMENT){ - $this->updatePerfexCRMObject->setInvoiceId($this->getInvoiceIdOrCreateInvoice()); - } + $this->updatePerfexCRMObject->setInvoiceId($this->getInvoiceIdOrCreateInvoice()); $result = (App()->make(UpdatePerfexCRMProcessor::class))->execute($this->updatePerfexCRMObject); if($this->transaction != null && $this->shouldCreateInvoice){ @@ -63,7 +61,7 @@ class UpdatePerfexCRM implements ShouldQueue } private function getInvoiceIdOrCreateInvoice(){ - if($this->transaction != null){ + if($this->transaction != null && $this->transaction->type !== TransactionType::PURCHASE_ORDER){ $fetchPerfexCRMInvoiceObject = new FetchPerfexCRMInvoiceObject( $this->updatePerfexCRMObject->getContactEmail(), $this->transaction From 818672bbf5ca54af837e2ef03bfcccbd0d46c8e8 Mon Sep 17 00:00:00 2001 From: Dillon Date: Sat, 5 Aug 2023 01:31:15 +0800 Subject: [PATCH 06/11] Fix error from production logs --- app/Classes/Jobs/UpdatePerfexCRM.php | 2 +- app/Classes/Jobs/UpdatePerfexCRMInvoice.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Classes/Jobs/UpdatePerfexCRM.php b/app/Classes/Jobs/UpdatePerfexCRM.php index 9f598c34..51ec264f 100644 --- a/app/Classes/Jobs/UpdatePerfexCRM.php +++ b/app/Classes/Jobs/UpdatePerfexCRM.php @@ -61,7 +61,7 @@ class UpdatePerfexCRM implements ShouldQueue } private function getInvoiceIdOrCreateInvoice(){ - if($this->transaction != null && $this->transaction->type !== TransactionType::PURCHASE_ORDER){ + if($this->transaction != null){ $fetchPerfexCRMInvoiceObject = new FetchPerfexCRMInvoiceObject( $this->updatePerfexCRMObject->getContactEmail(), $this->transaction diff --git a/app/Classes/Jobs/UpdatePerfexCRMInvoice.php b/app/Classes/Jobs/UpdatePerfexCRMInvoice.php index e9094f84..422dabb3 100644 --- a/app/Classes/Jobs/UpdatePerfexCRMInvoice.php +++ b/app/Classes/Jobs/UpdatePerfexCRMInvoice.php @@ -60,7 +60,7 @@ class UpdatePerfexCRMInvoice implements ShouldQueue Log::error(json_encode('UpdatePerfexCRMInvoice debug $number: '.$number)); if(is_null($invoice)){ - $result = (App()->make(CreatePerfexCRMInvoiceProcessor::class))->execute($transaction, null, null, $this->updatePerfexCRMInvoiceObject->getIsPaid()); + $result = (App()->make(CreatePerfexCRMInvoiceProcessor::class))->execute($transaction, null, null); if ($result) { $invoiceId = $result->payload['id']; } else { From 96aed6b8f4949b4c8ce4dc29bad48efd15763103 Mon Sep 17 00:00:00 2001 From: Dillon Date: Sat, 5 Aug 2023 02:48:11 +0800 Subject: [PATCH 07/11] Fix error from production logs --- .../Processors/CreatePerfexCRMTaskProcessor.php | 15 +-------------- .../Processors/UpdatePerfexCRMProcessor.php | 11 ++++++++--- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMTaskProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMTaskProcessor.php index 4aa5a089..efd6df0e 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMTaskProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMTaskProcessor.php @@ -25,20 +25,7 @@ class CreatePerfexCRMTaskProcessor * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(CreateTaskPerfexCRMObject $createTaskPerfexCRMObject) { - $this->createsPerfexCRMTask->execute( - $createTaskPerfexCRMObject->getName(), - $createTaskPerfexCRMObject->getDescription(), - $createTaskPerfexCRMObject->getLeadId(), - $createTaskPerfexCRMObject->getMilestoneId(), - $createTaskPerfexCRMObject->getProjectId(), - $createTaskPerfexCRMObject->getReference(), - $createTaskPerfexCRMObject->getOnTaskCompletion(), - $createTaskPerfexCRMObject->getDepartment(), - $createTaskPerfexCRMObject->getStatus(), - $createTaskPerfexCRMObject->getPriority(), - $createTaskPerfexCRMObject->getDuedate(), - $createTaskPerfexCRMObject->getInvoiceId(), - ); + $this->createsPerfexCRMTask->execute($createTaskPerfexCRMObject); return true; } diff --git a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php index 5552edd9..1852eb72 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php @@ -203,10 +203,15 @@ class UpdatePerfexCRMProcessor } // Get existing or create task - $taskName = $tasks[$count]['name'];; + $taskName = $tasks[$count]['name']; + $taskReference = $tasks[$count]['reference']; + $taskOnTaskCompletion = $tasks[$count]['on_task_completion']; if($updatePerfexCRMObject->getInvoiceId() != 0){ $taskName = $taskName." (".$updatePerfexCRMObject->getInvoiceId().")"; + $taskReference = $taskReference."_".$updatePerfexCRMObject->getInvoiceId(); + $taskOnTaskCompletion = $taskOnTaskCompletion."_".$updatePerfexCRMObject->getInvoiceId(); } + $result = $this->fetchesPerfexCRMTask->execute($taskName, $milestoneId, 'project', $projectId, $updatePerfexCRMObject->getInvoiceId()); // Log::info("UpdatePerfexCRMProcessor task: ".json_encode($taskStatus)." , ".json_encode($result)); @@ -226,8 +231,8 @@ class UpdatePerfexCRMProcessor "", $projectId, $milestoneId, - $tasks[$count]['reference'], - $tasks[$count]['on_task_completion'], + $taskReference, + $taskOnTaskCompletion, $taskStatus, $tasks[$count]['department'], $tasks[$count]['priority'], From 0d2ecffd8ca7f07483dc8e786b9a4e3fe808d1d9 Mon Sep 17 00:00:00 2001 From: Dillon Date: Sat, 5 Aug 2023 03:16:27 +0800 Subject: [PATCH 08/11] Fix error from production logs --- .../Processors/TransactionToPerfexCRMProcessorV2.php | 12 ++++++------ .../Processors/UpdatePerfexCRMProcessor.php | 4 +++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessorV2.php b/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessorV2.php index 7ec712c6..bc747720 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessorV2.php +++ b/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessorV2.php @@ -162,12 +162,12 @@ class TransactionToPerfexCRMProcessorV2 $tasks = array_merge($tasks, $this->payment1688Tasks()); } - if ($model->owner->service_id === 1 || $model->owner->service_id === 3) { - $purchaseOrder = $model->booking->transactions()->where('type', TransactionType::PURCHASE_ORDER)->complete()->first(); - if(is_null($purchaseOrder)){ - $tasks = array_merge($tasks, $this->purchaseOrderTasks()); - } - } + // if ($model->owner->service_id === 1 || $model->owner->service_id === 3) { + // $purchaseOrder = $model->booking->transactions()->where('type', TransactionType::PURCHASE_ORDER)->complete()->first(); + // if(is_null($purchaseOrder)){ + // $tasks = array_merge($tasks, $this->purchaseOrderTasks()); + // } + // } return $tasks; } diff --git a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php index 1852eb72..127b712f 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php @@ -209,7 +209,9 @@ class UpdatePerfexCRMProcessor if($updatePerfexCRMObject->getInvoiceId() != 0){ $taskName = $taskName." (".$updatePerfexCRMObject->getInvoiceId().")"; $taskReference = $taskReference."_".$updatePerfexCRMObject->getInvoiceId(); - $taskOnTaskCompletion = $taskOnTaskCompletion."_".$updatePerfexCRMObject->getInvoiceId(); + if($taskOnTaskCompletion){ + $taskOnTaskCompletion = $taskOnTaskCompletion."_".$updatePerfexCRMObject->getInvoiceId(); + } } $result = $this->fetchesPerfexCRMTask->execute($taskName, $milestoneId, 'project', $projectId, $updatePerfexCRMObject->getInvoiceId()); From 3be1854fce50680fba178a8f0e738aad2dab7aeb Mon Sep 17 00:00:00 2001 From: Dillon Date: Sat, 5 Aug 2023 20:39:04 +0800 Subject: [PATCH 09/11] Fix error from production logs --- app/Classes/Jobs/CreatePerfexCRMInvoice.php | 14 ++------------ app/Classes/Jobs/UpdatePerfexCRMInvoice.php | 2 +- .../Processors/CreatePerfexCRMInvoiceProcessor.php | 13 +++---------- .../Processors/FetchPerfexCRMInvoiceProcessor.php | 2 +- 4 files changed, 7 insertions(+), 24 deletions(-) diff --git a/app/Classes/Jobs/CreatePerfexCRMInvoice.php b/app/Classes/Jobs/CreatePerfexCRMInvoice.php index a6905be4..7246dc79 100644 --- a/app/Classes/Jobs/CreatePerfexCRMInvoice.php +++ b/app/Classes/Jobs/CreatePerfexCRMInvoice.php @@ -16,27 +16,17 @@ class CreatePerfexCRMInvoice implements ShouldQueue /** @var $transaction*/ private $transaction; - /** @var $purchaseOrder*/ - private $purchaseOrder; - - /** @var $supplier*/ - private $supplier; - /** * CreatePerfexCRMInvoice constructor. * @param $transaction - * @param $purchaseOrder - * @param $supplier */ - public function __construct($transaction, $purchaseOrder, $supplier) + public function __construct($transaction) { $this->transaction = $transaction; - $this->purchaseOrder = $purchaseOrder; - $this->supplier = $supplier; } public function handle() { - (App()->make(CreatePerfexCRMInvoiceProcessor::class))->execute($this->transaction, $this->purchaseOrder, $this->supplier); + (App()->make(CreatePerfexCRMInvoiceProcessor::class))->execute($this->transaction); } } diff --git a/app/Classes/Jobs/UpdatePerfexCRMInvoice.php b/app/Classes/Jobs/UpdatePerfexCRMInvoice.php index 422dabb3..26131bca 100644 --- a/app/Classes/Jobs/UpdatePerfexCRMInvoice.php +++ b/app/Classes/Jobs/UpdatePerfexCRMInvoice.php @@ -60,7 +60,7 @@ class UpdatePerfexCRMInvoice implements ShouldQueue Log::error(json_encode('UpdatePerfexCRMInvoice debug $number: '.$number)); if(is_null($invoice)){ - $result = (App()->make(CreatePerfexCRMInvoiceProcessor::class))->execute($transaction, null, null); + $result = (App()->make(CreatePerfexCRMInvoiceProcessor::class))->execute($transaction); if ($result) { $invoiceId = $result->payload['id']; } else { diff --git a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php index 2b6a557d..4edb2ef5 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php @@ -59,23 +59,16 @@ class CreatePerfexCRMInvoiceProcessor /** * @param $transaction - * @param $purchaseOrder - * @param $supplier * @return null|object * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute($transaction, $purchaseOrder, $supplier) { + public function execute($transaction) { $booking = $transaction->booking; - - if(is_null($supplier)){ - $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); - } - if(is_null($purchaseOrder)){ - $purchaseOrder = $booking->transactions() + $supplier = $this->fetchesCompany->execute(['id' => $transaction->receiver]); + $purchaseOrder = $booking->transactions() ->where('type', TransactionType::PURCHASE_ORDER) ->complete() ->first(); - } $clientId = ""; $number = $transaction->bill_no; diff --git a/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php index 28ee70a7..4c8ee9bf 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/FetchPerfexCRMInvoiceProcessor.php @@ -57,7 +57,7 @@ class FetchPerfexCRMInvoiceProcessor $number = 'EXC-'.$number; $invoice = $this->fetchesPerfexCRMInvoice->execute($customer->userid,"INV-", $number); if(is_null($invoice)){ - $result = $this->createPerfexCRMInvoiceProcessor->execute($transaction, null, null); + $result = $this->createPerfexCRMInvoiceProcessor->execute($transaction); if ($result) { $invoiceId = $result->payload['id']; } else { From 79affd81f92588d44e3ee28ea21b6a40b90ae6fd Mon Sep 17 00:00:00 2001 From: Dillon Date: Sat, 5 Aug 2023 21:01:21 +0800 Subject: [PATCH 10/11] Fix error from production logs --- .../Processors/UpdatePerfexCRMProcessor.php | 3 +- .../ValueObjects/Constants/PerfexCRMTasks.php | 96 ++++++++++++------- 2 files changed, 66 insertions(+), 33 deletions(-) diff --git a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php index 127b712f..4355956a 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php @@ -206,7 +206,8 @@ class UpdatePerfexCRMProcessor $taskName = $tasks[$count]['name']; $taskReference = $tasks[$count]['reference']; $taskOnTaskCompletion = $tasks[$count]['on_task_completion']; - if($updatePerfexCRMObject->getInvoiceId() != 0){ + $taskIsAllowMultiple = $tasks[$count]['is_allow_multiple']; + if($updatePerfexCRMObject->getInvoiceId() != 0 && $taskIsAllowMultiple){ $taskName = $taskName." (".$updatePerfexCRMObject->getInvoiceId().")"; $taskReference = $taskReference."_".$updatePerfexCRMObject->getInvoiceId(); if($taskOnTaskCompletion){ diff --git a/app/Classes/ValueObjects/Constants/PerfexCRMTasks.php b/app/Classes/ValueObjects/Constants/PerfexCRMTasks.php index 4129f2a8..c0bc66d7 100644 --- a/app/Classes/ValueObjects/Constants/PerfexCRMTasks.php +++ b/app/Classes/ValueObjects/Constants/PerfexCRMTasks.php @@ -13,7 +13,8 @@ class PerfexCRMTasks 'department' => '', 'status' => PerfexCRMTaskStatus::COMPLETED, 'priority' => PerfexCRMTaskPriority::DEFAULT, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_1_DAY_TRANSFER_1 = [ @@ -27,7 +28,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_1_DAY_TRANSFER_2 = [ 'name' => 'Approve Payment', @@ -47,7 +49,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => true ]; public const TASK_1_DAY_TRANSFER_3 = [ 'name' => 'Issue Exchange Autocount Invoince', @@ -65,7 +68,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => false ]; public const TASK_1_DAY_TRANSFER_3_1 = [ 'name' => 'Issue Exchange Autocount OR', @@ -76,7 +80,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_1_DAY_TRANSFER_4 = [ 'name' => 'Knockoff Invoice', @@ -94,7 +99,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => false ]; public const TASK_1_DAY_TRANSFER_5 = [ 'name' => 'Order Placed in White Form', @@ -114,7 +120,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => true ]; public const TASK_1_DAY_TRANSFER_6 = [ 'name' => 'Upload China Bank Slip', @@ -132,7 +139,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => true ]; public const TASK_3_DAY_TRANSFER_1 = [ @@ -151,7 +159,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_3_DAY_TRANSFER_2 = [ 'name' => 'Approve Payment', @@ -164,7 +173,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => true ]; public const TASK_3_DAY_TRANSFER_3 = [ 'name' => 'Issue Exchange Autocount Invoince', @@ -182,7 +192,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => false ]; public const TASK_3_DAY_TRANSFER_3_1 = [ 'name' => 'Issue Exchange Autocount OR', @@ -193,7 +204,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_3_DAY_TRANSFER_4 = [ 'name' => 'Knockoff Invoice', @@ -211,7 +223,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => false ]; public const TASK_3_DAY_TRANSFER_5 = [ 'name' => 'Order Placed in White Form', @@ -231,7 +244,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => true ]; public const TASK_3_DAY_TRANSFER_6 = [ 'name' => 'Upload China Bank Slip', @@ -249,7 +263,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => true ]; @@ -270,7 +285,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_1688_PAYMENT_2 = [ 'name' => 'Approve Payment', @@ -290,7 +306,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_1688_PAYMENT_3 = [ 'name' => 'Issue Exchange Autocount Invoice', @@ -308,7 +325,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => false ]; public const TASK_1688_PAYMENT_3_1 = [ 'name' => 'Issue Exchange Autocount OR', @@ -320,7 +338,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_1688_PAYMENT_4 = [ 'name' => 'Knockoff Invoice', @@ -338,7 +357,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => false ]; public const TASK_1688_PAYMENT_5 = [ 'name' => 'Order Placed in White Form', @@ -357,7 +377,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_1688_PAYMENT_6 = [ 'name' => 'Send White Form to Operation Department', @@ -375,7 +396,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; public const TASK_1688_PAYMENT_7 = [ 'name' => 'Authorize Customer\'s 1688 Account', @@ -395,7 +417,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => true ]; public const TASK_1688_PAYMENT_8 = [ 'name' => 'Make Payment for Customer 1688 Order', @@ -410,7 +433,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => true ]; public const TASK_1688_PAYMENT_9 = [ 'name' => 'Upload China Bank Slip', @@ -422,7 +446,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => true ]; public const TASK_1688_PAYMENT_10 = [ 'name' => 'Upload 1688 Purchase Order PDF', @@ -434,7 +459,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => true ]; public const TASK_1688_PAYMENT_11 = [ 'name' => 'Fill Up Purchase Order', @@ -446,7 +472,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::LOW, - 'duedate' => 7 + 'duedate' => 7, + 'is_allow_multiple' => false ]; public const TASK_1688_PAYMENT_12 = [ 'name' => 'Approve Purchase Order', @@ -458,7 +485,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::LOW, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => false ]; public const TASK_1688_PAYMENT_13 = [ 'name' => 'Complete Order bookkeeping', @@ -476,7 +504,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; @@ -497,7 +526,8 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::LOW, - 'duedate' => 1 + 'duedate' => 1, + 'is_allow_multiple' => false ]; public const TASK_PURCHASE_ORDER_2 = [ @@ -510,7 +540,8 @@ class PerfexCRMTasks 'department' => 'Accounts', 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; @@ -530,6 +561,7 @@ class PerfexCRMTasks 'department' => 'Operations', 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::DEFAULT, - 'duedate' => 0 + 'duedate' => 0, + 'is_allow_multiple' => false ]; } From 21c4508647dfd84b2ff83d7af95dfab5957b160f Mon Sep 17 00:00:00 2001 From: Dillon Date: Sat, 5 Aug 2023 21:20:56 +0800 Subject: [PATCH 11/11] Fix error from production logs --- .../Processors/UpdatePerfexCRMProcessor.php | 3 +- .../ValueObjects/Constants/PerfexCRMTasks.php | 96 ++++++++++++------- 2 files changed, 66 insertions(+), 33 deletions(-) diff --git a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php index 4355956a..51e04388 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php @@ -207,10 +207,11 @@ class UpdatePerfexCRMProcessor $taskReference = $tasks[$count]['reference']; $taskOnTaskCompletion = $tasks[$count]['on_task_completion']; $taskIsAllowMultiple = $tasks[$count]['is_allow_multiple']; + $taskIsOnTaskCompletionUpdate = $tasks[$count]['is_on_task_completion_update']; if($updatePerfexCRMObject->getInvoiceId() != 0 && $taskIsAllowMultiple){ $taskName = $taskName." (".$updatePerfexCRMObject->getInvoiceId().")"; $taskReference = $taskReference."_".$updatePerfexCRMObject->getInvoiceId(); - if($taskOnTaskCompletion){ + if($taskOnTaskCompletion && $taskIsOnTaskCompletionUpdate){ $taskOnTaskCompletion = $taskOnTaskCompletion."_".$updatePerfexCRMObject->getInvoiceId(); } } diff --git a/app/Classes/ValueObjects/Constants/PerfexCRMTasks.php b/app/Classes/ValueObjects/Constants/PerfexCRMTasks.php index c0bc66d7..1d26c9d3 100644 --- a/app/Classes/ValueObjects/Constants/PerfexCRMTasks.php +++ b/app/Classes/ValueObjects/Constants/PerfexCRMTasks.php @@ -14,7 +14,8 @@ class PerfexCRMTasks 'status' => PerfexCRMTaskStatus::COMPLETED, 'priority' => PerfexCRMTaskPriority::DEFAULT, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1_DAY_TRANSFER_1 = [ @@ -29,7 +30,8 @@ class PerfexCRMTasks 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1_DAY_TRANSFER_2 = [ 'name' => 'Approve Payment', @@ -50,7 +52,8 @@ class PerfexCRMTasks 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 0, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => true ]; public const TASK_1_DAY_TRANSFER_3 = [ 'name' => 'Issue Exchange Autocount Invoince', @@ -69,7 +72,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1_DAY_TRANSFER_3_1 = [ 'name' => 'Issue Exchange Autocount OR', @@ -81,7 +85,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1_DAY_TRANSFER_4 = [ 'name' => 'Knockoff Invoice', @@ -100,7 +105,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1_DAY_TRANSFER_5 = [ 'name' => 'Order Placed in White Form', @@ -121,7 +127,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 0, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => true ]; public const TASK_1_DAY_TRANSFER_6 = [ 'name' => 'Upload China Bank Slip', @@ -140,7 +147,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => true ]; public const TASK_3_DAY_TRANSFER_1 = [ @@ -160,7 +168,8 @@ class PerfexCRMTasks 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_3_DAY_TRANSFER_2 = [ 'name' => 'Approve Payment', @@ -174,7 +183,8 @@ class PerfexCRMTasks 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 0, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => true ]; public const TASK_3_DAY_TRANSFER_3 = [ 'name' => 'Issue Exchange Autocount Invoince', @@ -193,7 +203,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_3_DAY_TRANSFER_3_1 = [ 'name' => 'Issue Exchange Autocount OR', @@ -205,7 +216,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_3_DAY_TRANSFER_4 = [ 'name' => 'Knockoff Invoice', @@ -224,7 +236,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_3_DAY_TRANSFER_5 = [ 'name' => 'Order Placed in White Form', @@ -245,7 +258,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 0, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => true ]; public const TASK_3_DAY_TRANSFER_6 = [ 'name' => 'Upload China Bank Slip', @@ -264,7 +278,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => true ]; @@ -286,7 +301,8 @@ class PerfexCRMTasks 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_2 = [ 'name' => 'Approve Payment', @@ -307,7 +323,8 @@ class PerfexCRMTasks 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_3 = [ 'name' => 'Issue Exchange Autocount Invoice', @@ -326,7 +343,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_3_1 = [ 'name' => 'Issue Exchange Autocount OR', @@ -339,7 +357,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_4 = [ 'name' => 'Knockoff Invoice', @@ -358,7 +377,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_5 = [ 'name' => 'Order Placed in White Form', @@ -378,7 +398,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_6 = [ 'name' => 'Send White Form to Operation Department', @@ -397,7 +418,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_7 = [ 'name' => 'Authorize Customer\'s 1688 Account', @@ -418,7 +440,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 1, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => true ]; public const TASK_1688_PAYMENT_8 = [ 'name' => 'Make Payment for Customer 1688 Order', @@ -434,7 +457,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::HIGH, 'duedate' => 1, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => true ]; public const TASK_1688_PAYMENT_9 = [ 'name' => 'Upload China Bank Slip', @@ -447,7 +471,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => true ]; public const TASK_1688_PAYMENT_10 = [ 'name' => 'Upload 1688 Purchase Order PDF', @@ -460,7 +485,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::MEDIUM, 'duedate' => 1, - 'is_allow_multiple' => true + 'is_allow_multiple' => true, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_11 = [ 'name' => 'Fill Up Purchase Order', @@ -473,7 +499,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::LOW, 'duedate' => 7, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_12 = [ 'name' => 'Approve Purchase Order', @@ -486,7 +513,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::LOW, 'duedate' => 1, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_1688_PAYMENT_13 = [ 'name' => 'Complete Order bookkeeping', @@ -505,7 +533,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; @@ -527,7 +556,8 @@ class PerfexCRMTasks 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::LOW, 'duedate' => 1, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; public const TASK_PURCHASE_ORDER_2 = [ @@ -541,7 +571,8 @@ class PerfexCRMTasks 'status' => '', 'priority' => PerfexCRMTaskPriority::DEFAULT, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; @@ -562,6 +593,7 @@ class PerfexCRMTasks 'status' => PerfexCRMTaskStatus::IN_PROGRESS, 'priority' => PerfexCRMTaskPriority::DEFAULT, 'duedate' => 0, - 'is_allow_multiple' => false + 'is_allow_multiple' => false, + 'is_on_task_completion_update' => false ]; }