Files
exchange-2.0/app/Classes/Modules/Questionnaires/Processors/SaveAnswerActionV1AdminWFProcessor.php
T

76 lines
3.2 KiB
PHP

<?php
namespace App\Classes\Modules\Questionnaires\Processors;
use App\Classes\Modules\Bookings\Processors\ApprovePurchaseOrderProcessor;
use App\Classes\Modules\Bookings\Processors\UploadPurchaseOrderProcessor;
use App\Classes\Modules\Transactions\Processors\CreatePaymentProofDocumentProcessor;
use App\Classes\Modules\Transactions\Services\FetchesTransaction;
use App\Models\QAAnswerOptions;
use Illuminate\Support\Facades\Log;
class SaveAnswerActionV1AdminWFProcessor
{
/** @var ApprovePurchaseOrderProcessor */
private $approvePurchaseOrderProcessor;
/** @var UploadPurchaseOrderProcessor */
private $uploadPurchaseOrderProcessor;
/** @var CreatePaymentProofDocumentProcessor */
private $createPaymentProofDocumentProcessor;
/** @var FetchesTransaction */
private $fetchesTransaction;
/**
* SaveAnswerActionV1AdminWFProcessor constructor.
* @param ApprovePurchaseOrderProcessor $approvePurchaseOrderProcessor
* @param UploadPurchaseOrderProcessor $uploadPurchaseOrderProcessor
* @param CreatePaymentProofDocumentProcessor $createPaymentProofDocumentProcessor
* @param FetchesTransaction $fetchesTransaction
*/
public function __construct(ApprovePurchaseOrderProcessor $approvePurchaseOrderProcessor, UploadPurchaseOrderProcessor $uploadPurchaseOrderProcessor, CreatePaymentProofDocumentProcessor $createPaymentProofDocumentProcessor, FetchesTransaction $fetchesTransaction)
{
$this->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;
}
}