From c6fd61a9ba2dc4d9aa25c1a9b4d4c537feb54571 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Wed, 25 Mar 2026 10:49:13 +0530 Subject: [PATCH 1/2] Updated item_id load functionality on resource page --- app/Filament/Resources/ProcessOrderResource.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/Filament/Resources/ProcessOrderResource.php b/app/Filament/Resources/ProcessOrderResource.php index c269506..23836a4 100644 --- a/app/Filament/Resources/ProcessOrderResource.php +++ b/app/Filament/Resources/ProcessOrderResource.php @@ -9,6 +9,7 @@ use App\Models\Item; use App\Models\Line; use App\Models\Plant; use App\Models\ProcessOrder; +use App\Models\ProductCharacteristicsMaster; use Closure; use Filament\Facades\Filament; use Filament\Forms; @@ -130,11 +131,14 @@ class ProcessOrderResource extends Resource ->reactive() ->options(function (callable $get) { $plantId = $get('plant_id'); - if (empty($plantId)) { + $lineId = $get('line_id'); + if (empty($plantId) || empty($lineId)) { return []; } - return Item::where('plant_id', $plantId)->pluck('code', 'id'); + $availItems = ProductCharacteristicsMaster::where('plant_id', $plantId)->where('line_id', $lineId)->pluck('item_id', 'item_id')->toArray(); + + return Item::where('plant_id', $plantId)->whereIn('id', $availItems)->pluck('code', 'id'); // return Item::where('plant_id', $plantId)->pluck('code', 'id'); }) ->disabled(fn (Get $get) => ! empty($get('id'))) ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { From 1c37e1bb0bed8c4c33fbd9494cfd19cd356123c3 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Wed, 25 Mar 2026 11:20:05 +0530 Subject: [PATCH 2/2] Updated process order import only if it has characteristics master --- app/Filament/Imports/ProcessOrderImporter.php | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/app/Filament/Imports/ProcessOrderImporter.php b/app/Filament/Imports/ProcessOrderImporter.php index 1bf63ad..23f389d 100644 --- a/app/Filament/Imports/ProcessOrderImporter.php +++ b/app/Filament/Imports/ProcessOrderImporter.php @@ -6,6 +6,7 @@ use App\Models\Item; use App\Models\Line; use App\Models\Plant; use App\Models\ProcessOrder; +use App\Models\ProductCharacteristicsMaster; use App\Models\User; use Filament\Actions\Imports\Exceptions\RowImportFailedException; use Filament\Actions\Imports\ImportColumn; @@ -30,7 +31,7 @@ class ProcessOrderImporter extends Importer ->rules(['required']), ImportColumn::make('line') ->exampleHeader('LINE NAME') - ->example(' Poly Wrapped Wire SFG') + ->example('Poly Wrapped Wire SFG') ->label('LINE NAME') ->relationship(resolveUsing: 'name'), ImportColumn::make('item') @@ -43,7 +44,7 @@ class ProcessOrderImporter extends Importer ImportColumn::make('process_order') ->requiredMapping() ->exampleHeader('PROCESS ORDER') - ->example('2025002123456') + ->example('202601123456') ->label('PROCESS ORDER') ->rules(['required']), ImportColumn::make('order_quantity') @@ -104,10 +105,10 @@ class ProcessOrderImporter extends Importer $plant = null; $plantCod = trim($this->data['plant']) ?? ''; $plantId = null; - $item = null; $iCode = trim($this->data['item']) ?? ''; $itemId = null; $lineNam = trim($this->data['line']) ?? ''; + $lineId = null; $processOrder = trim($this->data['process_order'] ?? ''); $coilNo = trim($this->data['coil_number'] ?? ''); $sfgNo = trim($this->data['sfg_number'] ?? ''); @@ -230,7 +231,7 @@ class ProcessOrderImporter extends Importer } } - if ($plantId && $itemCode && $lineId && $processOrder != '') { + if ($plantId && $itemId && $lineId && $processOrder != '') { $existingOrder = ProcessOrder::where('plant_id', $plantId) ->where('process_order', $processOrder) ->first(); @@ -238,6 +239,18 @@ class ProcessOrderImporter extends Importer if ($existingOrder && $existingOrder->item_id !== ($itemId ?? null)) { $warnMsg[] = 'Same Process Order already exists for this Plant with a different Item Code!'; } + + $masterExist = ProductCharacteristicsMaster::where('plant_id', $plantId)->where('item_id', $itemId)->first(); + + if (! $masterExist) { + $warnMsg[] = 'Characteristics master not found for the given plant!'; + } else { + $masterExist = ProductCharacteristicsMaster::where('plant_id', $plantId)->where('line_id', $lineId)->where('item_id', $itemId)->first(); + + if (! $masterExist) { + $warnMsg[] = 'Characteristics master not found for the given line!'; + } + } } // $user = User::where('name', $this->data['created_by'])->first();