fetchesStep = $fetchesStep; $this->unityUpdateObligation = $unityUpdateObligation; $this->canUpdateStep = $canUpdateStep; $this->updatesStep = $updatesStep; $this->updatesOrderCurrentStep = $updatesOrderCurrentStep; } public function execute(Request $request) { $orderStep = $this->fetchesStep->getRepository()->where('id', $request->get('id'))->first(); $contractEntity = $orderStep->orderRole()->where('order_id',$orderStep->owner_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 StepsObject( $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->canUpdateStep->passes($orderStepObject); $updatedStep = $this->updatesStep->execute($orderStep, $orderStepObject); $this->updatesOrderCurrentStep->execute( $orderStep->order->id, $orderStep->reference); } return $orderStep; } }