diff --git a/app/Classes/Jobs/CreatePerfexCRMCustomer.php b/app/Classes/Jobs/CreatePerfexCRMCustomer.php new file mode 100644 index 00000000..b313dca6 --- /dev/null +++ b/app/Classes/Jobs/CreatePerfexCRMCustomer.php @@ -0,0 +1,33 @@ +createLeadPerfexCRMObject = $createLeadPerfexCRMObject; + } + + public function handle() + { + (App()->make(CreatePerfexCRMLeadProcessor::class))->execute($this->createLeadPerfexCRMObject); + } +} diff --git a/app/Classes/Modules/Accounts/ControllersLogic/CreateCustomerLogic.php b/app/Classes/Modules/Accounts/ControllersLogic/CreateCustomerLogic.php index 101f9cba..b8aeec12 100644 --- a/app/Classes/Modules/Accounts/ControllersLogic/CreateCustomerLogic.php +++ b/app/Classes/Modules/Accounts/ControllersLogic/CreateCustomerLogic.php @@ -10,19 +10,22 @@ use App\Classes\Modules\Accounts\Processors\GenerateEmailVerificationAttemptProc use App\Classes\Modules\Companies\Processors\AssignEmployeeProcessor; use App\Classes\Modules\Companies\Processors\AssignSegmentProcessor; use App\Classes\Modules\Companies\Processors\CreateCompanyProcessor; -use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject; use App\Classes\Modules\Contacts\Processors\CreateContactProcessor; use App\Classes\Modules\PerfexCRM\Processors\CreatePerfexCRMLeadProcessor; +use App\Classes\Modules\Companies\DataTransferObjects\EmploymentObject; +use App\Classes\Modules\PerfexCRM\DataTransferObjects\CreateLeadPerfexCRMObject; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\BusinessType; use App\Classes\ValueObjects\Constants\CompanyType; use App\Classes\ValueObjects\Constants\RoleTypes; +use App\Classes\Jobs\CreatePerfexCRMCustomer; use App\Models\Company; use App\Models\User; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; + class CreateCustomerLogic extends AbstractControllerLogic { @@ -108,10 +111,16 @@ class CreateCustomerLogic extends AbstractControllerLogic $this->assignSegmentProcessor->execute($company); - $this->createPerfexCRMLeadProcessor->execute($request); + if(config('perfexcrm.is_enabled') == 'true'){ + //$this->createPerfexCRMLeadProcessor->execute($request); + $createLeadPerfexCRMObject = new CreateLeadPerfexCRMObject( + $request->input('name'), + $request->input('email') + ); + CreatePerfexCRMCustomer::dispatch($createLeadPerfexCRMObject); + } - //cief TODO: This line is intentionally commented because otherwise frontend cannot load/hit error - //$this->generateEmailVerificationAttemptProcessor->execute($user); + $this->generateEmailVerificationAttemptProcessor->execute($user); return $this->response($this->authenticationProcessor->execute($request)); diff --git a/app/Classes/Modules/PerfexCRM/DataTransferObjects/CreateLeadPerfexCRMObject.php b/app/Classes/Modules/PerfexCRM/DataTransferObjects/CreateLeadPerfexCRMObject.php new file mode 100644 index 00000000..fead15ec --- /dev/null +++ b/app/Classes/Modules/PerfexCRM/DataTransferObjects/CreateLeadPerfexCRMObject.php @@ -0,0 +1,40 @@ +name = $name; + $this->email = $email; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @return string + */ + public function getEmail(): string + { + return $this->email; + } + +} diff --git a/app/Classes/Modules/PerfexCRM/DataTransferObjects/InitialPerfexCRMObject.php b/app/Classes/Modules/PerfexCRM/DataTransferObjects/InitialPerfexCRMObject.php index 00a913a0..1c4a9db5 100644 --- a/app/Classes/Modules/PerfexCRM/DataTransferObjects/InitialPerfexCRMObject.php +++ b/app/Classes/Modules/PerfexCRM/DataTransferObjects/InitialPerfexCRMObject.php @@ -13,6 +13,9 @@ class InitialPerfexCRMObject implements DataTransferObject /** @var string */ private $companyReference; + /** @var string */ + private $contactName; + /** @var string */ private $contactEmail; @@ -29,11 +32,12 @@ class InitialPerfexCRMObject implements DataTransferObject private $taskNames; - public function __construct(string $companyName, string $companyReference, string $contactEmail, string $bookingMarking, string $projectName, array $milestoneNames, array $taskNames) + public function __construct(string $companyName, string $companyReference, string $contactName, string $contactEmail, string $bookingMarking, string $projectName, array $milestoneNames, array $taskNames) { $this->companyName = $companyName; $this->companyReference = $companyReference; + $this->contactName = $contactName; $this->contactEmail = $contactEmail; $this->bookingMarking = $bookingMarking; $this->projectName = $projectName; @@ -57,6 +61,14 @@ class InitialPerfexCRMObject implements DataTransferObject return $this->companyReference; } + /** + * @return string + */ + public function getContactName(): string + { + return $this->contactName; + } + /** * @return string */ diff --git a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMLeadProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMLeadProcessor.php index b7b96773..81c90335 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMLeadProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/CreatePerfexCRMLeadProcessor.php @@ -7,7 +7,7 @@ use App\Classes\Modules\PerfexCRM\Services\CreatesPerfexCRMLead; use App\Classes\Exceptions\MalformedRequestException; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; -use Illuminate\Http\Request; +use App\Classes\Modules\PerfexCRM\DataTransferObjects\CreateLeadPerfexCRMObject; class CreatePerfexCRMLeadProcessor { @@ -25,12 +25,12 @@ class CreatePerfexCRMLeadProcessor } /** - * @param Request $request + * @param CreateLeadPerfexCRMObject $createLeadPerfexCRMObject * @return null|object * @throws \App\Classes\Exceptions\MalformedRequestException */ - public function execute(Request $request) { - return $this->createsPerfexCRMLead->execute($request->input('name'), $request->input('email')); + public function execute(CreateLeadPerfexCRMObject $createLeadPerfexCRMObject) { + return $this->createsPerfexCRMLead->execute($createLeadPerfexCRMObject->getName(), $createLeadPerfexCRMObject->getEmail()); } } diff --git a/app/Classes/Modules/PerfexCRM/Processors/InitializePerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/InitializePerfexCRMProcessor.php index 12b4a6d4..0aac3bf9 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/InitializePerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/InitializePerfexCRMProcessor.php @@ -11,12 +11,14 @@ use App\Classes\Modules\PerfexCRM\Services\FetchesPerfexCRMMilestone; use App\Classes\Modules\PerfexCRM\Services\FetchesPerfexCRMTask; use App\Classes\Modules\PerfexCRM\Services\CreatesPerfexCRMCustomer; use App\Classes\Modules\PerfexCRM\Services\CreatesPerfexCRMCustomerContact; +use App\Classes\Modules\PerfexCRM\Services\UpdatesPerfexCRMCustomer; use App\Classes\Modules\PerfexCRM\DataTransferObjects\CustomerContactObject; use App\Classes\Exceptions\MalformedRequestException; use App\Classes\Modules\PerfexCRM\DataTransferObjects\InitialPerfexCRMObject; use App\Classes\Modules\PerfexCRM\DataTransferObjects\UpdatePerfexCRMObject; use App\Classes\ValueObjects\Constants\PerfexCRMMilestones; use App\Classes\ValueObjects\Constants\PerfexCRMTasks; +use App\Classes\ValueObjects\Constants\PerfexCRMStatus; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; use Illuminate\Http\Request; @@ -53,6 +55,9 @@ class InitializePerfexCRMProcessor /** @var UpdatesPerfexCRM */ private $updatePerfexCRM; + /** @var UpdatesPerfexCRMCustomer */ + private $updatesPerfexCRMCustomer; + /** * @param ConvertsPerfexCRMLeadToCustomer $convertsPerfexCRMLeadToCustomer * @param CreatesPerfexCRMCustomerProject $createsPerfexCRMCustomerProject @@ -63,6 +68,7 @@ class InitializePerfexCRMProcessor * @param FetchesPerfexCRMTask $fetchesPerfexCRMTask * @param CreatesPerfexCRMCustomer $createsPerfexCRMCustomer * @param CreatesPerfexCRMCustomerContact $createsPerfexCRMCustomerContact + * @param UpdatesPerfexCRMCustomer $updatesPerfexCRMCustomer */ public function __construct(ConvertsPerfexCRMLeadToCustomer $convertsPerfexCRMLeadToCustomer, CreatesPerfexCRMCustomerProject $createsPerfexCRMCustomerProject, @@ -72,7 +78,8 @@ class InitializePerfexCRMProcessor FetchesPerfexCRMMilestone $fetchesPerfexCRMMilestone, FetchesPerfexCRMTask $fetchesPerfexCRMTask, CreatesPerfexCRMCustomer $createsPerfexCRMCustomer, - CreatesPerfexCRMCustomerContact $createsPerfexCRMCustomerContact) + CreatesPerfexCRMCustomerContact $createsPerfexCRMCustomerContact, + UpdatesPerfexCRMCustomer $updatesPerfexCRMCustomer) { $this->convertsPerfexCRMLeadToCustomer = $convertsPerfexCRMLeadToCustomer; $this->createsPerfexCRMCustomerProject = $createsPerfexCRMCustomerProject; @@ -83,6 +90,7 @@ class InitializePerfexCRMProcessor $this->fetchesPerfexCRMTask = $fetchesPerfexCRMTask; $this->createsPerfexCRMCustomer = $createsPerfexCRMCustomer; $this->createsPerfexCRMCustomerContact = $createsPerfexCRMCustomerContact; + $this->updatesPerfexCRMCustomer = $updatesPerfexCRMCustomer; } /** @@ -94,28 +102,52 @@ class InitializePerfexCRMProcessor // Customer has to exist first before Project can appear under it // Check with Perfex CRM, if this user (email) was previously a lead, should automatically now become a customer + $crmCompany = $initialPerfexCRMObject->getCompanyName(); $result = $this->convertsPerfexCRMLeadToCustomer->execute($initialPerfexCRMObject->getContactEmail()); + if(isset($result->payload)){ - $crmClientId = $result->payload['client_id']; + $crmClientId = $result->payload['client_id']; + if (isset($result->payload['company'])) { + $crmCompany = $result->payload['company']; + } } else{ //if reach this point, this means this user is not a official customer nor is a lead in crm //Create Customer has 2 parts: Create Company (client), Create Contact - $result = $this->createsPerfexCRMCustomer->execute($initialPerfexCRMObject->getCompanyName()); + $result = $this->createsPerfexCRMCustomer->execute($crmCompany); + if(is_null($result)){ + $crmCompany = $crmCompany." 2"; + $result = $this->createsPerfexCRMCustomer->execute($crmCompany); + } $crmClientId = $result->payload['clientId']; $customerContactObject = new CustomerContactObject( $crmClientId, - $initialPerfexCRMObject->getCompanyName(), - $initialPerfexCRMObject->getCompanyName(), + $initialPerfexCRMObject->getContactName(), + $initialPerfexCRMObject->getContactName(), $initialPerfexCRMObject->getContactEmail(), - "123456abcabc", + "pU^T@sC#9Q", "on", "on" ); $result = $this->createsPerfexCRMCustomerContact->execute($customerContactObject); } + //Update custom fields to identify company reference from exchange or shipping portal + $value_exists = false; + if (isset($result->payload['customfields'])) { + foreach ($result->payload['customfields'] as $element) { + if ($element['value'] === $initialPerfexCRMObject->getCompanyReference()) { + $value_exists = true; + break; + } + } + } + if(!$value_exists); + { + $result = $this->updatesPerfexCRMCustomer->execute($crmClientId, $crmCompany, $initialPerfexCRMObject->getCompanyReference()); + } + // Get existing or create project, project has to exist first before milestone can appear under it $result = $this->createsPerfexCRMCustomerProject->execute($initialPerfexCRMObject->getProjectName(), $crmClientId); if(isset($result->payload)){ //Here means project creation successful @@ -145,8 +177,13 @@ class InitializePerfexCRMProcessor } } + $taskStatus = PerfexCRMStatus::NOT_STARTED; + if($tasks[$count]['name'] == PerfexCRMTasks::TASK_1['name']){ + $taskStatus = PerfexCRMStatus::COMPLETED; + } + // Get existing or create task - $result = $this->createsPerfexCRMTask->execute($tasks[$count]['name'], $milestoneId, $projectId, $tasks[$count]['reference']); + $result = $this->createsPerfexCRMTask->execute($tasks[$count]['name'], $milestoneId, $projectId, $tasks[$count]['reference'], $taskStatus); } } return true; diff --git a/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php index c24f6417..07610849 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/TransactionToPerfexCRMProcessor.php @@ -49,59 +49,62 @@ class TransactionToPerfexCRMProcessor */ public function execute(Transaction $model, int $status) { - $companyName = "dillon37"; //cief TODO: To be updated by removing this line to user actual company name - if(!is_null($model->owner->company)){ + $proceed = false; + if($model->owner instanceof \App\Models\Booking){ //For owner_type > App\Models\Booking $companyReference = $model->owner->company->reference; + $companyName = $model->owner->company->name; + $employee = $model->owner->company->employees()->first(); + $contactEmail = $employee->email; + $contactName = $employee->name; + $proceed = true; } - else{ + else if($model->owner instanceof \App\Models\Wallet){ //For owner_type > App\Models\Wallet $companyReference = $model->owner->owner->reference; + $companyName = $model->owner->company->name; $company = $this->fetchesCompany->execute(['id' => $model->owner->owner->id]); - $email = $company->employees()->first()->email; + $employee = $company->employees()->first(); + $contactEmail = $employee->email; + $contactName = $employee->name; + $proceed = true; } - $contactEmail = "dillon37@yahoo.com"; //cief TODO: To be updated to user actual email address + $bookingMarking = $model->owner->marking; - if($model->owner instanceof \App\Models\Booking && $model->payment_reference != null && $status == ApprovalStatus::APPROVED){ + if($proceed && $model->owner instanceof \App\Models\Booking && $model->payment_reference != null && $status == ApprovalStatus::APPROVED){ $initialPerfexCRMObject = new InitialPerfexCRMObject( $companyName, $companyReference, + $contactName, $contactEmail, $bookingMarking, $companyReference.'-'.$bookingMarking, [], [ PerfexCRMTasks::TASK_1, - PerfexCRMTasks::TASK_2, - PerfexCRMTasks::TASK_3, - PerfexCRMTasks::TASK_4, - PerfexCRMTasks::TASK_5, - PerfexCRMTasks::TASK_6, - PerfexCRMTasks::TASK_7, - PerfexCRMTasks::TASK_8, - PerfexCRMTasks::TASK_9, - PerfexCRMTasks::TASK_10, ] ); //$this->initializePerfexCRMProcessor->execute($initialPerfexCRMObject); InitializePerfexCRM::dispatch($initialPerfexCRMObject); - $updatePerfexCRMObject = new UpdatePerfexCRMObject( - $companyName, - $companyReference, - $contactEmail, - $bookingMarking, - $companyReference.'-'.$bookingMarking, - PerfexCRMTasks::TASK_1['milestone'], - PerfexCRMTasks::TASK_1['name'] - ); + // $updatePerfexCRMObject = new UpdatePerfexCRMObject( + // $companyName, + // $companyReference, + // $contactEmail, + // $bookingMarking, + // $companyReference.'-'.$bookingMarking, + // PerfexCRMTasks::TASK_1['milestone'], + // PerfexCRMTasks::TASK_1['name'] + // ); - //Mark task in Perfex CRM as done (5 means completed task) - // $this->updatePerfexCRMProcessor->execute($updatePerfexCRMObject); - UpdatePerfexCRM::dispatch($updatePerfexCRMObject); + // //Mark task in Perfex CRM as done (5 means completed task) + // // $this->updatePerfexCRMProcessor->execute($updatePerfexCRMObject); + // UpdatePerfexCRM::dispatch($updatePerfexCRMObject); } + + /* else if($model->owner instanceof \App\Models\Booking && $status == ApprovalStatus::APPROVED){ $updatePerfexCRMObject = new UpdatePerfexCRMObject( @@ -134,6 +137,7 @@ class TransactionToPerfexCRMProcessor //$this->updatePerfexCRMProcessor->execute($updatePerfexCRMObject); UpdatePerfexCRM::dispatch($updatePerfexCRMObject); } + */ return true; } diff --git a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php index 031fdb4f..0b452d02 100644 --- a/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php +++ b/app/Classes/Modules/PerfexCRM/Processors/UpdatePerfexCRMProcessor.php @@ -15,6 +15,7 @@ use App\Classes\Modules\PerfexCRM\Services\UpdatesPerfexCRMTask; use App\Classes\Modules\PerfexCRM\DataTransferObjects\CustomerContactObject; use App\Classes\Exceptions\MalformedRequestException; use App\Classes\Modules\PerfexCRM\DataTransferObjects\UpdatePerfexCRMObject; +use App\Classes\ValueObjects\Constants\PerfexCRMStatus; use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Log; use Illuminate\Http\Request; @@ -100,23 +101,6 @@ class UpdatePerfexCRMProcessor if(isset($result->payload)){ $crmClientId = $result->payload['client_id']; } - else{ - //if reach this point, this means this user is not a official customer nor is a lead in crm - //Create Customer has 2 parts: Create Company (client), Create Contact - $result = $this->createsPerfexCRMCustomer->execute($updatePerfexCRMObject->getCompanyName()); - $crmClientId = $result->payload['clientId']; - - $customerContactObject = new CustomerContactObject( - $crmClientId, - $updatePerfexCRMObject->getCompanyName(), - $updatePerfexCRMObject->getCompanyName(), - $updatePerfexCRMObject->getContactEmail(), - "123456abcabc", - "on", - "on" - ); - $result = $this->createsPerfexCRMCustomerContact->execute($customerContactObject); - } // Get existing or create project, project has to exist first before milestone can appear under it $result = $this->createsPerfexCRMCustomerProject->execute($updatePerfexCRMObject->getProjectName(), $crmClientId); @@ -147,8 +131,7 @@ class UpdatePerfexCRMProcessor $taskId = $this->fetchesPerfexCRMTask->execute($updatePerfexCRMObject->getTaskName(), $milestoneId)->id; } - //cief TODO: To update task status dynamically, now is hardcoded 5 (5 means completed task) - $this->updatesPerfexCRMTask->execute($taskId, $updatePerfexCRMObject->getTaskName(), $milestoneId, $projectId, 5); + $this->updatesPerfexCRMTask->execute($taskId, $updatePerfexCRMObject->getTaskName(), $milestoneId, $projectId, PerfexCRMStatus::COMPLETED); return null; } diff --git a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMCustomerContact.php b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMCustomerContact.php index 600b928e..519c1495 100644 --- a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMCustomerContact.php +++ b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMCustomerContact.php @@ -23,7 +23,7 @@ class CreatesPerfexCRMCustomerContact 'email' => $customerContactObject->getEmail(), //$email 'password' => $customerContactObject->getPassword(), 'is_primary' => $customerContactObject->getIsPrimary(), - 'send_set_password_email' => $customerContactObject->getSendSetPasswordEmail(), + //'send_set_password_email' => $customerContactObject->getSendSetPasswordEmail(), ]; $response = Http::asForm()->withHeaders([ diff --git a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMLead.php b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMLead.php index 07db48a8..97a659a6 100644 --- a/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMLead.php +++ b/app/Classes/Modules/PerfexCRM/Services/CreatesPerfexCRMLead.php @@ -19,8 +19,8 @@ class CreatesPerfexCRMLead $data = [ 'name' => $name, 'email' => $email, - 'source' => 3, - 'status' => 2 + 'source' => 1, //1: Exchange, 2: Shipping Portal + 'status' => 2 //2: Lead, 1: Customer ]; $response = Http::asForm()->withHeaders([ diff --git a/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMCustomer.php b/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMCustomer.php new file mode 100644 index 00000000..561795f8 --- /dev/null +++ b/app/Classes/Modules/PerfexCRM/Services/UpdatesPerfexCRMCustomer.php @@ -0,0 +1,46 @@ + [ + 1 => $companyReference + ] + ]; + + $data = [ + 'company' => $companyName, + 'custom_fields' => $custom_fields + ]; + + $response = Http::asJson()->withHeaders([ + 'authtoken' => config('perfexcrm.api_key')]) + ->put(config('perfexcrm.base_url').'/api/customers/'.$customerId, $data); + + if($response->successful()){ + $data = $response->json(); + return (object) $data; + }else{ + Log::error($response); + return null; + } + }catch(\Exception $exception){ + throw new MalformedRequestException('Unable to get correct response from Perfex CRM server' . $exception->getMessage()); + } + } +} diff --git a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php index 0129ab32..4ebcface 100644 --- a/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php +++ b/app/Classes/Modules/Transactions/Processors/CreateInvoiceTransactionProcessor.php @@ -205,7 +205,10 @@ class CreateInvoiceTransactionProcessor $this->invoiceDocumentProcessor->execute($supplier_deliver_order_transaction, $purchaseOrder, $supplier, DocumentType::SUPPLIER_DELIVER_ORDER); // update perfex crm - $this->createPerfexCRMInvoiceProcessor->execute($invoice_transaction, $purchaseOrder, $supplier); + // if(config('perfexcrm.is_enabled') == 'true'){ + // { + // $this->createPerfexCRMInvoiceProcessor->execute($invoice_transaction, $purchaseOrder, $supplier); + // } $this->updatesBookingStatus->execute($booking, ApprovalStatus::COMPLETED); } diff --git a/app/Classes/Modules/Transactions/Services/UpdatesTransactionStatus.php b/app/Classes/Modules/Transactions/Services/UpdatesTransactionStatus.php index 82329cf4..db56631c 100644 --- a/app/Classes/Modules/Transactions/Services/UpdatesTransactionStatus.php +++ b/app/Classes/Modules/Transactions/Services/UpdatesTransactionStatus.php @@ -28,7 +28,9 @@ class UpdatesTransactionStatus extends AbstractUpdateRecord */ public function execute(Transaction $model, int $status) { - $this->transactionToPerfexCRMProcessor->execute($model, $status); + if(config('perfexcrm.is_enabled') == 'true'){ + $this->transactionToPerfexCRMProcessor->execute($model, $status); + } $model->status = $status; return $this->handler($model); } diff --git a/app/Classes/ValueObjects/Constants/PerfexCRMStatus.php b/app/Classes/ValueObjects/Constants/PerfexCRMStatus.php new file mode 100644 index 00000000..b274b001 --- /dev/null +++ b/app/Classes/ValueObjects/Constants/PerfexCRMStatus.php @@ -0,0 +1,17 @@ + 'TASK A', + 'name' => 'Customer Paid', 'milestone' => 'MILESTONE 1 - Customer Paid', 'reference' => '' ]; diff --git a/config/perfexcrm.php b/config/perfexcrm.php index aa3f00de..f67040f5 100644 --- a/config/perfexcrm.php +++ b/config/perfexcrm.php @@ -1,6 +1,7 @@ env('PERFEXCRM_BASE_URL', 'http://192.168.1.102:8084'), //cief todo: Update crm api domain here - 'api_key' => env('PERFEXCRM_API_KEY', 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiZGlsbG9uIiwibmFtZSI6ImRldmVsb3BtZW50IiwiQVBJX1RJTUUiOjE2NzAwNjM0OTB9.ClR07m_QvvOHe4-hsTFAyXLvLCkXcym3cQpq0V8PHLo'), + 'base_url' => env('PERFEXCRM_BASE_URL', 'http://192.168.1.100:8084'), //cief todo: Update crm api domain here + 'api_key' => env('PERFEXCRM_API_KEY', 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiZXhjaGFuZ2Utc2hpcHBpbmciLCJuYW1lIjoiRXhjaGFuZ2UgYW5kIFNoaXBwaW5nIFBvcnRhbCIsIkFQSV9USU1FIjoxNjc1MDg2Mzc4fQ.SGAHWl5stcxQwp55TBGeMRVTdlLeWQIbsvJh5glyVvs'), + 'is_enabled' => env('PERFEXCRM_IS_ENABLED', 'true'), ];