diff --git a/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php b/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php index 2c4743d2..3aded198 100644 --- a/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php +++ b/app/Classes/Modules/Orders/ControllersLogic/CreateOrderLogic.php @@ -18,7 +18,8 @@ use Illuminate\Http\JsonResponse; class CreateOrderLogic extends AbstractControllerLogic { - protected function notification():array { + protected function notification(): array + { return [ 'title' => 'Created Order', 'message' => 'You have successfully created a new Order' @@ -62,19 +63,31 @@ class CreateOrderLogic extends AbstractControllerLogic } - public function logic(Request $request) : JsonResponse { + public function logic(Request $request): JsonResponse + { $company = $this->fetchesCompany->execute(['id' => $request->input('company_id')]); $address = $this->fetchesAddress->execute(['id' => $request->input('address_id')]); - $originWarehouse = $this->fetchesCompanyModule->execute(['id' => $request->input('warehouse_id')]); + // todo-new: fix this + // if select warehouse foshan + if ($request->input('warehouse_id') === 'foshan') { + // 13 - sabah, 14 - sarawak + if (in_array($address->state->id, [13, 14])) { + $originWarehouse = $this->fetchesCompanyModule->execute(['reference' => WarehouseReferences::YD_FS_WEST_MALAYSIA]); + } else { + $originWarehouse = $this->fetchesCompanyModule->execute(['reference' => WarehouseReferences::YD_FS_WEST_MALAYSIA]); + } + } else { + $originWarehouse = $this->fetchesCompanyModule->execute(['id' => $request->input('warehouse_id')]); - if(!in_array($company->companyModules()->importers()->first()->id, WarehouseReferences::YD_EXEMPT_LIST)){ - $originWarehouse = $this->fetchesCompanyModule->execute(['reference' => $originWarehouse->reference === WarehouseReferences::VT_GUANG_ZHOU ? WarehouseReferences::YD_GUANG_ZHOU : WarehouseReferences::YD_YIWU]); + if (!in_array($company->companyModules()->importers()->first()->id, WarehouseReferences::YD_EXEMPT_LIST)) { + $originWarehouse = $this->fetchesCompanyModule->execute(['reference' => $originWarehouse->reference === WarehouseReferences::VT_GUANG_ZHOU ? WarehouseReferences::YD_GUANG_ZHOU : WarehouseReferences::YD_YIWU]); + } } - + if($originWarehouse->reference === WarehouseReferences::YD_YIWU && in_array($address->state_id, [5, 13, 14])) { throw new RequestValidationException('Our Yiwu warehouse is unable to ship goods to Sabah & Sarawak at the moment. you can select our Guangzhou warehouse as an alternative.'); } diff --git a/app/Classes/ValueObjects/Constants/WarehouseReferences.php b/app/Classes/ValueObjects/Constants/WarehouseReferences.php index 966ae665..b62a9938 100644 --- a/app/Classes/ValueObjects/Constants/WarehouseReferences.php +++ b/app/Classes/ValueObjects/Constants/WarehouseReferences.php @@ -22,6 +22,10 @@ final class WarehouseReferences { public const VT_SARAWAK = 'SRW-V01'; + public const YD_FS_WEST_MALAYSIA = 'FS-V01'; + + public const YD_FS_EAST_MALAYSIA = 'FS-V02'; + public const VT_DESTINATION_WAREHOUSE = [ 1 => self::VT_KLANG, 2 => self::VT_KLANG, diff --git a/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php b/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php index 11837206..31333f52 100644 --- a/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php +++ b/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php @@ -57,6 +57,10 @@ class DownloadOrderQrPdfController } } + if(in_array($warehouse->reference,[WarehouseReferences::YD_FS_EAST_MALAYSIA, WarehouseReferences::YD_FS_WEST_MALAYSIA])){ + $warehousePrefix = 'FS/'; + } + $data = [ 'order' => $order, 'marking' => $warehousePrefix.$deliveryPrefix.'CIEF/'.$customerMarking, diff --git a/database/seeders/FoshanWarehouseTableSeeder.php b/database/seeders/FoshanWarehouseTableSeeder.php new file mode 100644 index 00000000..9873150f --- /dev/null +++ b/database/seeders/FoshanWarehouseTableSeeder.php @@ -0,0 +1,127 @@ +createCompanyProcessor = $createCompanyProcessor; + $this->updatesCompanyStatus = $updatesCompanyStatus; + $this->createCompanyModuleProcessor = $createCompanyModuleProcessor; + $this->createContactProcessor = $createContactProcessor; + $this->createsCompanyConnection = $createsCompanyConnection; + $this->approvesCompanyConnection = $approvesCompanyConnection; + $this->createAddressFromOldAddressProcessor = $createAddressFromOldAddressProcessor; + $this->createsAddress = $createsAddress; + $this->fetchesCompany = $fetchesCompany; + $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->fetchesCompany->execute(['reference' => 'MODERN']); + + // YD_FS_WEST_MALAYSIA - FS-V01 + /** @var CompanyModule $companyModule */ + $companyModule = $this->createCompanyModuleProcessor->execute($company, BusinessType::WAREHOUSE); + $companyModule->update(['name' => 'Foshan', 'reference' => WarehouseReferences::YD_FS_WEST_MALAYSIA]); + + $address = new AddressObject('广东省 佛山市 南海区 狮山镇北园东路6号D幢1楼', '', 2, 35, 638, 528225, AddressType::DELIVERY, ApprovalStatus::APPROVED); + $contact = new ContactObject('郑佳鹏', '18520607573', '', ''); + + $this->createsAddress->execute($companyModule, $address); + $this->createsContact->execute($companyModule, $contact); + + // FS_EAST_MALAYSIA - FS-V02 + /** @var CompanyModule $companyModule */ + $companyModule = $this->createCompanyModuleProcessor->execute($company, BusinessType::WAREHOUSE); + $companyModule->update(['name' => 'Foshan', 'reference' => WarehouseReferences::YD_FS_EAST_MALAYSIA]); + + $address = new AddressObject('广东省 佛山市 南海区 狮山镇北园东路6号C幢1楼', '', 2, 35, 638, 528225, AddressType::DELIVERY, ApprovalStatus::APPROVED); + $contact = new ContactObject('游万彬', '18520607573', '', ''); + + $this->createsAddress->execute($companyModule, $address); + $this->createsContact->execute($companyModule, $contact); + } +} diff --git a/resources/assets/vue/components/orders/forms/OrderFormComponent.vue b/resources/assets/vue/components/orders/forms/OrderFormComponent.vue index add0eeb1..791f53bd 100644 --- a/resources/assets/vue/components/orders/forms/OrderFormComponent.vue +++ b/resources/assets/vue/components/orders/forms/OrderFormComponent.vue @@ -12,8 +12,8 @@
-
-
+
+
@@ -26,8 +26,8 @@
-
-
+
+
@@ -40,6 +40,20 @@
+
+
+
+
+ +
+
+
+
+
Foshan
+
+
+
+