After Production Quantity and Overall Validation

This commit is contained in:
dhanabalan
2025-03-30 23:04:29 +05:30
parent e46f290fd1
commit 6e44b690f1
16 changed files with 1726 additions and 407 deletions

View File

@@ -14,6 +14,8 @@ use Filament\Tables\Actions\ImportAction;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use Filament\Forms\Components\Section;
use Illuminate\Validation\Rules\Unique;
class LineResource extends Resource
{
@@ -22,21 +24,108 @@ class LineResource extends Resource
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Master Entries';
protected static ?int $navigationSort = 6;
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Select::make('plant_id')
->relationship('plant', 'name')
->required(),
// ->nullable(),
Forms\Components\Textarea::make('name')
->required(),
// ->columnSpanFull(),
Forms\Components\Textarea::make('type')
->required(),
//->columnSpanFull(),
Section::make('')
->schema([
Forms\Components\Select::make('plant_id')
->relationship('plant', 'name')
->required()
// ->nullable(),
->reactive()
// ->afterStateUpdated(fn ($set) => $set('block_id', null) & $set('name', null) & $set('start_time', null) & $set('duration', null) & $set('end_time', null))
->afterStateUpdated(function ($state, callable $set, callable $get) {
$plantId = $get('plant_id');
// Ensure `linestop_id` is not cleared
if (!$plantId) {
$set('lPlantError', 'Please select a plant first.');
return;
}
else
{
$set('lPlantError', null);
}
})
->extraAttributes(fn ($get) => [
'class' => $get('lPlantError') ? 'border-red-500' : '',
])
->hint(fn ($get) => $get('lPlantError') ? $get('lPlantError') : null)
->hintColor('danger'),
Forms\Components\TextInput::make('name')
->required()
->placeholder('Scan the valid name')
// ->unique(
// ignoreRecord: true,
// modifyRuleUsing: function (Unique $rule) {
// return $rule->where('plant_id', $this->data['plant_id']);
// }
// )
// ->rule(function () {
// return function ($attribute, $value, $fail) {
// $exists = Line::where('name', $value)
// ->where('plant_id', request()->input('plant_id'))
// ->exists();
// if ($exists) {
// $fail('The combination of name and plant ID must be unique.');
// }
// };
// })
->reactive()
->afterStateUpdated(function ($state, callable $set, callable $get) {
$lineNam = $get('name');
// Ensure `linestop_id` is not cleared
if (!$lineNam) {
$set('lNameError', 'Scan the valid name.');
return;
}
else
{
$exists = Line::where('name', $lineNam)
->where('plant_id', $get('plant_id'))
->exists();
if ($exists) {
$set('name', null);
$set('lNameError', 'The name has already been taken.');
// $set('lNameError', 'The combination of name and plant ID must be unique.');
return;
}
$set('lNameError', null);
}
})
->extraAttributes(fn ($get) => [
'class' => $get('lNameError') ? 'border-red-500' : '',
])
->hint(fn ($get) => $get('lNameError') ? $get('lNameError') : null)
->hintColor('danger'),
Forms\Components\TextInput::make('type')
->required()
->placeholder('Scan the valid type')
->reactive()
->afterStateUpdated(function ($state, callable $set, callable $get) {
$lineTyp = $get('type');
// Ensure `linestop_id` is not cleared
if (!$lineTyp) {
$set('lTypeError', 'Scan the valid type.');
return;
}
else
{
$set('lTypeError', null);
}
})
->extraAttributes(fn ($get) => [
'class' => $get('lTypeError') ? 'border-red-500' : '',
])
->hint(fn ($get) => $get('lTypeError') ? $get('lTypeError') : null)
->hintColor('danger'),
])
->columns(2),
]);
}