diff --git a/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php b/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php index b3bc375f..2039c457 100644 --- a/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php +++ b/app/Classes/Modules/Companies/ControllersLogic/CreateCompanyLogic.php @@ -57,8 +57,10 @@ class CreateCompanyLogic extends AbstractControllerLogic $this->createCompanyModuleProcessor->execute($company , $request->input('business_type')); - //$unityEntity = $this->createUnityEntityProcessor->execute($company->name); - //TODO: Update company table with hash id + $unityEntity = $this->createUnityEntityProcessor->execute($company->name); + + //$company->unity_hash_id = $unityEntity->hash_id; + //Update company table return $this->resourceResponse(new CompanyResource($company)); } diff --git a/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php b/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php index 2f39e830..9f781c9a 100644 --- a/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php +++ b/app/Classes/Modules/OrderSteps/Processors/CreateOrderStepsProcessor.php @@ -35,9 +35,9 @@ class CreateOrderStepsProcessor $this->fetchesOrderSteps = $fetchesOrderSteps; } - public function execute(Model $order, string $currentStep){ + public function execute(Model $order, string $currentStep, $appointee_id){ - $order_steps_object = new OrderStepsObject($order->id, $order->company_module_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null); + $order_steps_object = new OrderStepsObject($order->id, $appointee_id, $currentStep, true, 0, OrderStatus::PROCESSING, 0, null); $this->canCreateOrderStep->passes($order_steps_object); diff --git a/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php b/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php index 74b50ed9..2bf0ea54 100644 --- a/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/ConfirmOrderProcessor.php @@ -1,53 +1,40 @@ canUpdateCurrentStep = $canUpdateCurrentStep; - $this->updatesCurrentStep = $updatesCurrentStep; + $this->canConfirmOrder = $canConfirmOrder; + $this->generateOrderStepsProcessor = $generateOrderStepsProcessor; $this->fetchesOrder = $fetchesOrder; - $this->fetchesOrderSteps = $fetchesOrderSteps; - $this->updateOrderStepProcessors = $updateOrderStepProcessors; } - public function execute(int $orderId, string $currentStep){ + public function execute(int $orderId){ - $order_object = new OrderObject(0, '', '', 0, 0, $currentStep, $orderId); + $order_object = new OrderObject(0,'','',0,0, '',$orderId); - $this->canUpdateCurrentStep->passes($order_object); + $this->canConfirmOrder->passes($order_object); $order = $this->fetchesOrder->execute(['id'=>$order_object->getId()]); - $order_steps = $this->fetchesOrderSteps->execute(['order_id'=>$order_object->getId(), 'status'=> OrderStatus::PROCESSING, 'order_by' => 'sequence', 'per_page' => 1]); - - $order_object->setCurrentStep($currentStep); - - $order = $this->updatesCurrentStep->execute($order, $order_object); - - $this->updateOrderStepProcessors->execute($currentStep); + $this->generateOrderStepsProcessor->execute($order); } } diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php index 4b2708da..4d5ec2f7 100644 --- a/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php +++ b/app/Classes/Modules/Orders/Processors/CreateOrderProcessor.php @@ -5,6 +5,7 @@ namespace App\Classes\Modules\Orders\Processors; use App\Classes\Modules\Orders\DataTransferObjects\OrderObject; use App\Classes\Modules\Orders\Services\CreatesOrder; use App\Classes\Modules\Orders\Standards\Rules\CanCreateOrder; +use App\Classes\Modules\Orders\Processors\ConfirmOrderProcessor; use App\Classes\Modules\OrderSteps\Processors\CreateOrderStepsProcessor; use App\Classes\ValueObjects\Constants\OrderStatus; use App\Classes\ValueObjects\Constants\OrderSteps; @@ -17,12 +18,15 @@ class CreateOrderProcessor private $createsOrder; + private $confirmOrderProcessor; + private $createOrderStepsProcessor; - public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, CreateOrderStepsProcessor $createOrderStepsProcessor) + public function __construct(CanCreateOrder $canCreateOrder, CreatesOrder $createsOrder, CreateOrderStepsProcessor $createOrderStepsProcessor, ConfirmOrderProcessor $confirmOrderProcessor) { $this->canCreateOrder = $canCreateOrder; $this->createsOrder = $createsOrder; + $this->confirmOrderProcessor = $confirmOrderProcessor; $this->createOrderStepsProcessor = $createOrderStepsProcessor; } @@ -35,8 +39,12 @@ class CreateOrderProcessor $order = $this->createsOrder->execute($order_object); //Add processing to order step - $this->createOrderStepsProcessor->execute($order, OrderSteps::PROCESSING); + //Note: For processing apointee_id is CIEF Freight Forward , id is 1, reserved in company table + $this->createOrderStepsProcessor->execute($order, OrderSteps::PROCESSING, 1); + + //Pre-approved order, no need Admin to process it + $this->confirmOrderProcessor->execute($order->id); return $order; } -} \ No newline at end of file +} diff --git a/app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php b/app/Classes/Modules/Unity/Processors/CreateEntityProcessor.php similarity index 77% rename from app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php rename to app/Classes/Modules/Unity/Processors/CreateEntityProcessor.php index 0b844c93..ccffb96b 100644 --- a/app/Classes/Modules/Unity/Processors/CreateEntityProcessor copy.php +++ b/app/Classes/Modules/Unity/Processors/CreateEntityProcessor.php @@ -15,7 +15,7 @@ class CreateEntityProcessor $this->createsEntity = $createsEntity; } - public function execute(){ - return $this->createsEntity->execute(); + public function execute($entity_name){ + return $this->createsEntity->execute($entity_name); } } diff --git a/app/Classes/Modules/Unity/Services/CreatesEntity.php b/app/Classes/Modules/Unity/Services/CreatesEntity.php index 4e473f19..d6dc7d7f 100644 --- a/app/Classes/Modules/Unity/Services/CreatesEntity.php +++ b/app/Classes/Modules/Unity/Services/CreatesEntity.php @@ -24,7 +24,7 @@ class CreatesEntity $response = Http::withToken($accesToken)->post($this->createEntityEndpoint,['name'=>$entity_name])->object(); - return (isset($response->data)) ? $response->data : []; + return (isset($response->data)) ? $response->data : null; } } diff --git a/config/unity.php b/config/unity.php index a0c576ce..bcca587b 100644 --- a/config/unity.php +++ b/config/unity.php @@ -23,7 +23,7 @@ return [ 'get_ob_endpoint' => env('UNITY_OB_LIST_ENDPOINT','contract-template-obligation/list'), - 'create_entity_endpoint' => env('UNITY_CREATE_ENTITY_ENDPOINT','contract-template-obligation/list'), + 'create_entity_endpoint' => env('UNITY_CREATE_ENTITY_ENDPOINT','entity/store'), 'default_auth' => env('UNITY_AUTH','login'), diff --git a/database/seeders/CompaniesTableSeeder.php b/database/seeders/CompaniesTableSeeder.php index 8593efa4..fcb6a33a 100644 --- a/database/seeders/CompaniesTableSeeder.php +++ b/database/seeders/CompaniesTableSeeder.php @@ -22,6 +22,13 @@ class CompaniesTableSeeder extends Seeder { $companies = [ + [ + 'id' => 1, //Reserve ID + 'name' => 'CIEF SDN BHD', + 'reference' => 'CIEF', + 'type' => CompanyType::COMPANY_BUSINESS, + 'status' => ApprovalStatus::APPROVED, + ], [ 'name' => 'Guang Zhou', 'reference' => 'guangzhouwarehouse', @@ -42,13 +49,18 @@ class CompaniesTableSeeder extends Seeder $company = Company::create($company); - CompanyModule::create( - [ - 'company_id' => $company->id, - 'type' => BusinessType::WAREHOUSE, - 'status' => ApprovalStatus::APPROVED, - ] - ); + $companyModule = [ + 'company_id' => $company->id, + 'type' => BusinessType::WAREHOUSE, + 'status' => ApprovalStatus::APPROVED, + ]; + + if($company['reference']=='CIEF'){ + $companyModule['id']= 1; //Reserve ID + $companyModule['type']=BusinessType::FREIGHT_FORWARDER; + } + + CompanyModule::create($companyModule); } } }