mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/portal.git
synced 2026-08-31 18:34:34 +00:00
Completes Order Steps on Unity
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\OrderSteps\Processors;
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
|
||||
use App\Classes\Modules\OrderSteps\Services\UpdatesOrderSteps;
|
||||
use App\Classes\Modules\OrderSteps\Standards\Rules\CanUpdateOrderStep;
|
||||
use App\Classes\ValueObjects\Constants\OrderStatus;
|
||||
use App\Classes\ValueObjects\Constants\OrderSteps;
|
||||
use App\Classes\ValueObjects\Constants\OrderType;
|
||||
use App\Http\Resources\OrderStepResource;
|
||||
use App\Classes\Modules\OrderSteps\DataTransferObjects\OrderStepsObject;
|
||||
use App\Classes\Modules\OrderSteps\Services\FetchesOrderSteps;
|
||||
use App\Classes\Modules\Unity\Processors\UpdateObligationsProcessor;
|
||||
use App\Classes\Modules\Orders\Processors\UpdatesOrderCurrentStepProcessor;
|
||||
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class CompletesOrderStepProcessor
|
||||
{
|
||||
|
||||
private $fetchesOrderStep;
|
||||
|
||||
private $unityUpdateObligation;
|
||||
|
||||
private $updateOrderStepProcessors;
|
||||
|
||||
private $updatesOrderCurrentStep;
|
||||
|
||||
public function __construct(FetchesOrderSteps $fetchesOrderStep, UpdateObligationsProcessor $unityUpdateObligation, CanUpdateOrderStep $canUpdateOrderStep, UpdatesOrderSteps $updatesOrderStep, UpdatesOrderCurrentStepProcessor $updatesOrderCurrentStep)
|
||||
{
|
||||
$this->fetchesOrderStep = $fetchesOrderStep;
|
||||
$this->unityUpdateObligation = $unityUpdateObligation;
|
||||
$this->canUpdateOrderStep = $canUpdateOrderStep;
|
||||
$this->updatesOrderStep = $updatesOrderStep;
|
||||
$this->updatesOrderCurrentStep = $updatesOrderCurrentStep;
|
||||
}
|
||||
|
||||
public function execute(Request $request) {
|
||||
|
||||
$orderStep = $this->fetchesOrderStep->getRepository()->where('id', $request->get('id'))->first();
|
||||
|
||||
$contractEntity = $orderStep->orderRole()->where('order_id',$orderStep->order_id)->first();
|
||||
|
||||
$obligation_hash_id = $orderStep->unity_hash_id;
|
||||
$contract_entity_signature = $contractEntity->role_signature;
|
||||
|
||||
$completed = $this->unityUpdateObligation->execute($contract_entity_signature, $obligation_hash_id);
|
||||
|
||||
//Unity Contract Obligation Completed Status = 3
|
||||
if(isset($completed->status) && $completed->status == OrderStatus::COMPLETE){
|
||||
$orderStepObject = new OrderStepsObject(
|
||||
$orderStep->order->id,
|
||||
$contractEntity->company_module_id,
|
||||
$orderStep->reference,
|
||||
true,
|
||||
$orderStep->sequence,
|
||||
OrderStatus::COMPLETE,
|
||||
OrderStatus::COMPLETE,
|
||||
$completed->completed_at??date('Y-m-d H:i:s'),
|
||||
$orderStep->id,
|
||||
$orderStep->hash_id
|
||||
);
|
||||
|
||||
$this->canUpdateOrderStep->passes($orderStepObject);
|
||||
|
||||
$updatedOrderStep = $this->updatesOrderStep->execute($orderStep, $orderStepObject);
|
||||
|
||||
$this->updatesOrderCurrentStep->execute( $orderStep->order->id, $orderStep->reference);
|
||||
}
|
||||
|
||||
return $orderStep;
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user