diff --git a/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php b/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php index a94e755f..d84ba7b0 100644 --- a/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php @@ -28,7 +28,7 @@ class ConfirmOrderProcessor public function execute(int $orderId, array $contract_obligation_list = []){ - $order_object = new OrderObject(0,'','',0,0, '',$orderId); + $order_object = new OrderObject(0,'','',0,0, '',$orderId,0,0); $this->canConfirmOrder->passes($order_object); diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php index 6688810b..c5b2fc42 100644 --- a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php @@ -11,6 +11,7 @@ use App\Classes\ValueObjects\Constants\OrderStatus; use App\Classes\ValueObjects\Constants\OrderSteps; use App\Classes\ValueObjects\Constants\OrderType; use App\Classes\Modules\Unity\Processors\CreateContractProcessor; +use App\Classes\Modules\Unity\Processors\CreateContractEntityProcessor; use App\Classes\Modules\Unity\Processors\AssignContractEntityProcessor; use Illuminate\Http\Request; @@ -28,7 +29,9 @@ class CreateOrderProcessor private $unityAssignContractEntity; - public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, CreateOrderStepsProcessor $createOrderStepsProcessor, ConfirmOrderProcessor $confirmOrderProcessor, CreateContractProcessor $unityCreateContract, AssignContractEntityProcessor $unityAssignContractEntity) + private $unityCreateContractEntity; + + public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, CreateOrderStepsProcessor $createOrderStepsProcessor, ConfirmOrderProcessor $confirmOrderProcessor, CreateContractProcessor $unityCreateContract, CreateContractEntityProcessor $unityCreateContractEntity, AssignContractEntityProcessor $unityAssignContractEntity) { $this->canCreateOrder = $canCreateOrder; $this->createsOrder = $createsOrder; @@ -36,6 +39,7 @@ class CreateOrderProcessor $this->createOrderStepsProcessor = $createOrderStepsProcessor; $this->unityCreateContract = $unityCreateContract; $this->unityAssignContractEntity = $unityAssignContractEntity; + $this->unityCreateContractEntity = $unityCreateContractEntity; } public function execute(Request $request){ @@ -48,11 +52,13 @@ class CreateOrderProcessor $contract_reference_no = $contract->hash_id; $contract_obligation_list = $contract->contract_obligation_list; - //Call Unity to assign contract entity to obligation - $r = $this->unityAssignContractEntity->execute($request, $contract_obligation_list); + //$e = $this->unityCreateContractEntity->execute($request, $contract_reference_no, $contract_obligation_list); - echo('??'); - dd($r); + //Call Unity to assign contract entity to obligation + //$r = $this->unityAssignContractEntity->execute($request, $contract_obligation_list); + + //echo('??'); + //dd($e); $order_object = new OrderObject($request->get('company_module_id'), $contract_reference_no, '', OrderType::SHARED_CONTAINER, OrderStatus::PROCESSING, OrderSteps::PROCESSING, 0, $request->get('address_id'), $request->get('warehouse_id')); diff --git a/app/Classes/Modules/Orders/Processors/UpdatesOrderCurrentStepProcessor.php b/app/Classes/Modules/Orders/Processors/UpdatesOrderCurrentStepProcessor.php index 8a5005e3..cf6dc55c 100644 --- a/app/Classes/Modules/Orders/Processors/UpdatesOrderCurrentStepProcessor.php +++ b/app/Classes/Modules/Orders/Processors/UpdatesOrderCurrentStepProcessor.php @@ -32,7 +32,7 @@ class UpdatesOrderCurrentStepProcessor public function execute(int $orderId, string $currentStep){ - $order_object = new OrderObject(0, '', '', 0, 0, $currentStep, $orderId); + $order_object = new OrderObject(0, '', '', 0, 0, $currentStep, $orderId,0,0); $this->canUpdateCurrentStep->passes($order_object); diff --git a/app/Classes/Modules/Unity/Processors/CreateContractEntityProcessor.php b/app/Classes/Modules/Unity/Processors/CreateContractEntityProcessor.php new file mode 100644 index 00000000..64030851 --- /dev/null +++ b/app/Classes/Modules/Unity/Processors/CreateContractEntityProcessor.php @@ -0,0 +1,37 @@ +createsContractEntity = $createsContractEntity; + $this->fetchesCompany = $fetchesCompany; + } + + public function execute(Request $request, string $new_contract_id, array $obligations){ + + $entity_hash_ids = []; + + $companies = $this->fetchesCompany->getRepository()->whereIn('id',[1, $request->get('warehouse_id')])->get(); + + $cief_company = $companies[0]->id == 1 ? $companies[0] : $companies[1]; + $warehouse_company = $companies[0]->id != 1 ? $companies[0] : $companies[1]; + + $entity_hash_ids[] = $cief_company->companyModule()->first()->unity_hash_id; + $entity_hash_ids[] = $warehouse_company->companyModule()->first()->unity_hash_id; + + return $this->createsContractEntity->execute($new_contract_id, $entity_hash_ids); + } +} diff --git a/app/Classes/Modules/Unity/Services/CreatesContractEntity.php b/app/Classes/Modules/Unity/Services/CreatesContractEntity.php new file mode 100644 index 00000000..b835c7f7 --- /dev/null +++ b/app/Classes/Modules/Unity/Services/CreatesContractEntity.php @@ -0,0 +1,37 @@ +createContractEntityEndpoint = Config::get('unity.url').Config::get('unity.endpoint.create_contract_entity'); + $this->getAccessToken = $getAccessToken; + $this->contract_hash_id = Config::get('unity.contract_template_hash_id'); + } + + public function execute(string $new_contract_id, array $entity_hash_ids){ + + $accesToken=$this->getAccessToken->execute(); + + $response = Http::withToken($accesToken)->post($this->createContractEntityEndpoint,['contract_id'=>[$new_contract_id],'entity_id'=>$entity_hash_ids])->object(); + +echo($new_contract_id.'
'); + + echo($this->createContractEntityEndpoint); + dd($response ); + return (isset($response->data)) ? $response->data : null; + + } +}