mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/portal.git
synced 2026-08-25 15:34:24 +00:00
WIP - Order steps & remaining APIs
This commit is contained in:
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -1,53 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Classes\Modules\Orders\Services\Steps;
|
||||
namespace App\Classes\Modules\Orders\Processors;
|
||||
|
||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||
use App\Classes\Modules\Orders\DataTransferObjects\OrderObject;
|
||||
use App\Classes\Modules\Orders\Services\CreatesOrder;
|
||||
use App\Classes\Modules\Orders\Services\FetchesOrder;
|
||||
use App\Classes\Modules\OrderSteps\Services\FetchesOrderSteps;
|
||||
use App\Classes\Modules\Orders\Standards\Rules\CanUpdateCurrentStep;
|
||||
use App\Classes\Modules\OrderSteps\Processors\UpdateOrderStepsProcessor;
|
||||
use App\Classes\Modules\Orders\Standards\Rules\CanConfirmOrder;
|
||||
use App\Classes\Modules\OrderSteps\Processors\GenerateOrderStepsProcessor;
|
||||
use App\Classes\ValueObjects\Constants\OrderStatus;
|
||||
use App\Classes\ValueObjects\Constants\OrderSteps;
|
||||
use App\Models\Order;
|
||||
use App\Models\OrderStep;
|
||||
use App\Classes\ValueObjects\Constants\OrderType;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class ConfirmOrderProcessor
|
||||
{
|
||||
private $canUpdateCurrentStep;
|
||||
private $canConfirmOrder;
|
||||
|
||||
private $updatesCurrentStep;
|
||||
private $generateOrderStepsProcessor;
|
||||
|
||||
private $fetchesOrder;
|
||||
|
||||
private $fetchesOrderSteps;
|
||||
|
||||
private $updateOrderStepProcessors;
|
||||
|
||||
public function __construct(CanUpdateCurrentStep $canUpdateCurrentStep, FetchesOrder $fetchesOrder, FetchesOrderSteps $fetchesOrderSteps, UpdatesOrderCurrentStep $updatesCurrentStep, UpdateOrderStepsProcessor $updateOrderStepProcessors)
|
||||
public function __construct(CanConfirmOrder $canConfirmOrder, GenerateOrderStepsProcessor $generateOrderStepsProcessor, FetchesOrder $fetchesOrder)
|
||||
{
|
||||
$this->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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -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'),
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user