Refactor pallet number generation to include LocatorInvoiceValidation for improved uniqueness
This commit is contained in:
@@ -726,13 +726,27 @@ class PalletFromLocator extends Page implements HasForms
|
|||||||
$month = now()->format('m');
|
$month = now()->format('m');
|
||||||
$prefix = "EP-{$year}{$month}";
|
$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';
|
$newNumber = '001'; // $lastPallet ? str_pad(intval(substr($lastPallet->pallet_number, -3)) + 1, 3, '0', STR_PAD_LEFT) : '001';
|
||||||
if ($lastPallet) {
|
if ($lastPallet1 && $lastPallet2) {
|
||||||
$serialPart = substr($lastPallet->pallet_number, strlen($prefix));
|
$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
|
// OR
|
||||||
// $serialPart = str_replace($prefix, '', $lastPallet->pallet_number);
|
// $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}";
|
$newPalletNumber = "{$prefix}{$newNumber}";
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ use App\Filament\Imports\PalletValidationImporter;
|
|||||||
use App\Filament\Resources\PalletValidationResource\Pages;
|
use App\Filament\Resources\PalletValidationResource\Pages;
|
||||||
use App\Filament\Resources\PalletValidationResource\RelationManagers;
|
use App\Filament\Resources\PalletValidationResource\RelationManagers;
|
||||||
use App\Models\Item;
|
use App\Models\Item;
|
||||||
|
use App\Models\LocatorInvoiceValidation;
|
||||||
use App\Models\PalletValidation;
|
use App\Models\PalletValidation;
|
||||||
use App\Models\Plant;
|
use App\Models\Plant;
|
||||||
use App\Models\StickerMaster;
|
use App\Models\StickerMaster;
|
||||||
@@ -89,13 +90,29 @@ class PalletValidationResource extends Resource
|
|||||||
$month = now()->format('m');
|
$month = now()->format('m');
|
||||||
$prefix = "EP-{$year}{$month}";
|
$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';
|
$newNumber = '001'; // $lastPallet ? str_pad(intval(substr($lastPallet->pallet_number, -3)) + 1, 3, '0', STR_PAD_LEFT) : '001';
|
||||||
if ($lastPallet) {
|
if ($lastPallet1 && $lastPallet2) {
|
||||||
$serialPart = substr($lastPallet->pallet_number, strlen($prefix));
|
$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
|
// OR
|
||||||
// $serialPart = str_replace($prefix, '', $lastPallet->pallet_number);
|
// $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}";
|
$newPalletNumber = "{$prefix}{$newNumber}";
|
||||||
|
|||||||
Reference in New Issue
Block a user