From b735462321d372a2ce5c53b0586f523a3d3e555b Mon Sep 17 00:00:00 2001 From: Edmond Lang Date: Tue, 10 Mar 2026 15:31:07 +0800 Subject: [PATCH] rename qr warehouse prefix --- .../ResolveIzyimQrWarehousePrefix.php | 50 +++++++++++++++++++ .../Orders/DownloadOrderQrPdfController.php | 23 ++------- .../DownloadTaxRebateQrPdfController.php | 23 ++------- 3 files changed, 56 insertions(+), 40 deletions(-) create mode 100644 app/Classes/Modules/Orders/Services/ResolveIzyimQrWarehousePrefix.php diff --git a/app/Classes/Modules/Orders/Services/ResolveIzyimQrWarehousePrefix.php b/app/Classes/Modules/Orders/Services/ResolveIzyimQrWarehousePrefix.php new file mode 100644 index 00000000..1746c8cb --- /dev/null +++ b/app/Classes/Modules/Orders/Services/ResolveIzyimQrWarehousePrefix.php @@ -0,0 +1,50 @@ + 'KCH-', + 'bintulu' => 'BNT-', + 'miri' => 'MIRI-', + ]; + + public function execute(CompanyModule $originWarehouse, Address $deliveryAddress): string + { + $warehousePrefix = ''; + + if ($originWarehouse->reference === WarehouseReferences::YD_YIWU) { + $warehousePrefix = 'YW/'; + } + + $stateName = strtolower((string) optional($deliveryAddress->state)->name); + $districtName = strtolower((string) optional($deliveryAddress->district)->name); + + if (in_array($originWarehouse->reference, [WarehouseReferences::YD_GUANG_ZHOU, WarehouseReferences::YD_GUANG_ZHOU_2, WarehouseReferences::YD_FS_EAST_MALAYSIA, WarehouseReferences::YD_FS_WEST_MALAYSIA])) { + $warehousePrefix = 'YD/'; + + if (strtolower($deliveryAddress->state->name) === 'sabah' || strtolower($deliveryAddress->state->name) === 'labuan' || in_array(strtolower($deliveryAddress->district->name), ['limbang', 'lawas'])) { + $warehousePrefix = 'KK/'; + } + + if (strtolower($deliveryAddress->state->name) === 'sarawak' && !in_array(strtolower($deliveryAddress->district->name), ['limbang', 'lawas'])) { + $warehousePrefix = 'KU/'; + } + + if (strtolower($deliveryAddress->state->name) === 'johor') { + $warehousePrefix = 'NX/'; + } + } + + if (isset(self::NEW_LOCATION_PREFIX_MAP[$districtName])) { + $warehousePrefix = self::NEW_LOCATION_PREFIX_MAP[$districtName]; + } + + return $warehousePrefix; + } +} diff --git a/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php b/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php index 243e8258..8e1ff9a3 100644 --- a/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php +++ b/app/Http/Controllers/Orders/DownloadOrderQrPdfController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Orders; +use App\Classes\Modules\Orders\Services\ResolveIzyimQrWarehousePrefix; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\OrderRoleTypes; use App\Classes\ValueObjects\Constants\WarehouseReferences; @@ -15,7 +16,7 @@ use Illuminate\Support\Facades\Storage; class DownloadOrderQrPdfController { - public function download(Request $request){ + public function download(Request $request, ResolveIzyimQrWarehousePrefix $resolveIzyimQrWarehousePrefix){ $order = Order::find($request->route('id')); $deliveryAddress = $order->addresses()->where('status', ApprovalStatus::APPROVED)->first(); $warehouse= $order->orderRoles()->where('role_id', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee; @@ -39,25 +40,7 @@ class DownloadOrderQrPdfController } } - if($warehouse->reference === WarehouseReferences::YD_YIWU){ - $warehousePrefix = 'YW/'; - } - - if(in_array($warehouse->reference,[WarehouseReferences::YD_GUANG_ZHOU, WarehouseReferences::YD_GUANG_ZHOU_2, WarehouseReferences::YD_FS_EAST_MALAYSIA, WarehouseReferences::YD_FS_WEST_MALAYSIA])){ - $warehousePrefix = 'YD/'; - - if(strtolower($deliveryAddress->state->name) === 'sabah' || strtolower($deliveryAddress->state->name) === 'labuan' || in_array(strtolower($deliveryAddress->district->name), ['limbang', 'lawas'])) { - $warehousePrefix = 'KK/'; - } - - if(strtolower($deliveryAddress->state->name) === 'sarawak' && !in_array(strtolower($deliveryAddress->district->name), ['limbang', 'lawas'])) { - $warehousePrefix = 'KU/'; - } - - if(strtolower($deliveryAddress->state->name) === 'johor') { - $warehousePrefix = 'NX/'; - } - } + $warehousePrefix = $resolveIzyimQrWarehousePrefix->execute($warehouse, $deliveryAddress); $data = [ 'order' => $order, diff --git a/app/Http/Controllers/Orders/DownloadTaxRebateQrPdfController.php b/app/Http/Controllers/Orders/DownloadTaxRebateQrPdfController.php index 57904485..3e28b737 100644 --- a/app/Http/Controllers/Orders/DownloadTaxRebateQrPdfController.php +++ b/app/Http/Controllers/Orders/DownloadTaxRebateQrPdfController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Orders; +use App\Classes\Modules\Orders\Services\ResolveIzyimQrWarehousePrefix; use App\Classes\ValueObjects\Constants\ApprovalStatus; use App\Classes\ValueObjects\Constants\OrderRoleTypes; use App\Classes\ValueObjects\Constants\WarehouseReferences; @@ -16,7 +17,7 @@ use Illuminate\Support\Facades\Storage; class DownloadTaxRebateQrPdfController { - public function download(Request $request){ + public function download(Request $request, ResolveIzyimQrWarehousePrefix $resolveIzyimQrWarehousePrefix){ $order = Order::find($request->route('id')); $deliveryAddress = $order->addresses()->where('status', ApprovalStatus::APPROVED)->first(); $warehouse= $order->orderRoles()->where('role_id', OrderRoleTypes::ORIGIN_WAREHOUSE)->first()->appointee; @@ -40,25 +41,7 @@ class DownloadTaxRebateQrPdfController } } - if($warehouse->reference === WarehouseReferences::YD_YIWU){ - $warehousePrefix = 'YW/'; - } - - if(in_array($warehouse->reference,[WarehouseReferences::YD_GUANG_ZHOU, WarehouseReferences::YD_GUANG_ZHOU_2, WarehouseReferences::YD_FS_EAST_MALAYSIA, WarehouseReferences::YD_FS_WEST_MALAYSIA])){ - $warehousePrefix = 'YD/'; - - if(strtolower($deliveryAddress->state->name) === 'sabah' || strtolower($deliveryAddress->state->name) === 'labuan' || in_array(strtolower($deliveryAddress->district->name), ['limbang', 'lawas'])) { - $warehousePrefix = 'KK/'; - } - - if(strtolower($deliveryAddress->state->name) === 'sarawak' && !in_array(strtolower($deliveryAddress->district->name), ['limbang', 'lawas'])) { - $warehousePrefix = 'KU/'; - } - - if(strtolower($deliveryAddress->state->name) === 'johor') { - $warehousePrefix = 'NX/'; - } - } + $warehousePrefix = $resolveIzyimQrWarehousePrefix->execute($warehouse, $deliveryAddress); // tax rebate data $tax_rebate_refeerence = $request->query('tax_rebate_refeerence');