approvePurchaseOrderProcessor = $approvePurchaseOrderProcessor; $this->uploadPurchaseOrderProcessor = $uploadPurchaseOrderProcessor; $this->createPaymentProofDocumentProcessor = $createPaymentProofDocumentProcessor; $this->fetchesTransaction = $fetchesTransaction; } /** * @return */ public function execute($booking, $questionMetadata, $answerOptionId, $currentQuestion, $filesUpload){ $isNoGoingBack = 0; $answerOption = QAAnswerOptions::where('id', $answerOptionId)->first(); if($answerOption && $answerOption->value === "approve_po_approved"){ $this->approvePurchaseOrderProcessor->execute($questionMetadata['id']); $isNoGoingBack = 1; } else if($currentQuestion['question_number'] === '1688_submit') { if($filesUpload){ if ($booking && isset($filesUpload['filesA']) && isset($filesUpload['filesB'])) { $mergedFilesUpload = array_merge( $filesUpload['filesA'] ?? [], $filesUpload['filesB'] ?? [] ); $this->uploadPurchaseOrderProcessor->execute($booking, $mergedFilesUpload); } if (isset($filesUpload['filesC']) && isset($questionMetadata['payment_history'][0]['transaction_bill']['id'])) { $transaction = $this->fetchesTransaction->execute(['id' =>$questionMetadata['payment_history'][0]['transaction_bill']['id']]); $this->createPaymentProofDocumentProcessor->execute($transaction, $filesUpload['filesC']); } $isNoGoingBack = 1; } } return $isNoGoingBack; } }