diff --git a/app/Filament/Resources/ShiftResource.php b/app/Filament/Resources/ShiftResource.php index 1a06304..2fd3a2e 100644 --- a/app/Filament/Resources/ShiftResource.php +++ b/app/Filament/Resources/ShiftResource.php @@ -97,6 +97,7 @@ class ShiftResource extends Resource ->hintColor('danger'), Forms\Components\TextInput::make('name') ->placeholder('Scan the valid name') + ->autofocus(true) ->required() ->reactive() ->afterStateUpdated(function ($state, callable $set, callable $get) { @@ -108,6 +109,17 @@ class ShiftResource extends Resource } else { + $exists = Shift::where('plant_id', $get('plant_id')) + ->where('block_id', $get('block_id')) + ->where('name', $nameId) + ->latest() + ->exists(); + if ($exists) + { + $set('start_time', null); + $set('sNameError', 'Scanned name already exist.'); + return; + } $set('sNameError', null); } }) @@ -125,15 +137,27 @@ class ShiftResource extends Resource // ) ->reactive() ->afterStateUpdated(function ($state, callable $set, callable $get) { - $nameId = $get('start_time'); - // $set('duration', null); + $startTime = $get('start_time'); + $set('duration', null); $set('end_time', self::calculateEndTime($state, $get('duration'))); - if (!$nameId) { + if (!$startTime) { $set('sStartTimeError', 'Choose the valid start time.'); return; } else { + $exists = Shift::where('plant_id', $get('plant_id')) + ->where('block_id', $get('block_id')) + ->where('name', $get('name')) + ->latest() + ->exists(); + if ($exists) + { + $set('start_time', null); + $set('sStartTimeError', null); + $set('sNameError', 'Scanned name already exist.'); + return; + } $set('sStartTimeError', null); } }) @@ -167,6 +191,15 @@ class ShiftResource extends Resource $hRs = (int) $hRs; $miNs = (int) $miNs; + $set('duration', $hRs.'.'.$miNs); + + if ($miNs > 60) { + $set('sDurationError', 'Minutes exceeds 1 hour.'); + $set('duration', null); + $set('end_time', null); + return; + } + $totalMinutes = $hRs * 60 + $miNs; if ($totalMinutes > 1440) { @@ -212,8 +245,6 @@ class ShiftResource extends Resource ]) ->columns(2), ]); - - } public static function table(Table $table): Table