Merge pull request 'Added status column auto updation logic based on observed_value' (#344) from ranjith-dev into master
Some checks failed
Scan for leaked secrets using Kingfisher / kingfisher-secrets-scan (push) Has been cancelled

Reviewed-on: #344
This commit was merged in pull request #344.
This commit is contained in:
2026-02-17 12:13:58 +00:00

View File

@@ -25,6 +25,7 @@ use Filament\Tables\Filters\Filter;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Str;
class CharacteristicValueResource extends Resource
{
@@ -187,14 +188,71 @@ class CharacteristicValueResource extends Resource
Forms\Components\TextInput::make('observed_value')
->label('Observed Value')
->reactive()
->afterStateUpdated(function ($state, $set, callable $get) {
$plantId = $get('plant_id');
$itemId = $get('item_id');
$lineId = $get('line_id');
$machineId = $get('machine_id');
if (! $plantId || ! $itemId || ! $lineId || ! $machineId) {
$set('status', 'NotOk');
return;
}
if (Str::length($state) <= 0 || ! is_numeric($state) || ! preg_match('/^\d+(\.\d+)?$/', $state)
) {
$set('status', 'NotOk');
return;
}
$specVal = ProductCharacteristicsMaster::where('plant_id', $plantId)->where('item_id', $itemId)->where('line_id', $lineId)->where('machine_id', $machineId)->first();
if (! $specVal) {
$set('status', 'NotOk');
return;
}
$lowLimit = $specVal?->lower ?? 0;
$uppLimit = $specVal?->upper ?? 0;
if (Str::length($lowLimit) <= 0 || ! is_numeric($lowLimit) || ! preg_match('/^\d+(\.\d+)?$/', $lowLimit)
) {
$set('status', 'NotOk');
return;
} elseif (Str::length($uppLimit) <= 0 || ! is_numeric($uppLimit) || ! preg_match('/^\d+(\.\d+)?$/', $uppLimit)
) {
$set('status', 'NotOk');
return;
}
if (($lowLimit == 0 && $uppLimit == 0) || ($uppLimit == 0)) {
$set('status', 'NotOk');
return;
}
if ($lowLimit > $state || $uppLimit < $state) {
$set('status', 'NotOk');
return;
}
$set('status', 'Ok');
})
->required(),
Forms\Components\Select::make('status')
Forms\Components\TextInput::make('status')// Select
->label('Status')
->options([
'Ok' => 'OK',
'NotOk' => 'Not Ok',
])
// ->options([
// 'Ok' => 'OK',
// 'NotOk' => 'Not Ok',
// ])
->reactive()
->default('NotOk')
->readOnly()
->required(),
Forms\Components\Hidden::make('created_by')
->label('Created By')