From 6c334359b2b113640a9812576c50156ea7519050 Mon Sep 17 00:00:00 2001 From: dhanabalan Date: Mon, 16 Feb 2026 11:41:34 +0530 Subject: [PATCH] Added Block in line resource page --- app/Filament/Resources/LineResource.php | 1088 ++++++++++++----------- 1 file changed, 574 insertions(+), 514 deletions(-) diff --git a/app/Filament/Resources/LineResource.php b/app/Filament/Resources/LineResource.php index f94fd0c..9b9dd2c 100644 --- a/app/Filament/Resources/LineResource.php +++ b/app/Filament/Resources/LineResource.php @@ -5,23 +5,23 @@ namespace App\Filament\Resources; use App\Filament\Exports\LineExporter; use App\Filament\Imports\LineImporter; use App\Filament\Resources\LineResource\Pages; -use App\Filament\Resources\LineResource\RelationManagers; +use App\Models\Block; use App\Models\Line; use App\Models\Plant; use App\Models\WorkGroupMaster; use Filament\Facades\Filament; use Filament\Forms; +use Filament\Forms\Components\Section; use Filament\Forms\Form; use Filament\Forms\Get; +use Filament\Forms\Set; use Filament\Resources\Resource; use Filament\Tables; +use Filament\Tables\Actions\ExportAction; 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 Filament\Forms\Set; -use Filament\Tables\Actions\ExportAction; use Illuminate\Validation\Rule; use Illuminate\Validation\Rules\Unique; @@ -48,22 +48,22 @@ class LineResource extends Resource ->reactive() ->options(function (callable $get) { $userHas = Filament::auth()->user()->plant_id; - return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::pluck('name', 'id')->toArray(); + + return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::orderBy('code')->pluck('name', 'id')->toArray(); }) ->default(function () { return optional(Line::latest()->first())->plant_id; }) - ->disabled(fn (Get $get) => !empty($get('id'))) + ->disabled(fn (Get $get) => ! empty($get('id'))) // ->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) { + if (! $plantId) { $set('lPlantError', 'Please select a plant first.'); + return; - } - else - { + } else { $set('lPlantError', null); } }) @@ -72,6 +72,39 @@ class LineResource extends Resource ]) ->hint(fn ($get) => $get('lPlantError') ? $get('lPlantError') : null) ->hintColor('danger'), + Forms\Components\Select::make('block_id') + ->label('Block') + ->relationship('block', 'name') + ->required() + // ->nullable(), + ->reactive() + ->options(function (callable $get) { + if (! $get('plant_id')) { + return []; + } + + return Block::where('plant_id', $get('plant_id')) + ->pluck('name', 'id') + ->toArray(); + }) + ->default(function () { + return optional(Block::latest()->first())->plant_id; + }) + ->afterStateUpdated(function ($state, callable $set, callable $get) { + $blockId = $get('block_id'); + if (! $blockId) { + $set('lblockError', 'Please select a Block first.'); + + return; + } else { + $set('lblockError', null); + } + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('lblockError') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('lblockError') ? $get('lblockError') : null) + ->hintColor('danger'), Forms\Components\TextInput::make('name') ->required() ->placeholder('Scan the valid name') @@ -97,12 +130,11 @@ class LineResource extends Resource ->afterStateUpdated(function ($state, callable $set, callable $get) { $lineNam = $get('name'); // Ensure `linestop_id` is not cleared - if (!$lineNam) { + if (! $lineNam) { $set('lNameError', 'Scan the valid name.'); + return; - } - else - { + } else { // $exists = Line::where('name', $lineNam) // ->where('plant_id', $get('plant_id')) // ->exists(); @@ -156,6 +188,9 @@ class LineResource extends Resource 'Base FG Line' => 'Base FG Line', 'SFG Line' => 'SFG Line', 'FG Line' => 'FG Line', + 'Process Base FG Line' => 'Process Base FG Line', + 'Process SFG Line' => 'Process SFG Line', + 'Process FG Line' => 'Process FG Line', 'Machining Cell' => 'Machining Cell', 'Blanking Cell' => 'Blanking Cell', 'Forming Cell' => 'Forming Cell', @@ -168,12 +203,11 @@ class LineResource extends Resource ->afterStateUpdated(function ($state, callable $set, callable $get) { $lineTyp = $get('type'); // Ensure `linestop_id` is not cleared - if (!$lineTyp) { + if (! $lineTyp) { $set('lTypeError', 'Scan the valid type.'); + return; - } - else - { + } else { $set('lTypeError', null); } }) @@ -198,13 +232,13 @@ class LineResource extends Resource ]; foreach ($partValidationColumns as $column) { - $set($column . '_visible', false); + $set($column.'_visible', false); $set($column, null); } $partValidDispColumns = [ 'work_group1_actual_id', 'work_group2_actual_id', 'work_group3_actual_id', 'work_group4_actual_id', 'work_group5_actual_id', - 'work_group6_actual_id', 'work_group7_actual_id', 'work_group8_actual_id', 'work_group9_actual_id', 'work_group10_actual_id' + 'work_group6_actual_id', 'work_group7_actual_id', 'work_group8_actual_id', 'work_group9_actual_id', 'work_group10_actual_id', ]; foreach ($partValidDispColumns as $column) { @@ -224,21 +258,21 @@ class LineResource extends Resource }), Forms\Components\Hidden::make('work_group1_id'), - // ->afterStateHydrated(function ($component, $state, Get $get, Set $set) { - // if ($get('id')) { - // $workGroupId = Line::where('id', $get('id'))->first()?->work_group1_id; - // if ($workGroupId) { - // $set('work_group1_id', $workGroupId); - // } else { - // $set('work_group1_id', null); - // } - // } - // }), - //->required(fn (callable $get) => $get('no_of_operation') >= 1), + // ->afterStateHydrated(function ($component, $state, Get $get, Set $set) { + // if ($get('id')) { + // $workGroupId = Line::where('id', $get('id'))->first()?->work_group1_id; + // if ($workGroupId) { + // $set('work_group1_id', $workGroupId); + // } else { + // $set('work_group1_id', null); + // } + // } + // }), + // ->required(fn (callable $get) => $get('no_of_operation') >= 1), Forms\Components\TextInput::make('work_group1_actual_id') ->label('Work Group Center 1') - ->hidden(fn (callable $get) => !$get('work_group1_id_visible')) + ->hidden(fn (callable $get) => ! $get('work_group1_id_visible')) ->default('') ->reactive() ->required() @@ -248,21 +282,23 @@ class LineResource extends Resource } }) ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); + // $workGroup1Id = $get('work_group1_actual_id'); $plantId = $get('plant_id'); $lineName = $get('name'); if ($state == null || trim($state) == '') { $set('work_group1_id_error', null); $set('work_group1_id', null); + return; } $set('work_group1_id_error', null); $set('work_group1_id', null); - if (!$plantId) { + if (! $plantId) { $set('work_group1_id_error', 'Invalid plant name.'); + return; } @@ -270,8 +306,9 @@ class LineResource extends Resource ->where('name', $state) ->first(); - if (!$workGroupRecord) { + if (! $workGroupRecord) { $set('work_group1_id_error', 'Work group does not exist for this plant in master.'); + return; } @@ -281,13 +318,13 @@ class LineResource extends Resource // } // })->count(); $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); - } - }) - ->count(); + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); if ($existsInLines > 0) { \Filament\Notifications\Notification::make() @@ -297,25 +334,24 @@ class LineResource extends Resource ->send(); $set('work_group1_actual_id', ''); $set('work_group1_id', null); + return; - } - else - { + } else { $set('work_group1_id_error', null); $set('work_group1_id', $workGroupRecord->id); } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group1_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group1_id_error')) - ->hintColor('danger'), + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group1_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group1_id_error')) + ->hintColor('danger'), Forms\Components\Hidden::make('work_group2_id'), Forms\Components\TextInput::make('work_group2_actual_id') ->label('Work Group Center 2') - ->hidden(fn (callable $get) => !$get('work_group2_id_visible')) + ->hidden(fn (callable $get) => ! $get('work_group2_id_visible')) ->default('') ->required() ->reactive() @@ -324,22 +360,24 @@ class LineResource extends Resource $set('work_group2_actual_id', $record->workGroup2->name); } }) - ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); + ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { + // $workGroup1Id = $get('work_group1_actual_id'); $plantId = $get('plant_id'); $lineName = $get('name'); if ($state == null || trim($state) == '') { $set('work_group2_id_error', null); $set('work_group2_id', null); + return; } $set('work_group2_id_error', null); $set('work_group2_id', null); - if (!$plantId) { + if (! $plantId) { $set('work_group2_id_error', 'Invalid plant name.'); + return; } @@ -347,19 +385,20 @@ class LineResource extends Resource ->where('name', $state) ->first(); - if (!$workGroupRecord) { + if (! $workGroupRecord) { $set('work_group2_id_error', 'Work group does not exist for this plant in master.'); + return; } $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); - } - }) - ->count(); + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); if ($existsInLines > 0) { \Filament\Notifications\Notification::make() @@ -369,25 +408,24 @@ class LineResource extends Resource ->send(); $set('work_group2_actual_id', ''); $set('work_group2_id', null); + return; - } - else - { + } else { $set('work_group2_id_error', null); $set('work_group2_id', $workGroupRecord->id); } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group2_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group2_id_error')) - ->hintColor('danger'), + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group2_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group2_id_error')) + ->hintColor('danger'), Forms\Components\Hidden::make('work_group3_id'), Forms\Components\TextInput::make('work_group3_actual_id') ->label('Work Group Center 3') - ->hidden(fn (callable $get) => !$get('work_group3_id_visible')) + ->hidden(fn (callable $get) => ! $get('work_group3_id_visible')) ->default('') ->required() ->reactive() @@ -397,21 +435,23 @@ class LineResource extends Resource } }) ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); + // $workGroup1Id = $get('work_group1_actual_id'); $plantId = $get('plant_id'); $lineName = $get('name'); if ($state == null || trim($state) == '') { $set('work_group3_id_error', null); $set('work_group3_id', null); + return; } $set('work_group3_id_error', null); $set('work_group3_id', null); - if (!$plantId) { + if (! $plantId) { $set('work_group3_id_error', 'Invalid plant name.'); + return; } @@ -419,19 +459,20 @@ class LineResource extends Resource ->where('name', $state) ->first(); - if (!$workGroupRecord) { + if (! $workGroupRecord) { $set('work_group3_id_error', 'Work group does not exist for this plant in master.'); + return; } $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); - } - }) - ->count(); + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); if ($existsInLines > 0) { \Filament\Notifications\Notification::make() @@ -441,49 +482,50 @@ class LineResource extends Resource ->send(); $set('work_group3_actual_id', ''); $set('work_group3_id', null); + return; - } - else - { + } else { $set('work_group3_id_error', null); $set('work_group3_id', $workGroupRecord->id); } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group3_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group3_id_error')) - ->hintColor('danger'), + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group3_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group3_id_error')) + ->hintColor('danger'), - Forms\Components\Hidden::make('work_group4_id'), + Forms\Components\Hidden::make('work_group4_id'), - Forms\Components\TextInput::make('work_group4_actual_id') - ->label('Work Group Center 4') - ->hidden(fn (callable $get) => !$get('work_group4_id_visible')) - ->default('') - ->required() - ->reactive() - ->afterStateHydrated(function (callable $set, $record) { + Forms\Components\TextInput::make('work_group4_actual_id') + ->label('Work Group Center 4') + ->hidden(fn (callable $get) => ! $get('work_group4_id_visible')) + ->default('') + ->required() + ->reactive() + ->afterStateHydrated(function (callable $set, $record) { if ($record && $record->workGroup4) { $set('work_group4_actual_id', $record->workGroup4->name); } }) - ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); + ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { + // $workGroup1Id = $get('work_group1_actual_id'); $plantId = $get('plant_id'); $lineName = $get('name'); if ($state == null || trim($state) == '') { $set('work_group4_id_error', null); $set('work_group4_id', null); + return; } $set('work_group4_id_error', null); $set('work_group4_id', null); - if (!$plantId) { + if (! $plantId) { $set('work_group4_id_error', 'Invalid plant name.'); + return; } @@ -491,19 +533,20 @@ class LineResource extends Resource ->where('name', $state) ->first(); - if (!$workGroupRecord) { + if (! $workGroupRecord) { $set('work_group4_id_error', 'Work group does not exist for this plant in master.'); + return; } $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); - } - }) - ->count(); + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); if ($existsInLines > 0) { \Filament\Notifications\Notification::make() @@ -513,458 +556,469 @@ class LineResource extends Resource ->send(); $set('work_group4_actual_id', ''); $set('work_group4_id', null); + return; - } - else - { + } else { $set('work_group4_id_error', null); $set('work_group4_id', $workGroupRecord->id); } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group4_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group4_id_error')) - ->hintColor('danger'), + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group4_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group4_id_error')) + ->hintColor('danger'), - Forms\Components\Hidden::make('work_group5_id'), + Forms\Components\Hidden::make('work_group5_id'), - Forms\Components\TextInput::make('work_group5_actual_id') - ->label('Work Group Center 5') - ->hidden(fn (callable $get) => !$get('work_group5_id_visible')) - ->default('') - ->required() - ->reactive() - ->afterStateHydrated(function (callable $set, $record) { - if ($record && $record->workGroup5) { - $set('work_group5_actual_id', $record->workGroup5->name); - } - }) - ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); - $plantId = $get('plant_id'); - $lineName = $get('name'); - - if ($state == null || trim($state) == '') { - $set('work_group5_id_error', null); - $set('work_group5_id', null); - return; - } - - $set('work_group5_id_error', null); - $set('work_group5_id', null); - - if (!$plantId) { - $set('work_group5_id_error', 'Invalid plant name.'); - return; - } - - $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) - ->where('name', $state) - ->first(); - - if (!$workGroupRecord) { - $set('work_group5_id_error', 'Work group does not exist for this plant in master.'); - return; - } - - $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + Forms\Components\TextInput::make('work_group5_actual_id') + ->label('Work Group Center 5') + ->hidden(fn (callable $get) => ! $get('work_group5_id_visible')) + ->default('') + ->required() + ->reactive() + ->afterStateHydrated(function (callable $set, $record) { + if ($record && $record->workGroup5) { + $set('work_group5_actual_id', $record->workGroup5->name); } }) - ->count(); + ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { + // $workGroup1Id = $get('work_group1_actual_id'); + $plantId = $get('plant_id'); + $lineName = $get('name'); - if ($existsInLines > 0) { - \Filament\Notifications\Notification::make() - ->title('Work Group Already Assigned') - ->body("The work group '{$state}' is already assigned to a line.") - ->danger() - ->send(); - $set('work_group5_actual_id', ''); - $set('work_group5_id', null); - return; - } - else - { - $set('work_group5_id_error', null); - $set('work_group5_id', $workGroupRecord->id); - } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group5_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group5_id_error')) - ->hintColor('danger'), + if ($state == null || trim($state) == '') { + $set('work_group5_id_error', null); + $set('work_group5_id', null); - Forms\Components\Hidden::make('work_group6_id'), + return; + } - Forms\Components\TextInput::make('work_group6_actual_id') - ->label('Work Group Center 6') - ->hidden(fn (callable $get) => !$get('work_group6_id_visible')) - ->default('') - ->required() - ->reactive() - ->afterStateHydrated(function (callable $set, $record) { - if ($record && $record->workGroup6) { - $set('work_group6_actual_id', $record->workGroup6->name); - } - }) - ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); - $plantId = $get('plant_id'); - $lineName = $get('name'); + $set('work_group5_id_error', null); + $set('work_group5_id', null); - if ($state == null || trim($state) == '') { - $set('work_group6_id_error', null); - $set('work_group6_id', null); - return; - } + if (! $plantId) { + $set('work_group5_id_error', 'Invalid plant name.'); - $set('work_group6_id_error', null); - $set('work_group6_id', null); + return; + } - if (!$plantId) { - $set('work_group6_id_error', 'Invalid plant name.'); - return; - } + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); - $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) - ->where('name', $state) - ->first(); + if (! $workGroupRecord) { + $set('work_group5_id_error', 'Work group does not exist for this plant in master.'); - if (!$workGroupRecord) { - $set('work_group6_id_error', 'Work group does not exist for this plant in master.'); - return; - } + return; + } - $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + $existsInLines = Line::where('plant_id', $plantId) + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); + + if ($existsInLines > 0) { + \Filament\Notifications\Notification::make() + ->title('Work Group Already Assigned') + ->body("The work group '{$state}' is already assigned to a line.") + ->danger() + ->send(); + $set('work_group5_actual_id', ''); + $set('work_group5_id', null); + + return; + } else { + $set('work_group5_id_error', null); + $set('work_group5_id', $workGroupRecord->id); } }) - ->count(); + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group5_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group5_id_error')) + ->hintColor('danger'), - if ($existsInLines > 0) { - \Filament\Notifications\Notification::make() - ->title('Work Group Already Assigned') - ->body("The work group '{$state}' is already assigned to a line.") - ->danger() - ->send(); - $set('work_group6_actual_id', ''); - $set('work_group6_id', null); - return; - } - else - { - $set('work_group6_id_error', null); - $set('work_group6_id', $workGroupRecord->id); - } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group6_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group6_id_error')) - ->hintColor('danger'), + Forms\Components\Hidden::make('work_group6_id'), - Forms\Components\Hidden::make('work_group7_id'), - - Forms\Components\TextInput::make('work_group7_actual_id') - ->label('Work Group Center 7') - ->hidden(fn (callable $get) => !$get('work_group7_id_visible')) - ->default('') - ->required() - ->reactive() - ->afterStateHydrated(function (callable $set, $record) { - if ($record && $record->workGroup7) { - $set('work_group7_actual_id', $record->workGroup7->name); - } - }) - ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); - $plantId = $get('plant_id'); - $lineName = $get('name'); - - if ($state == null || trim($state) == '') { - $set('work_group7_id_error', null); - $set('work_group7_id', null); - return; - } - - $set('work_group7_id_error', null); - $set('work_group7_id', null); - - if (!$plantId) { - $set('work_group7_id_error', 'Invalid plant name.'); - return; - } - - $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) - ->where('name', $state) - ->first(); - - if (!$workGroupRecord) { - $set('work_group7_id_error', 'Work group does not exist for this plant in master.'); - return; - } - - $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + Forms\Components\TextInput::make('work_group6_actual_id') + ->label('Work Group Center 6') + ->hidden(fn (callable $get) => ! $get('work_group6_id_visible')) + ->default('') + ->required() + ->reactive() + ->afterStateHydrated(function (callable $set, $record) { + if ($record && $record->workGroup6) { + $set('work_group6_actual_id', $record->workGroup6->name); } }) - ->count(); + ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { + // $workGroup1Id = $get('work_group1_actual_id'); + $plantId = $get('plant_id'); + $lineName = $get('name'); - if ($existsInLines > 0) { - \Filament\Notifications\Notification::make() - ->title('Work Group Already Assigned') - ->body("The work group '{$state}' is already assigned to a line.") - ->danger() - ->send(); - $set('work_group7_actual_id', ''); - $set('work_group7_id', null); - return; - } - else - { - $set('work_group7_id_error', null); - $set('work_group7_id', $workGroupRecord->id); - } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group7_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group7_id_error')) - ->hintColor('danger'), + if ($state == null || trim($state) == '') { + $set('work_group6_id_error', null); + $set('work_group6_id', null); - Forms\Components\Hidden::make('work_group8_id'), + return; + } - Forms\Components\TextInput::make('work_group8_actual_id') - ->label('Work Group Center 8') - ->hidden(fn (callable $get) => !$get('work_group8_id_visible')) - ->default('') - ->required() - ->reactive() - ->afterStateHydrated(function (callable $set, $record) { - if ($record && $record->workGroup8) { - $set('work_group8_actual_id', $record->workGroup8->name); - } - }) - ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); - $plantId = $get('plant_id'); - $lineName = $get('name'); + $set('work_group6_id_error', null); + $set('work_group6_id', null); - if ($state == null || trim($state) == '') { - $set('work_group8_id_error', null); - $set('work_group8_id', null); - return; - } + if (! $plantId) { + $set('work_group6_id_error', 'Invalid plant name.'); - $set('work_group8_id_error', null); - $set('work_group8_id', null); + return; + } - if (!$plantId) { - $set('work_group8_id_error', 'Invalid plant name.'); - return; - } + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); - $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) - ->where('name', $state) - ->first(); + if (! $workGroupRecord) { + $set('work_group6_id_error', 'Work group does not exist for this plant in master.'); - if (!$workGroupRecord) { - $set('work_group8_id_error', 'Work group does not exist for this plant in master.'); - return; - } + return; + } - $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + $existsInLines = Line::where('plant_id', $plantId) + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); + + if ($existsInLines > 0) { + \Filament\Notifications\Notification::make() + ->title('Work Group Already Assigned') + ->body("The work group '{$state}' is already assigned to a line.") + ->danger() + ->send(); + $set('work_group6_actual_id', ''); + $set('work_group6_id', null); + + return; + } else { + $set('work_group6_id_error', null); + $set('work_group6_id', $workGroupRecord->id); } }) - ->count(); + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group6_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group6_id_error')) + ->hintColor('danger'), - if ($existsInLines > 0) { - \Filament\Notifications\Notification::make() - ->title('Work Group Already Assigned') - ->body("The work group '{$state}' is already assigned to a line.") - ->danger() - ->send(); - $set('work_group8_actual_id', ''); - $set('work_group8_id', null); - return; - } - else - { - $set('work_group8_id_error', null); - $set('work_group8_id', $workGroupRecord->id); - } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group8_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group8_id_error')) - ->hintColor('danger'), + Forms\Components\Hidden::make('work_group7_id'), - Forms\Components\Hidden::make('work_group9_id'), - - Forms\Components\TextInput::make('work_group9_actual_id') - ->label('Work Group Center 9') - ->hidden(fn (callable $get) => !$get('work_group9_id_visible')) - ->default('') - ->required() - ->reactive() - ->afterStateHydrated(function (callable $set, $record) { - if ($record && $record->workGroup9) { - $set('work_group9_actual_id', $record->workGroup9->name); - } - }) - ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); - $plantId = $get('plant_id'); - $lineName = $get('name'); - - if ($state == null || trim($state) == '') { - $set('work_group9_id_error', null); - $set('work_group9_id', null); - return; - } - - $set('work_group9_id_error', null); - $set('work_group9_id', null); - - if (!$plantId) { - $set('work_group9_id_error', 'Invalid plant name.'); - return; - } - - $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) - ->where('name', $state) - ->first(); - - if (!$workGroupRecord) { - $set('work_group9_id_error', 'Work group does not exist for this plant in master.'); - return; - } - - $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + Forms\Components\TextInput::make('work_group7_actual_id') + ->label('Work Group Center 7') + ->hidden(fn (callable $get) => ! $get('work_group7_id_visible')) + ->default('') + ->required() + ->reactive() + ->afterStateHydrated(function (callable $set, $record) { + if ($record && $record->workGroup7) { + $set('work_group7_actual_id', $record->workGroup7->name); } }) - ->count(); + ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { + // $workGroup1Id = $get('work_group1_actual_id'); + $plantId = $get('plant_id'); + $lineName = $get('name'); - if ($existsInLines > 0) { - \Filament\Notifications\Notification::make() - ->title('Work Group Already Assigned') - ->body("The work group '{$state}' is already assigned to a line.") - ->danger() - ->send(); - $set('work_group9_actual_id', ''); - $set('work_group9_id', null); - return; - } - else - { - $set('work_group9_id_error', null); - $set('work_group9_id', $workGroupRecord->id); - } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group9_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group9_id_error')) - ->hintColor('danger'), + if ($state == null || trim($state) == '') { + $set('work_group7_id_error', null); + $set('work_group7_id', null); - Forms\Components\Hidden::make('work_group10_id'), + return; + } - Forms\Components\TextInput::make('work_group10_actual_id') - ->label('Work Group Center 10') - ->hidden(fn (callable $get) => !$get('work_group10_id_visible')) - ->default('') - ->required() - ->reactive() - ->afterStateHydrated(function (callable $set, $record) { - if ($record && $record->workGroup10) { - $set('work_group10_actual_id', $record->workGroup10->name); - } - }) - ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { - // $workGroup1Id = $get('work_group1_actual_id'); - $plantId = $get('plant_id'); - $lineName = $get('name'); + $set('work_group7_id_error', null); + $set('work_group7_id', null); - if ($state == null || trim($state) == '') { - $set('work_group10_id_error', null); - $set('work_group10_id', null); - return; - } + if (! $plantId) { + $set('work_group7_id_error', 'Invalid plant name.'); - $set('work_group10_id_error', null); - $set('work_group10_id', null); + return; + } - if (!$plantId) { - $set('work_group10_id_error', 'Invalid plant name.'); - return; - } + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); - $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) - ->where('name', $state) - ->first(); + if (! $workGroupRecord) { + $set('work_group7_id_error', 'Work group does not exist for this plant in master.'); - if (!$workGroupRecord) { - $set('work_group10_id_error', 'Work group does not exist for this plant in master.'); - return; - } + return; + } - $existsInLines = Line::where('plant_id', $plantId) - ->where('name', '!=', $lineName) // Exclude current line - ->where(function ($query) use ($workGroupRecord) { - for ($i = 1; $i <= 10; $i++) { - $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + $existsInLines = Line::where('plant_id', $plantId) + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); + + if ($existsInLines > 0) { + \Filament\Notifications\Notification::make() + ->title('Work Group Already Assigned') + ->body("The work group '{$state}' is already assigned to a line.") + ->danger() + ->send(); + $set('work_group7_actual_id', ''); + $set('work_group7_id', null); + + return; + } else { + $set('work_group7_id_error', null); + $set('work_group7_id', $workGroupRecord->id); } }) - ->count(); + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group7_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group7_id_error')) + ->hintColor('danger'), - if ($existsInLines > 0) { - \Filament\Notifications\Notification::make() - ->title('Work Group Already Assigned') - ->body("The work group '{$state}' is already assigned to a line.") - ->danger() - ->send(); - $set('work_group10_actual_id', ''); - $set('work_group10_id', null); - return; - } - else - { - $set('work_group10_id_error', null); - $set('work_group10_id', $workGroupRecord->id); - } - }) - ->extraAttributes(fn ($get) => [ - 'class' => $get('work_group10_id_error') ? 'border-red-500' : '', - ]) - ->hint(fn ($get) => $get('work_group10_id_error')) - ->hintColor('danger'), + Forms\Components\Hidden::make('work_group8_id'), - // Forms\Components\TextInput::make('group_work_center') - // ->label('Group Work Center') - // ->placeholder('Scan the valid Group Work Center'), - Forms\Components\TextInput::make('id') - ->hidden() - ->readOnly(), + Forms\Components\TextInput::make('work_group8_actual_id') + ->label('Work Group Center 8') + ->hidden(fn (callable $get) => ! $get('work_group8_id_visible')) + ->default('') + ->required() + ->reactive() + ->afterStateHydrated(function (callable $set, $record) { + if ($record && $record->workGroup8) { + $set('work_group8_actual_id', $record->workGroup8->name); + } + }) + ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { + // $workGroup1Id = $get('work_group1_actual_id'); + $plantId = $get('plant_id'); + $lineName = $get('name'); + + if ($state == null || trim($state) == '') { + $set('work_group8_id_error', null); + $set('work_group8_id', null); + + return; + } + + $set('work_group8_id_error', null); + $set('work_group8_id', null); + + if (! $plantId) { + $set('work_group8_id_error', 'Invalid plant name.'); + + return; + } + + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); + + if (! $workGroupRecord) { + $set('work_group8_id_error', 'Work group does not exist for this plant in master.'); + + return; + } + + $existsInLines = Line::where('plant_id', $plantId) + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); + + if ($existsInLines > 0) { + \Filament\Notifications\Notification::make() + ->title('Work Group Already Assigned') + ->body("The work group '{$state}' is already assigned to a line.") + ->danger() + ->send(); + $set('work_group8_actual_id', ''); + $set('work_group8_id', null); + + return; + } else { + $set('work_group8_id_error', null); + $set('work_group8_id', $workGroupRecord->id); + } + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group8_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group8_id_error')) + ->hintColor('danger'), + + Forms\Components\Hidden::make('work_group9_id'), + + Forms\Components\TextInput::make('work_group9_actual_id') + ->label('Work Group Center 9') + ->hidden(fn (callable $get) => ! $get('work_group9_id_visible')) + ->default('') + ->required() + ->reactive() + ->afterStateHydrated(function (callable $set, $record) { + if ($record && $record->workGroup9) { + $set('work_group9_actual_id', $record->workGroup9->name); + } + }) + ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { + // $workGroup1Id = $get('work_group1_actual_id'); + $plantId = $get('plant_id'); + $lineName = $get('name'); + + if ($state == null || trim($state) == '') { + $set('work_group9_id_error', null); + $set('work_group9_id', null); + + return; + } + + $set('work_group9_id_error', null); + $set('work_group9_id', null); + + if (! $plantId) { + $set('work_group9_id_error', 'Invalid plant name.'); + + return; + } + + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); + + if (! $workGroupRecord) { + $set('work_group9_id_error', 'Work group does not exist for this plant in master.'); + + return; + } + + $existsInLines = Line::where('plant_id', $plantId) + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); + + if ($existsInLines > 0) { + \Filament\Notifications\Notification::make() + ->title('Work Group Already Assigned') + ->body("The work group '{$state}' is already assigned to a line.") + ->danger() + ->send(); + $set('work_group9_actual_id', ''); + $set('work_group9_id', null); + + return; + } else { + $set('work_group9_id_error', null); + $set('work_group9_id', $workGroupRecord->id); + } + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group9_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group9_id_error')) + ->hintColor('danger'), + + Forms\Components\Hidden::make('work_group10_id'), + + Forms\Components\TextInput::make('work_group10_actual_id') + ->label('Work Group Center 10') + ->hidden(fn (callable $get) => ! $get('work_group10_id_visible')) + ->default('') + ->required() + ->reactive() + ->afterStateHydrated(function (callable $set, $record) { + if ($record && $record->workGroup10) { + $set('work_group10_actual_id', $record->workGroup10->name); + } + }) + ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { + // $workGroup1Id = $get('work_group1_actual_id'); + $plantId = $get('plant_id'); + $lineName = $get('name'); + + if ($state == null || trim($state) == '') { + $set('work_group10_id_error', null); + $set('work_group10_id', null); + + return; + } + + $set('work_group10_id_error', null); + $set('work_group10_id', null); + + if (! $plantId) { + $set('work_group10_id_error', 'Invalid plant name.'); + + return; + } + + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); + + if (! $workGroupRecord) { + $set('work_group10_id_error', 'Work group does not exist for this plant in master.'); + + return; + } + + $existsInLines = Line::where('plant_id', $plantId) + ->where('name', '!=', $lineName) // Exclude current line + ->where(function ($query) use ($workGroupRecord) { + for ($i = 1; $i <= 10; $i++) { + $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + } + }) + ->count(); + + if ($existsInLines > 0) { + \Filament\Notifications\Notification::make() + ->title('Work Group Already Assigned') + ->body("The work group '{$state}' is already assigned to a line.") + ->danger() + ->send(); + $set('work_group10_actual_id', ''); + $set('work_group10_id', null); + + return; + } else { + $set('work_group10_id_error', null); + $set('work_group10_id', $workGroupRecord->id); + } + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group10_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group10_id_error')) + ->hintColor('danger'), + + // Forms\Components\TextInput::make('group_work_center') + // ->label('Group Work Center') + // ->placeholder('Scan the valid Group Work Center'), + Forms\Components\TextInput::make('id') + ->hidden() + ->readOnly(), ]) ->columns(2), ]); @@ -984,6 +1038,7 @@ class LineResource extends Resource $paginator = $livewire->getTableRecords(); $perPage = method_exists($paginator, 'perPage') ? $paginator->perPage() : 10; $currentPage = method_exists($paginator, 'currentPage') ? $paginator->currentPage() : 1; + return ($currentPage - 1) * $perPage + $rowLoop->iteration; }), Tables\Columns\TextColumn::make('plant.name') @@ -991,6 +1046,11 @@ class LineResource extends Resource ->alignCenter() ->sortable() ->searchable(), + Tables\Columns\TextColumn::make('block.name') + ->label('Block') + ->alignCenter() + ->sortable() + ->searchable(), Tables\Columns\TextColumn::make('name') ->label('Line') ->alignCenter() @@ -1142,14 +1202,14 @@ class LineResource extends Resource ->label('Import Lines') ->color('warning') ->importer(LineImporter::class) - ->visible(function() { + ->visible(function () { return Filament::auth()->user()->can('view import line'); }), ExportAction::make() ->label('Export Lines') ->color('warning') ->exporter(LineExporter::class) - ->visible(function() { + ->visible(function () { return Filament::auth()->user()->can('view export line'); }), ]);