diff --git a/app/Filament/Pages/PalletFromLocator.php b/app/Filament/Pages/PalletFromLocator.php index 98309dd..be4e50f 100644 --- a/app/Filament/Pages/PalletFromLocator.php +++ b/app/Filament/Pages/PalletFromLocator.php @@ -726,13 +726,27 @@ class PalletFromLocator extends Page implements HasForms $month = now()->format('m'); $prefix = "EP-{$year}{$month}"; - $lastPallet = PalletValidation::where('pallet_number', 'like', "{$prefix}%")->orderByDesc('pallet_number')->first(); //->where('plant_id', $plantId) + $lastPallet1 = PalletValidation::where('pallet_number', 'like', "{$prefix}%")->orderByDesc('pallet_number')->first(); //->where('plant_id', $plantId) + $lastPallet2 = LocatorInvoiceValidation::where('pallet_number', 'like', "{$prefix}%")->orderByDesc('pallet_number')->first(); $newNumber = '001'; // $lastPallet ? str_pad(intval(substr($lastPallet->pallet_number, -3)) + 1, 3, '0', STR_PAD_LEFT) : '001'; - if ($lastPallet) { - $serialPart = substr($lastPallet->pallet_number, strlen($prefix)); + if ($lastPallet1 && $lastPallet2) { + $serialPart1 = substr($lastPallet1->pallet_number, strlen($prefix)); + $serialPart2 = substr($lastPallet2->pallet_number, strlen($prefix)); + if (intval($serialPart1) > intval($serialPart2)) { + $newNumber = str_pad(intval($serialPart1) + 1, strlen($serialPart1), '0', STR_PAD_LEFT); + } else { + $newNumber = str_pad(intval($serialPart2) + 1, strlen($serialPart2), '0', STR_PAD_LEFT); + } + } + else if ($lastPallet1) { + $serialPart1 = substr($lastPallet1->pallet_number, strlen($prefix)); // OR // $serialPart = str_replace($prefix, '', $lastPallet->pallet_number); - $newNumber = str_pad(intval($serialPart) + 1, strlen($serialPart), '0', STR_PAD_LEFT); + $newNumber = str_pad(intval($serialPart1) + 1, strlen($serialPart1), '0', STR_PAD_LEFT); + } + else if ($lastPallet2) { + $serialPart2 = substr($lastPallet2->pallet_number, strlen($prefix)); + $newNumber = str_pad(intval($serialPart2) + 1, strlen($serialPart2), '0', STR_PAD_LEFT); } $newPalletNumber = "{$prefix}{$newNumber}"; diff --git a/app/Filament/Resources/PalletValidationResource.php b/app/Filament/Resources/PalletValidationResource.php index d2ae977..bb532e5 100644 --- a/app/Filament/Resources/PalletValidationResource.php +++ b/app/Filament/Resources/PalletValidationResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\PalletValidationImporter; use App\Filament\Resources\PalletValidationResource\Pages; use App\Filament\Resources\PalletValidationResource\RelationManagers; use App\Models\Item; +use App\Models\LocatorInvoiceValidation; use App\Models\PalletValidation; use App\Models\Plant; use App\Models\StickerMaster; @@ -89,13 +90,29 @@ class PalletValidationResource extends Resource $month = now()->format('m'); $prefix = "EP-{$year}{$month}"; - $lastPallet = PalletValidation::where('pallet_number', 'like', "{$prefix}%")->orderByDesc('pallet_number')->first(); //->where('plant_id', $plantId) + $lastPallet1 = PalletValidation::where('pallet_number', 'like', "{$prefix}%")->orderByDesc('pallet_number')->first(); //->where('plant_id', $plantId) + $lastPallet2 = LocatorInvoiceValidation::where('pallet_number', 'like', "{$prefix}%")->orderByDesc('pallet_number')->first(); $newNumber = '001'; // $lastPallet ? str_pad(intval(substr($lastPallet->pallet_number, -3)) + 1, 3, '0', STR_PAD_LEFT) : '001'; - if ($lastPallet) { - $serialPart = substr($lastPallet->pallet_number, strlen($prefix)); + if ($lastPallet1 && $lastPallet2) { + $serialPart1 = substr($lastPallet1->pallet_number, strlen($prefix)); + $serialPart2 = substr($lastPallet2->pallet_number, strlen($prefix)); + if (intval($serialPart1) > intval($serialPart2)) { + $newNumber = str_pad(intval($serialPart1) + 1, strlen($serialPart1), '0', STR_PAD_LEFT); + } else { + $newNumber = str_pad(intval($serialPart2) + 1, strlen($serialPart2), '0', STR_PAD_LEFT); + } + } + else if ($lastPallet1) { + $serialPart1 = substr($lastPallet1->pallet_number, strlen($prefix)); // OR // $serialPart = str_replace($prefix, '', $lastPallet->pallet_number); - $newNumber = str_pad(intval($serialPart) + 1, strlen($serialPart), '0', STR_PAD_LEFT); + $newNumber = str_pad(intval($serialPart1) + 1, strlen($serialPart1), '0', STR_PAD_LEFT); + } + else if ($lastPallet2) { + $serialPart2 = substr($lastPallet2->pallet_number, strlen($prefix)); + // OR + // $serialPart = str_replace($prefix, '', $lastPallet->pallet_number); + $newNumber = str_pad(intval($serialPart2) + 1, strlen($serialPart2), '0', STR_PAD_LEFT); } $newPalletNumber = "{$prefix}{$newNumber}";