Merge branch 'rename-qr-warehouse-prefix' of https://gitlab.com/CIEFWorldwideSdnBhd/shipping-portal into vapor/staging

This commit is contained in:
Edmond Lang
2026-03-10 15:32:01 +08:00
3 changed files with 56 additions and 40 deletions
@@ -0,0 +1,50 @@
<?php
namespace App\Classes\Modules\Orders\Services;
use App\Classes\ValueObjects\Constants\WarehouseReferences;
use App\Models\Address;
use App\Models\CompanyModule;
class ResolveIzyimQrWarehousePrefix
{
public const NEW_LOCATION_PREFIX_MAP = [
'kuching' => '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;
}
}
@@ -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,
@@ -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');