From 80ce9867137b26097a4c8daf69169dbdd9c7b9de Mon Sep 17 00:00:00 2001 From: Dillon Date: Mon, 6 Mar 2023 00:26:08 +0800 Subject: [PATCH] Tie invoice to project --- .../CreatePerfexCRMInvoiceProcessor.php | 20 +++++++++++++++++-- .../CreateInvoiceTransactionProcessor.php | 7 +------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php index ccdfcdb8..2086276d 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMInvoiceProcessor.php @@ -6,6 +6,7 @@ namespace App\Classes\Modules\PerfexCRM\Processors; use App\Classes\Modules\PerfexCRM\Services\CreatesPerfexCRMInvoice; use App\Classes\Modules\PerfexCRM\Services\CreatesPerfexCRMInvoicePayment; use App\Classes\Modules\PerfexCRM\Services\ConvertsPerfexCRMLeadToCustomer; +use App\Classes\Modules\PerfexCRM\Services\FetchesPerfexCRMProject; use App\Classes\Modules\PerfexCRM\DataTransferObjects\InvoicePerfexCRMObject; use App\Classes\Modules\PerfexCRM\DataTransferObjects\InvoicePaymentPerfexCRMObject; use App\Classes\Modules\PerfexCRM\DataTransferObjects\InvoiceSingleItemPerfexCRMObject; @@ -23,17 +24,22 @@ class CreatePerfexCRMInvoiceProcessor /** @var ConvertsPerfexCRMLeadToCustomer */ private $convertsPerfexCRMLeadToCustomer; + /** @var FetchesPerfexCRMProject */ + private $fetchesPerfexCRMProject; + /** * CreatePerfexCRMInvoiceProcessor constructor. * @param CreatesPerfexCRMInvoice $createsPerfexCRMInvoice */ public function __construct(CreatesPerfexCRMInvoice $createsPerfexCRMInvoice, CreatesPerfexCRMInvoicePayment $createsPerfexCRMInvoicePayment, - ConvertsPerfexCRMLeadToCustomer $convertsPerfexCRMLeadToCustomer) + ConvertsPerfexCRMLeadToCustomer $convertsPerfexCRMLeadToCustomer, + FetchesPerfexCRMProject $fetchesPerfexCRMProject) { $this->createsPerfexCRMInvoice = $createsPerfexCRMInvoice; $this->createsPerfexCRMInvoicePayment = $createsPerfexCRMInvoicePayment; $this->convertsPerfexCRMLeadToCustomer = $convertsPerfexCRMLeadToCustomer; + $this->fetchesPerfexCRMProject = $fetchesPerfexCRMProject; } /** @@ -71,7 +77,7 @@ class CreatePerfexCRMInvoiceProcessor $billingStreet = $billingStreet.$addresses->state()->first()->name.','; $billingStreet = $billingStreet.$addresses->country()->first()->name; - $projectId = ""; + $allowedPaymentModes = []; $invoiceItems = []; @@ -82,6 +88,16 @@ class CreatePerfexCRMInvoiceProcessor $clientId = $result->payload['client_id']; } + //get project + $projectId = ""; + $bookingMarking = $transaction->owner->marking; + $serviceTypeName = $transaction->owner->company->services()->where('id', $transaction->owner->service_id)->first()->name; + $projectName = 'Exchange | '.$serviceTypeName.' | '.$bookingMarking; + $project = $this->fetchesPerfexCRMProject->execute($projectName, $clientId); + if(!is_null($project)){ + $projectId = $project->id; + } + //newitems foreach ($purchaseOrder->transactionDetails as $key => $transaction_detail){ $order = $key + 1; diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index 06a87cb5..d48d4d5b 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -14,7 +14,6 @@ use App\Classes\Modules\Bookings\Services\CalculatesBookingCurrencyAverageRate; use App\Classes\Modules\Companies\Services\FetchesCompany; use App\Classes\Modules\Bookings\Services\UpdatesBookingStatus; use App\Classes\Modules\Transactions\DataTransferObjects\TransactionObject; -use App\Classes\Modules\PerfexCRM\Processors\CreatePerfexCRMInvoiceProcessor; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\SegmentConstants; use App\Classes\ValueObjects\Constants\TransactionType; @@ -53,8 +52,6 @@ class CreateInvoiceTransactionProcessor /** @var CreateInvoiceDocumentProcessor */ private $invoiceDocumentProcessor; - /** @var CreatePerfexCRMInvoiceProcessor */ - private $createPerfexCRMInvoiceProcessor; /** * CreateInvoiceTransactionProcessor constructor. @@ -69,9 +66,8 @@ class CreateInvoiceTransactionProcessor * @param FetchesCompany $fetchesCompany * @param UpdatesBookingStatus $updatesBookingStatus * @param CreateInvoiceDocumentProcessor $invoiceDocumentProcessor - * @param CreatePerfexCRMInvoiceProcessor $createPerfexCRMInvoiceProcessor */ - public function __construct(ListsTransactions $listsTransactions, CreatesTransaction $createsTransaction, GeneratesTransactionBillNumber $generatesTransactionBillNumber, CalculatesBookingPaidAmount $calculatesBookingPaidAmount, CalculatesBookingPayableAmount $calculatesBookingPayableAmount, CalculatesBookingTransferredAmount $calculatesBookingTransferredAmount, FetchesServiceConfigurations $fetchesServiceConfigurations, CalculatesBookingCurrencyAverageRate $calculatesBookingCurrencyAverageRate, FetchesCompany $fetchesCompany, UpdatesBookingStatus $updatesBookingStatus, CreateInvoiceDocumentProcessor $invoiceDocumentProcessor, CreatePerfexCRMInvoiceProcessor $createPerfexCRMInvoiceProcessor) + public function __construct(ListsTransactions $listsTransactions, CreatesTransaction $createsTransaction, GeneratesTransactionBillNumber $generatesTransactionBillNumber, CalculatesBookingPaidAmount $calculatesBookingPaidAmount, CalculatesBookingPayableAmount $calculatesBookingPayableAmount, CalculatesBookingTransferredAmount $calculatesBookingTransferredAmount, FetchesServiceConfigurations $fetchesServiceConfigurations, CalculatesBookingCurrencyAverageRate $calculatesBookingCurrencyAverageRate, FetchesCompany $fetchesCompany, UpdatesBookingStatus $updatesBookingStatus, CreateInvoiceDocumentProcessor $invoiceDocumentProcessor) { $this->createsTransaction = $createsTransaction; $this->generatesTransactionBillNumber = $generatesTransactionBillNumber; @@ -82,7 +78,6 @@ class CreateInvoiceTransactionProcessor $this->fetchesCompany = $fetchesCompany; $this->updatesBookingStatus = $updatesBookingStatus; $this->invoiceDocumentProcessor = $invoiceDocumentProcessor; - $this->createPerfexCRMInvoiceProcessor = $createPerfexCRMInvoiceProcessor; }