From 968a564109fdf89c7f79adbe477090d6d58e78b5 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Sat, 30 May 2026 13:44:43 +0530 Subject: [PATCH] Updated validation logic on edit --- .../Resources/LeakTestReadingResource.php | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/Filament/Resources/LeakTestReadingResource.php b/app/Filament/Resources/LeakTestReadingResource.php index eeb1be6..d3e747d 100644 --- a/app/Filament/Resources/LeakTestReadingResource.php +++ b/app/Filament/Resources/LeakTestReadingResource.php @@ -58,6 +58,8 @@ class LeakTestReadingResource extends Resource $plantId = $get('plant_id'); $set('lsrPlantError', null); + $set('lsrCodeError', null); + $set('lsrSerialError', null); $set('item_code', null); $set('serial_number', null); $set('test_status', null); @@ -80,10 +82,10 @@ class LeakTestReadingResource extends Resource ->alphaNum() ->minLength(6) ->reactive() - ->disabled(fn (Get $get) => ! empty($get('id'))) + ->disabled(fn (Get $get) => ! empty($get('id')) && ! Filament::auth()->user()->hasRole('Super Admin')) ->afterStateUpdated(function ($state, callable $set, callable $get) { $code = $get('item_code'); - // Ensure `linestop_id` is not cleared + $set('lsrCodeError', null); if (! $code) { $set('lsrCodeError', 'Scan the valid item code.'); @@ -95,7 +97,9 @@ class LeakTestReadingResource extends Resource return; } elseif (! ctype_alnum($code)) { $set('item_code', null); - $set('lsrSerialError', 'Item code must contain only alpha-numeric characters!'); + $set('lsrCodeError', 'Item code must contain only alpha-numeric characters!'); + + return; } elseif (! preg_match('/^[a-zA-Z1-9][a-zA-Z0-9]{5,}$/', $code)) { $set('item_code', null); $set('lsrCodeError', "Item code should not begin with '0' or letter!"); @@ -117,10 +121,10 @@ class LeakTestReadingResource extends Resource ->alphaNum() ->minLength(9) ->reactive() - ->disabled(fn (Get $get) => ! empty($get('id'))) + ->disabled(fn (Get $get) => ! empty($get('id')) && ! Filament::auth()->user()->hasRole('Super Admin')) ->afterStateUpdated(function ($state, callable $set, callable $get) { $serial = $get('serial_number'); - // Ensure `linestop_id` is not cleared + $set('lsrSerialError', null); if (! $serial) { $set('lsrSerialError', 'Scan the valid serial number!'); @@ -133,6 +137,8 @@ class LeakTestReadingResource extends Resource } elseif (! ctype_alnum($serial)) { $set('serial_number', null); $set('lsrSerialError', 'Serial number must contain only alpha-numeric characters!'); + + return; } elseif (! preg_match('/^[1-9][a-zA-Z0-9]{8,}$/', $serial)) { $set('serial_number', null); $set('lsrSerialError', "Serial number should not begin with '0' or letter!"); @@ -152,6 +158,7 @@ class LeakTestReadingResource extends Resource ->label('Test Status') ->searchable() ->reactive() + // ->disabled(fn (Get $get) => ! empty($get('id'))) ->options(function (callable $set, callable $get) { $plantId = $get('plant_id'); $itemCode = $get('item_code');