1
0
forked from poc/pds

Added Line column with its validation and Line filter func. and Row Number

This commit is contained in:
dhanabalan
2025-05-28 17:03:00 +05:30
parent f6d7394ebd
commit fd6aea01ed

View File

@@ -7,6 +7,7 @@ use App\Filament\Imports\QualityValidationImporter;
use App\Filament\Resources\QualityValidationResource\Pages; use App\Filament\Resources\QualityValidationResource\Pages;
use App\Filament\Resources\QualityValidationResource\RelationManagers; use App\Filament\Resources\QualityValidationResource\RelationManagers;
use App\Models\Item; use App\Models\Item;
use App\Models\Line;
use App\Models\Plant; use App\Models\Plant;
use App\Models\QualityValidation; use App\Models\QualityValidation;
use App\Models\StickerMaster; use App\Models\StickerMaster;
@@ -50,12 +51,62 @@ class QualityValidationResource extends Resource
Forms\Components\Select::make('plant_id') Forms\Components\Select::make('plant_id')
->relationship('plant', 'name') ->relationship('plant', 'name')
->reactive() ->reactive()
->afterStateUpdated(fn (callable $set) => [ ->afterStateUpdated(function (callable $set, callable $get) {
$set('item_id', null), $set('item_id', null);
$set('validationError', null), $set('line_id', null);
]) $set('production_order', null);
$pId = $get('plant_id');
if (!$pId) {
$set('pqPlantError', 'Please select a plant first.');
} else {
$set('pqPlantError', null);
}
$pId = $get('line_id');
if (!$pId) {
$set('pqLineError', null);
}
})
->required() ->required()
->default(fn () => request()->query('plant_id')), ->default(fn () => request()->query('plant_id'))
->extraAttributes(fn ($get) => [
'class' => $get('pqPlantError') ? 'border-red-500' : '',
])
->hint(fn ($get) => $get('pqPlantError') ? $get('pqPlantError') : null)
->hintColor('danger'),
Forms\Components\Select::make('line_id')
->relationship('line', titleAttribute: 'name')
->reactive()
->required()
->options(function (callable $get) {
$plantId = $get('plant_id');
if (!$plantId)
{
return [];
}
return Line::where('plant_id', $plantId)
->where('type', 'FG Line') // Filter by type
->pluck('name', 'id')
->toArray();
})
->afterStateUpdated(function (callable $set, callable $get) {
$set('item_id', null);
$set('production_order', null);
$pId = $get('line_id');
if (!$pId) {
$set('pqLineError', 'Please select a line.');
} else {
$set('pqLineError', null);
}
})
->extraAttributes(fn ($get) => [
'class' => $get('pqLineError') ? 'border-red-500' : '',
])
->hint(fn ($get) => $get('pqLineError') ? $get('pqLineError') : null)
->hintColor('danger'),
Forms\Components\Hidden::make('sticker_master_id') Forms\Components\Hidden::make('sticker_master_id')
// ->relationship('stickerMaster', 'id') // ->relationship('stickerMaster', 'id')
->required(), ->required(),
@@ -111,6 +162,23 @@ class QualityValidationResource extends Resource
->live() ->live()
->afterStateUpdated(function (callable $set, callable $get, ?string $state) { ->afterStateUpdated(function (callable $set, callable $get, ?string $state) {
$pId = $get('line_id');
if (!$pId) {
$set('pqLineError', 'Please select a line.');
} else {
$set('pqLineError', null);
}
$pOrder = $get('production_order');
if (!$pOrder)
{
$set('productionError', 'Production Order cant be empty.');
}
else
{
$set('productionError', null);
}
$serialFields = [ $serialFields = [
'serial_number_motor_qr', 'serial_number_pump_qr', 'serial_number_pumpset_qr', 'pack_slip_motor_qr', 'pack_slip_pump_qr', 'pack_slip_pumpset_qr', 'name_plate_motor_qr', 'name_plate_pump_qr', 'name_plate_pumpset_qr', 'tube_sticker_motor_qr', 'tube_sticker_pump_qr', 'tube_sticker_pumpset_qr', 'warranty_card_qr' 'serial_number_motor_qr', 'serial_number_pump_qr', 'serial_number_pumpset_qr', 'pack_slip_motor_qr', 'pack_slip_pump_qr', 'pack_slip_pumpset_qr', 'name_plate_motor_qr', 'name_plate_pump_qr', 'name_plate_pumpset_qr', 'tube_sticker_motor_qr', 'tube_sticker_pump_qr', 'tube_sticker_pumpset_qr', 'warranty_card_qr'
]; ];
@@ -1894,21 +1962,37 @@ class QualityValidationResource extends Resource
return $table return $table
->query(QualityValidation::query()) ->query(QualityValidation::query())
->columns([ ->columns([
Tables\Columns\TextColumn::make('id') // Tables\Columns\TextColumn::make('id')
->label('ID') // ->label('ID')
->numeric() // ->numeric()
->sortable(), // ->sortable(),
Tables\Columns\TextColumn::make('No.')
->label('No.')
->getStateUsing(function ($record, $livewire, $column, $rowLoop) {
$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') Tables\Columns\TextColumn::make('plant.name')
->label('Plant') ->label('Plant')
->alignCenter()
->sortable(),
Tables\Columns\TextColumn::make('line.name')
->label('Line')
->alignCenter()
->sortable(), ->sortable(),
Tables\Columns\TextColumn::make('production_order') Tables\Columns\TextColumn::make('production_order')
->label('Production Order') ->label('Production Order')
->alignCenter()
->sortable(), ->sortable(),
Tables\Columns\TextColumn::make('serial_number') Tables\Columns\TextColumn::make('serial_number')
->label('Serial Number') ->label('Serial Number')
->alignCenter()
->sortable(), ->sortable(),
Tables\Columns\TextColumn::make('stickerMaster.item.code') Tables\Columns\TextColumn::make('stickerMaster.item.code')
->label('Item Code') ->label('Item Code')
->alignCenter()
->sortable(), ->sortable(),
Tables\Columns\TextColumn::make('uom') Tables\Columns\TextColumn::make('uom')
->label('Unit of Measure') ->label('Unit of Measure')
@@ -1992,20 +2076,23 @@ class QualityValidationResource extends Resource
->sortable(), ->sortable(),
Tables\Columns\TextColumn::make('sap_msg_description') Tables\Columns\TextColumn::make('sap_msg_description')
->label('SAP Message Description') ->label('SAP Message Description')
->alignCenter()
->sortable(), ->sortable(),
Tables\Columns\TextColumn::make('created_at') Tables\Columns\TextColumn::make('created_at')
->label('Created At') ->label('Created At')
->dateTime() ->dateTime()
->sortable() ->alignCenter()
->toggleable(isToggledHiddenByDefault: true), ->sortable(),
Tables\Columns\TextColumn::make('updated_at') Tables\Columns\TextColumn::make('updated_at')
->label('Updated At') ->label('Updated At')
->dateTime() ->dateTime()
->alignCenter()
->sortable() ->sortable()
->toggleable(isToggledHiddenByDefault: true), ->toggleable(isToggledHiddenByDefault: true),
Tables\Columns\TextColumn::make('deleted_at') Tables\Columns\TextColumn::make('deleted_at')
->label('Deleted At') ->label('Deleted At')
->dateTime() ->dateTime()
->alignCenter()
->sortable() ->sortable()
->toggleable(isToggledHiddenByDefault: true), ->toggleable(isToggledHiddenByDefault: true),
]) ])
@@ -2027,6 +2114,26 @@ class QualityValidationResource extends Resource
$set('sticker_master_id', null); $set('sticker_master_id', null);
$set('sap_msg_status', null); $set('sap_msg_status', null);
}), }),
Select::make('Line')
->label('Select Line')
->nullable()
->options(function (callable $get) {
$plantId = $get('Plant');
if (!$plantId)
{
return [];
}
return Line::where('plant_id', $plantId)
->where('type', 'FG Line') // Filter by type
->pluck('name', 'id')
->toArray();
})
->reactive()
->afterStateUpdated(function ($state, callable $set, callable $get) {
$set('sticker_master_id', null);
$set('sap_msg_status', null);
}),
TextInput::make('production_order') TextInput::make('production_order')
->label('Production Order') ->label('Production Order')
->placeholder('Enter Production Order'), ->placeholder('Enter Production Order'),
@@ -2083,6 +2190,10 @@ class QualityValidationResource extends Resource
$query->where('plant_id', $data['Plant']); $query->where('plant_id', $data['Plant']);
} }
if (!empty($data['Line'])) {
$query->where('line_id', $data['Line']);
}
if (!empty($data['production_order'])) { if (!empty($data['production_order'])) {
$query->where('production_order', 'like', '%' . $data['production_order'] . '%'); $query->where('production_order', 'like', '%' . $data['production_order'] . '%');
} }
@@ -2120,6 +2231,10 @@ class QualityValidationResource extends Resource
$indicators[] = 'Plant: ' . Plant::where('id', $data['Plant'])->value('name'); $indicators[] = 'Plant: ' . Plant::where('id', $data['Plant'])->value('name');
} }
if (!empty($data['Line'])) {
$indicators[] = 'Line: ' . Line::where('id', $data['Line'])->value('name');
}
if (!empty($data['production_order'])) { if (!empty($data['production_order'])) {
$indicators[] = 'Production Order: ' . $data['production_order']; $indicators[] = 'Production Order: ' . $data['production_order'];
} }