From c67ee256545520014d135d9b082c64457af8d9c6 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Thu, 25 Nov 2021 03:08:32 +0800 Subject: [PATCH] add new yd Guangzhou warehouse --- .../ControllersLogic/CreateOrderLogic.php | 8 ++ .../Processors/CreateOrderRolesProcessor.php | 25 +--- .../ValueObjects/Constants/BusinessType.php | 2 +- .../Constants/WarehouseReferences.php | 50 ++++---- app/Http/Resources/CompanyModuleResource.php | 2 + .../seeders/ModernWarehouseTableSeeder.php | 121 ++++++++++++++++++ .../orders/elements/OrderComponent.vue | 2 +- .../sections/OrderProfileSectionComponent.vue | 2 +- 8 files changed, 163 insertions(+), 49 deletions(-) create mode 100644 database/seeders/ModernWarehouseTableSeeder.php diff --git a/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php b/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php index 97506974..1a606834 100644 --- a/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php +++ b/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php @@ -8,6 +8,7 @@ use App\Classes\Modules\Companies\Services\FetchesCompany; use App\Classes\Modules\Companies\Services\FetchesCompanyModule; use App\Classes\Modules\Orders\Processors\CreateOrderProcessor; use App\Classes\Modules\Orders\Services\GeneratesOrderNumber; +use App\Classes\ValueObjects\Constants\WarehouseReferences; use App\Http\Resources\OrderResource; use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; @@ -63,6 +64,13 @@ class CreateOrderLogic extends AbstractControllerLogic $originWarehouse = $this->fetchesCompanyModule->execute(['id' => $request->input('warehouse_id')]); + if($originWarehouse->reference === WarehouseReferences::VT_GUANG_ZHOU){ + $marking = $company->companyModules()->importers()->first()->inviters()->withPivot('invitee_reference')->first()->pivot->invitee_reference; + if(in_array($marking, ['2192KAA', '2353GFE', '6866DTR', '1905JYW', '6218MEN'])){ + $originWarehouse = $this->fetchesCompanyModule->execute(['reference' => WarehouseReferences::YD_GUANG_ZHOU]); + } + } + $order = $this->createOrderProcessor->execute($company, $originWarehouse, $address, $this->generatesOrderNumber->execute()); return $this->resourceResponse(new OrderResource($order)); diff --git a/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php b/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php index 24495752..7ca3603f 100644 --- a/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php +++ b/app/Classes/Modules/Orders/Processors/CreateOrderRolesProcessor.php @@ -53,7 +53,7 @@ class CreateOrderRolesProcessor $importer = $order->companyModule; /** @var CompanyModule $destinationWarehouse */ - $destinationWarehouse = $this->fetchesCompanyModule->execute(['reference' => WarehouseReferences::DESTINATION_WAREHOUSE[$address->state_id ]]); + $destinationWarehouse = $this->fetchesCompanyModule->execute(['reference' => $originWarehouse->reference === WarehouseReferences::YD_GUANG_ZHOU ? WarehouseReferences::YD_DESTINATION_WAREHOUSE : WarehouseReferences::VT_DESTINATION_WAREHOUSE[$address->state_id]]); /** @var CompanyModule $freightForwarder */ $freightForwarder = $originWarehouse->company->companyModules()->freightForwarders()->first(); @@ -84,28 +84,5 @@ class CreateOrderRolesProcessor $this->createsOrderRole->execute($roleObject); return true; - - $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]; - - $cief_company_module = $cief_company->companyModule()->first(); - $contractEntities[] = $this->unityCreateContractEntity->execute( $contract_reference_no, [$cief_company_module->unity_hash_id]); - $contractEntities[0]->{"company_module_id"} = $cief_company_module->id; - - $warehouse_company_module = $warehouse_company->companyModule()->first(); - $contractEntities[] = $this->unityCreateContractEntity->execute( $contract_reference_no, [$warehouse_company_module->unity_hash_id]); - $contractEntities[1]->{"company_module_id"} = $warehouse_company_module->id; - - foreach($contractEntities as $entity){ - $order_role_object = new OrderRoleObject($orderId, $entity->company_module_id, $entity->hash_id, $entity->entity_signature_hash_id); - - $this->canCreateOrderRole->passes($order_role_object); - - $this->createsOrderRole->execute($order_role_object); - } - - return $contractEntities; } } diff --git a/app/Classes/ValueObjects/Constants/BusinessType.php b/app/Classes/ValueObjects/Constants/BusinessType.php index 376b4807..41c673c6 100644 --- a/app/Classes/ValueObjects/Constants/BusinessType.php +++ b/app/Classes/ValueObjects/Constants/BusinessType.php @@ -16,6 +16,6 @@ final class BusinessType { public const DRIVER = 5; - public const CURRENCY_VENDOR = 5; + public const CURRENCY_VENDOR = 6; } diff --git a/app/Classes/ValueObjects/Constants/WarehouseReferences.php b/app/Classes/ValueObjects/Constants/WarehouseReferences.php index f06bd644..1caf3e42 100644 --- a/app/Classes/ValueObjects/Constants/WarehouseReferences.php +++ b/app/Classes/ValueObjects/Constants/WarehouseReferences.php @@ -4,34 +4,40 @@ namespace App\Classes\ValueObjects\Constants; final class WarehouseReferences { - public const GUANG_ZHOU = 'GZ-V01'; + public const VT_GUANG_ZHOU = 'GZ-V01'; - public const YIWU = 'YW-V01'; + public const YD_GUANG_ZHOU = 'GZ-V02'; - public const KLANG = 'KL-V01'; + public const VT_YIWU = 'YW-V01'; - public const SABAH = 'SB-V01'; + public const VT_KLANG = 'KL-V01'; - public const SARAWAK = 'SRW-V01'; + public const YD_KLANG = 'KL-V02'; - public const DESTINATION_WAREHOUSE = [ - 1 => self::KLANG, - 2 => self::KLANG, - 3 => self::KLANG, - 4 => self::KLANG, - 5 => self::SABAH, - 6 => self::KLANG, - 7 => self::KLANG, - 8 => self::KLANG, - 9 => self::KLANG, - 10 => self::KLANG, - 11 => self::KLANG, - 12 => self::KLANG, - 13 => self::SABAH, - 14 => self::KLANG, - 15 => self::KLANG, - 16 => self::KLANG, + public const VT_SABAH = 'SB-V01'; + + public const VT_SARAWAK = 'SRW-V01'; + + public const VT_DESTINATION_WAREHOUSE = [ + 1 => self::VT_KLANG, + 2 => self::VT_KLANG, + 3 => self::VT_KLANG, + 4 => self::VT_KLANG, + 5 => self::VT_SABAH, + 6 => self::VT_KLANG, + 7 => self::VT_KLANG, + 8 => self::VT_KLANG, + 9 => self::VT_KLANG, + 10 => self::VT_KLANG, + 11 => self::VT_KLANG, + 12 => self::VT_KLANG, + 13 => self::VT_SABAH, + 14 => self::VT_KLANG, + 15 => self::VT_KLANG, + 16 => self::VT_KLANG, ]; + public const YD_DESTINATION_WAREHOUSE = self::YD_KLANG; + } diff --git a/app/Http/Resources/CompanyModuleResource.php b/app/Http/Resources/CompanyModuleResource.php index 31e17598..e1f253be 100644 --- a/app/Http/Resources/CompanyModuleResource.php +++ b/app/Http/Resources/CompanyModuleResource.php @@ -35,6 +35,8 @@ class CompanyModuleResource extends JsonResource return [ 'id' => $this->id, 'type' => $this->type, + 'name' => $this->name, + 'reference' => $this->reference, 'address' => new AddressResource($defaultAddress), 'company' => new CompanyResource($this->whenLoaded('company')), 'marking' => $marking diff --git a/database/seeders/ModernWarehouseTableSeeder.php b/database/seeders/ModernWarehouseTableSeeder.php new file mode 100644 index 00000000..3e6b3e63 --- /dev/null +++ b/database/seeders/ModernWarehouseTableSeeder.php @@ -0,0 +1,121 @@ +createCompanyProcessor = $createCompanyProcessor; + $this->updatesCompanyStatus = $updatesCompanyStatus; + $this->createCompanyModuleProcessor = $createCompanyModuleProcessor; + $this->createContactProcessor = $createContactProcessor; + $this->createsCompanyConnection = $createsCompanyConnection; + $this->approvesCompanyConnection = $approvesCompanyConnection; + $this->createAddressFromOldAddressProcessor = $createAddressFromOldAddressProcessor; + $this->createsAddress = $createsAddress; + $this->createsCompany = $createsCompany; + $this->createsContact = $createsContact; + } + + + /** + * Run the database seeds. + * + * @return void + * @throws \App\Classes\Exceptions\AccessForbiddenException + * @throws \App\Classes\Exceptions\MalformedRequestException + * @throws \App\Classes\Exceptions\RequestValidationException + */ + public function run() + { + + /** @var Company $company */ + $company = $this->createsCompany->execute(new CompanyObject('Modern', 'MODERN', CompanyType::COMPANY_BUSINESS, ApprovalStatus::APPROVED)); + + /** @var CompanyModule $companyModule */ + $this->createCompanyModuleProcessor->execute($company, BusinessType::FREIGHT_FORWARDER); + + $companyModule = $this->createCompanyModuleProcessor->execute($company, BusinessType::WAREHOUSE); + + $companyModule->update(['name' => 'Guangzhou', 'reference' => 'GZ-V02']); + $address = new AddressObject('白云区,大朗北路', '大朗生活区523A公交车总站对面', 2, 35, 633, 510000); + $contact = new ContactObject('郑学钟', '18665696389', '', ''); + $this->createsAddress->execute($companyModule, $address); + $this->createsContact->execute($companyModule, $contact); + + $companyModule = $this->createCompanyModuleProcessor->execute($company, BusinessType::WAREHOUSE); + $companyModule->update(['name' => 'Klang', 'reference' => 'KL-V02']); + + + } + +} diff --git a/resources/assets/vue/components/orders/elements/OrderComponent.vue b/resources/assets/vue/components/orders/elements/OrderComponent.vue index 31cc56af..f4e8462d 100644 --- a/resources/assets/vue/components/orders/elements/OrderComponent.vue +++ b/resources/assets/vue/components/orders/elements/OrderComponent.vue @@ -23,7 +23,7 @@
Warehouse -
{{item.warehouse.id === 3 ? 'Guang Zhou' : 'Yiwu'}}
+
{{item.warehouse.name}}
diff --git a/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue b/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue index 5e4a5732..3b663e3e 100644 --- a/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue +++ b/resources/assets/vue/components/orders/sections/OrderProfileSectionComponent.vue @@ -26,7 +26,7 @@
Order Date: {{order.created_at}}
-
Warehouse: {{order.warehouse.id === 3 ? 'Guang Zhou' : 'Yiwu'}}
+
Warehouse: {{order.warehouse.name}}