diff --git a/app/Filament/Resources/LineResource.php b/app/Filament/Resources/LineResource.php index 0dacfa5..dadc460 100644 --- a/app/Filament/Resources/LineResource.php +++ b/app/Filament/Resources/LineResource.php @@ -7,6 +7,7 @@ use App\Filament\Imports\LineImporter; use App\Filament\Resources\LineResource\Pages; use App\Filament\Resources\LineResource\RelationManagers; use App\Models\Line; +use App\Models\WorkGroupMaster; use Filament\Facades\Filament; use Filament\Forms; use Filament\Forms\Form; @@ -175,12 +176,770 @@ class LineResource extends Resource ]) ->hint(fn ($get) => $get('lTypeError') ? $get('lTypeError') : null) ->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(), + + Forms\Components\TextInput::make('no_of_operation') + ->label('No of Operation') + ->required() + ->numeric() + ->reactive() + ->minValue(0) + ->maxValue(10) + ->placeholder('Scan the valid No Of Operatrion') + ->afterStateUpdated(function (callable $set, callable $get, ?string $state) { + $partValidationColumns = [ + 'work_group1_id', 'work_group2_id', 'work_group3_id', 'work_group4_id', + 'work_group5_id', 'work_group6_id', 'work_group7_id', 'work_group8_id', + 'work_group9_id', 'work_group10_id', + ]; + + foreach ($partValidationColumns as $column) { + $set($column . '_visible', false); + $set($column, null); + } + + if (is_numeric($state) && $state > 0) { + for ($i = 1; $i <= (int) $state; $i++) { + $set("work_group{$i}_id_visible", true); + } + } + }) + ->afterStateHydrated(function (callable $set, $state) { + for ($i = 1; $i <= 10; $i++) { + $set("work_group{$i}_id_visible", $state >= $i); + } + }), + + Forms\Components\Hidden::make('work_group1_id'), + + Forms\Components\TextInput::make('work_group1_actual_id') + ->label('Work Group Center 1') + ->hidden(fn (callable $get) => !$get('work_group1_id_visible')) + ->default('') + ->reactive() + ->required() + ->afterStateHydrated(function (callable $set, $record) { + if ($record && $record->workGroup1) { + $set('work_group1_actual_id', $record->workGroup1->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_group1_id_error', null); + $set('work_group1_id', null); + return; + } + + $set('work_group1_id_error', null); + $set('work_group1_id', null); + + if (!$plantId) { + $set('work_group1_id_error', 'Invalid plant name.'); + return; + } + + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); + + if (!$workGroupRecord) { + $set('work_group1_id_error', 'Work group does not exist for this plant in master.'); + return; + } + + // $existsInLines = Line::where(function ($query) use ($workGroupRecord) { + // for ($i = 1; $i <= 10; $i++) { + // $query->orWhere("work_group{$i}_id", $workGroupRecord->id); + // } + // })->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(); + + 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_group1_actual_id', ''); + $set('work_group1_id', null); + return; + } + 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'), + + 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')) + ->default('') + ->required() + ->reactive() + ->afterStateHydrated(function (callable $set, $record) { + if ($record && $record->workGroup2) { + $set('work_group2_actual_id', $record->workGroup2->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_group2_id_error', null); + $set('work_group2_id', null); + return; + } + + $set('work_group2_id_error', null); + $set('work_group2_id', null); + + if (!$plantId) { + $set('work_group2_id_error', 'Invalid plant name.'); + return; + } + + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); + + 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(); + + 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_group2_actual_id', ''); + $set('work_group2_id', null); + return; + } + 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'), + + 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')) + ->default('') + ->required() + ->reactive() + ->afterStateHydrated(function (callable $set, $record) { + if ($record && $record->workGroup3) { + $set('work_group3_actual_id', $record->workGroup3->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_group3_id_error', null); + $set('work_group3_id', null); + return; + } + + $set('work_group3_id_error', null); + $set('work_group3_id', null); + + if (!$plantId) { + $set('work_group3_id_error', 'Invalid plant name.'); + return; + } + + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); + + 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(); + + 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_group3_actual_id', ''); + $set('work_group3_id', null); + return; + } + 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'), + + 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) { + 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'); + $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) { + $set('work_group4_id_error', 'Invalid plant name.'); + return; + } + + $workGroupRecord = WorkGroupMaster::where('plant_id', $plantId) + ->where('name', $state) + ->first(); + + 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(); + + 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_group4_actual_id', ''); + $set('work_group4_id', null); + return; + } + 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'), + + 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); + } + }) + ->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); + } + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group5_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group5_id_error')) + ->hintColor('danger'), + + Forms\Components\Hidden::make('work_group6_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); + } + }) + ->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_group6_id_error', null); + $set('work_group6_id', null); + return; + } + + $set('work_group6_id_error', null); + $set('work_group6_id', null); + + if (!$plantId) { + $set('work_group6_id_error', 'Invalid plant name.'); + return; + } + + $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.'); + 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_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_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); + } + }) + ->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); + } + }) + ->extraAttributes(fn ($get) => [ + 'class' => $get('work_group7_id_error') ? 'border-red-500' : '', + ]) + ->hint(fn ($get) => $get('work_group7_id_error')) + ->hintColor('danger'), + + Forms\Components\Hidden::make('work_group8_id'), + + 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), ]); @@ -217,8 +976,107 @@ class LineResource extends Resource ->alignCenter() ->sortable() ->searchable(), - Tables\Columns\TextColumn::make('group_work_center') - ->label('Group Work Center') + Tables\Columns\TextColumn::make('no_of_operation') + ->label('No of Operation') + ->alignCenter() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup1.name') + ->label('Work Group Center 1') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup1.operation_number') + ->label('Operation Number 1') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup2.name') + ->label('Work Group Center 2') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup2.operation_number') + ->label('Operation Number 2') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup3.name') + ->label('Work Group Center 3') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup3.operation_number') + ->label('Operation Number 3') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup4.name') + ->label('Work Group Center 4') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup4.operation_number') + ->label('Operation Number 4') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup5.name') + ->label('Work Group Center 5') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup5.operation_number') + ->label('Operation Number 5') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup6.name') + ->label('Work Group Center 6') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup6.operation_number') + ->label('Operation Number 6') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup7.name') + ->label('Work Group Center 7') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup7.operation_number') + ->label('Operation Number 7') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup8.name') + ->label('Work Group Center 8') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup8.operation_number') + ->label('Operation Number 8') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup9.name') + ->label('Work Group Center 9') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup9.operation_number') + ->label('Operation Number 9') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup10.name') + ->label('Work Group Center 10') + ->alignCenter() + ->sortable() + ->searchable(), + Tables\Columns\TextColumn::make('workGroup10.operation_number') + ->label('Operation Number 10') ->alignCenter() ->sortable() ->searchable(),