updatePerfexCRMProcessor = $updatePerfexCRMProcessor; $this->initializePerfexCRMProcessor = $initializePerfexCRMProcessor; $this->fetchesCompany = $fetchesCompany; } /** * @param Transaction $model * @param int $status * @return \Illuminate\Database\Eloquent\Model * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(Transaction $model, int $status) { if($model->owner instanceof \App\Models\Booking && $status == ApprovalStatus::APPROVED){ $companyReference = $model->owner->company->reference; $companyName = $model->owner->company->name; $employee = $model->owner->company->employees()->first(); $contactEmail = $employee->email; $contactName = $employee->name; $bookingMarking = $model->owner->marking; $serviceTypeName = $model->owner->company->services()->where('id', $model->owner->service_id)->first()->name; $projectName = 'Exchange | '.$serviceTypeName.' | '.$bookingMarking; $tasks = [ PerfexCRMTasks::TASK_1 ]; if($model->owner->service_id == 1){ $tasks = [ PerfexCRMTasks::TASK_1, PerfexCRMTasks::TASK_1_DAY_TRANSFER_1, PerfexCRMTasks::TASK_1_DAY_TRANSFER_2, PerfexCRMTasks::TASK_1_DAY_TRANSFER_3, PerfexCRMTasks::TASK_1_DAY_TRANSFER_4, PerfexCRMTasks::TASK_1_DAY_TRANSFER_5, PerfexCRMTasks::TASK_1_DAY_TRANSFER_6, ]; } else if($model->owner->service_id == 3){ $tasks = [ PerfexCRMTasks::TASK_1, PerfexCRMTasks::TASK_3_DAY_TRANSFER_1, PerfexCRMTasks::TASK_3_DAY_TRANSFER_2, PerfexCRMTasks::TASK_3_DAY_TRANSFER_3, PerfexCRMTasks::TASK_3_DAY_TRANSFER_4, PerfexCRMTasks::TASK_3_DAY_TRANSFER_5, PerfexCRMTasks::TASK_3_DAY_TRANSFER_6, ]; } else if($model->owner->service_id == 4){ $tasks = [ PerfexCRMTasks::TASK_1, PerfexCRMTasks::TASK_1688_PAYMENT_1, PerfexCRMTasks::TASK_1688_PAYMENT_2, PerfexCRMTasks::TASK_1688_PAYMENT_3, PerfexCRMTasks::TASK_1688_PAYMENT_4, PerfexCRMTasks::TASK_1688_PAYMENT_5, PerfexCRMTasks::TASK_1688_PAYMENT_6, PerfexCRMTasks::TASK_1688_PAYMENT_7, PerfexCRMTasks::TASK_1688_PAYMENT_8, PerfexCRMTasks::TASK_1688_PAYMENT_9, PerfexCRMTasks::TASK_1688_PAYMENT_10, PerfexCRMTasks::TASK_1688_PAYMENT_11, PerfexCRMTasks::TASK_1688_PAYMENT_12, PerfexCRMTasks::TASK_1688_PAYMENT_13, ]; } $initialPerfexCRMObject = new InitialPerfexCRMObject( $companyName, $companyReference, $contactName, $contactEmail, $bookingMarking, $projectName, [], $tasks ); //$this->initializePerfexCRMProcessor->execute($initialPerfexCRMObject); InitializePerfexCRM::dispatch($initialPerfexCRMObject); } return true; } }