From 6cbcb2662adc497f22c53d0cd784082e9cf22f75 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Thu, 26 Feb 2026 12:16:50 +0530 Subject: [PATCH] Added unique rule for item_id column --- .../ProductCharacteristicsMasterResource.php | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/Filament/Resources/ProductCharacteristicsMasterResource.php b/app/Filament/Resources/ProductCharacteristicsMasterResource.php index da9a4f5..0d0e69c 100644 --- a/app/Filament/Resources/ProductCharacteristicsMasterResource.php +++ b/app/Filament/Resources/ProductCharacteristicsMasterResource.php @@ -27,6 +27,8 @@ use Filament\Tables\Filters\Filter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; +use Illuminate\Validation\Rule; +use Str; class ProductCharacteristicsMasterResource extends Resource { @@ -71,12 +73,31 @@ class ProductCharacteristicsMasterResource extends Resource return []; } - return \App\Models\Item::where('plant_id', $plantId)->pluck('code', 'id'); + return Item::where('plant_id', $plantId)->pluck('code', 'id'); }) ->disabled(fn (Get $get) => ! empty($get('id'))) ->afterStateUpdated(function ($state, callable $set) { $set('updated_by', Filament::auth()->user()?->name); }) + ->rules([ + function (callable $get) { + return Rule::unique('product_characteristics_masters', 'item_id') + ->where('plant_id', $get('plant_id')) + ->where('line_id', $get('line_id')) + ->where('work_group_master_id', $get('work_group_master_id')) + ->where('machine_id', $get('machine_id')) + // ->where('characteristics_type', $get('characteristics_type')) + ->ignore($get('id')); + }, + // function (callable $get): Closure { + // return function (string $attribute, $value, Closure $fail) use ($get) { + // $rework = $get('rework_status'); + // if ($value && Str::contains($value, '.') && $rework == 0) { + // $fail("Rework status should be 'Yes' for rework coil number '{$value}'!"); + // } + // }; + // }, + ]) ->required(), Forms\Components\Select::make('line_id') ->label('Line')