diff --git a/app/Filament/Exports/StickerMasterExporter.php b/app/Filament/Exports/StickerMasterExporter.php index b78bcd8..493bc4d 100644 --- a/app/Filament/Exports/StickerMasterExporter.php +++ b/app/Filament/Exports/StickerMasterExporter.php @@ -28,6 +28,10 @@ class StickerMasterExporter extends Exporter ->label('PLANT CODE'), ExportColumn::make('item.code') ->label('ITEM CODE'), + ExportColumn::make('item.description') + ->label('ITEM DESCRIPTION'), + ExportColumn::make('item.uom') + ->label('UNIT OF MEASURE'), ExportColumn::make('serial_number_motor') ->label('SERIAL NUMBER MOTOR'), ExportColumn::make('serial_number_pump') diff --git a/app/Filament/Resources/ItemResource.php b/app/Filament/Resources/ItemResource.php index 946777e..22511f0 100644 --- a/app/Filament/Resources/ItemResource.php +++ b/app/Filament/Resources/ItemResource.php @@ -48,6 +48,7 @@ class ItemResource extends Resource Section::make('') ->schema([ Forms\Components\Select::make('plant_id') + ->label('Plant Name') ->relationship('plant', 'name') ->required() // ->preload() @@ -191,7 +192,7 @@ class ItemResource extends Resource return ($currentPage - 1) * $perPage + $rowLoop->iteration; }), Tables\Columns\TextColumn::make('plant.name') - ->label('Plant') + ->label('Plant Name') ->alignCenter() ->sortable() ->searchable(), @@ -230,8 +231,7 @@ class ItemResource extends Resource ->label('Updated At') ->dateTime() ->alignCenter() - ->sortable() - ->toggleable(isToggledHiddenByDefault: true), + ->sortable(), Tables\Columns\TextColumn::make('deleted_at') ->label('Deleted At') ->dateTime() @@ -246,13 +246,21 @@ class ItemResource extends Resource ->label('Advanced Filters') ->form([ Select::make('Plant') - ->label('Select Plant') + ->label('Search by Plant Name') ->nullable() ->options(function (callable $get) { $userHas = Filament::auth()->user()->plant_id; - return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::orderBy('code')->pluck('name', 'id')->toArray(); + // return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::orderBy('code')->pluck('name', 'id')->toArray(); + if ($userHas && strlen($userHas) > 0) { + return Plant::where('id', $userHas)->pluck('name', 'id')->toArray(); + } else { + return Plant::whereHas('items', function ($query) { + $query->whereNotNull('id'); + })->orderBy('code')->pluck('name', 'id')->toArray(); + } }) + ->searchable() ->reactive() ->afterStateUpdated(function ($state, callable $set, callable $get): void { $set('code', null); @@ -319,11 +327,23 @@ class ItemResource extends Resource } if (! empty($data['uom'])) { - $query->where('uom', 'like', '%'.$data['uom'].'%'); + if ($data['uom'] == 'empty') { + $query->where(function ($q) { + $q->where('uom', '')->orWhereNull('uom'); + }); + } else { + $query->where('uom', 'like', '%'.$data['uom'].'%'); + } } if (! empty($data['category'])) { - $query->where('category', '%'.$data['category'].'%'); + if ($data['category'] == 'empty') { + $query->where(function ($q) { + $q->where('category', '')->orWhereNull('category'); + }); + } else { + $query->where('category', '%'.$data['category'].'%'); + } } if (! empty($data['created_from'])) { @@ -356,11 +376,11 @@ class ItemResource extends Resource } if (! empty($data['uom'])) { - $indicators[] = 'UOM: '.$data['uom']; + $indicators[] = ($data['uom'] == 'empty') ? "UOM: ''" : 'UOM: '.$data['uom']; } if (! empty($data['category'])) { - $indicators[] = 'Category: '.$data['category']; + $indicators[] = ($data['category'] == 'empty') ? "Category: ''" : 'Category: '.$data['category']; } if (! empty($data['created_from'])) { diff --git a/app/Filament/Resources/StickerMasterResource.php b/app/Filament/Resources/StickerMasterResource.php index 0801fa5..af1936c 100644 --- a/app/Filament/Resources/StickerMasterResource.php +++ b/app/Filament/Resources/StickerMasterResource.php @@ -49,7 +49,9 @@ class StickerMasterResource extends Resource return $form ->schema([ Forms\Components\Select::make('plant_id') + ->label('Plant Name') ->relationship('plant', 'name') + ->searchable() ->reactive() ->nullable() ->options(function (callable $get) { @@ -188,7 +190,7 @@ class StickerMasterResource extends Resource ->hintColor('danger'), Forms\Components\TextInput::make('item_description') - ->label('Description') + ->label('Item Description') ->required() ->afterStateHydrated(function ($component, $state, Get $get, Set $set) { if ($get('id')) { @@ -529,7 +531,7 @@ class StickerMasterResource extends Resource return ($currentPage - 1) * $perPage + $rowLoop->iteration; }), Tables\Columns\TextColumn::make('plant.name') - ->label('Plant') + ->label('Plant Name') ->alignCenter() ->sortable(), Tables\Columns\TextColumn::make('item.code') @@ -537,6 +539,18 @@ class StickerMasterResource extends Resource ->alignCenter() ->sortable() ->searchable(), + Tables\Columns\TextColumn::make('item.description') + ->label('Item Description') + ->alignCenter() + ->sortable() + ->searchable() + ->toggleable(isToggledHiddenByDefault: true), + Tables\Columns\TextColumn::make('item.uom') + ->label('Unit of Measure') + ->alignCenter() + ->sortable() + ->searchable() + ->toggleable(isToggledHiddenByDefault: true), Tables\Columns\CheckboxColumn::make('serial_number_motor') ->label('Serial Number Motor') ->disabled(true) @@ -692,12 +706,19 @@ class StickerMasterResource extends Resource ->label('Advanced Filters') ->form([ Select::make('Plant') - ->label('Select Plant') + ->label('Search by Plant Name') ->nullable() ->options(function (callable $get) { $userHas = Filament::auth()->user()->plant_id; - return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::orderBy('code')->pluck('name', 'id')->toArray(); + // return ($userHas && strlen($userHas) > 0) ? Plant::where('id', $userHas)->pluck('name', 'id')->toArray() : Plant::orderBy('code')->pluck('name', 'id')->toArray(); + if ($userHas && strlen($userHas) > 0) { + return Plant::where('id', $userHas)->pluck('name', 'id')->toArray(); + } else { + return Plant::whereHas('stickersMasters', function ($query) { + $query->whereNotNull('id'); + })->orderBy('code')->pluck('name', 'id')->toArray(); + } }) ->searchable() ->reactive()