diff --git a/app/Filament/Resources/EbReadingResource.php b/app/Filament/Resources/EbReadingResource.php index 4ed9256..038b518 100644 --- a/app/Filament/Resources/EbReadingResource.php +++ b/app/Filament/Resources/EbReadingResource.php @@ -5,23 +5,22 @@ namespace App\Filament\Resources; use App\Filament\Exports\EbReadingExporter; use App\Filament\Imports\EbReadingImporter; use App\Filament\Resources\EbReadingResource\Pages; -use App\Filament\Resources\EbReadingResource\RelationManagers; use App\Models\EbReading; use App\Models\Plant; +use Filament\Facades\Filament; use Filament\Forms; +use Filament\Forms\Components\DateTimePicker; +use Filament\Forms\Components\Select; +use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; +use Filament\Tables\Actions\ExportAction; +use Filament\Tables\Actions\ImportAction; +use Filament\Tables\Filters\Filter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; -use Filament\Tables\Actions\ImportAction; -use Filament\Tables\Actions\ExportAction; -use Filament\Facades\Filament; -use Filament\Tables\Filters\Filter; -use Filament\Forms\Components\Select; -use Filament\Forms\Components\TextInput; -use Filament\Forms\Components\DateTimePicker; class EbReadingResource extends Resource { @@ -39,6 +38,7 @@ class EbReadingResource extends Resource ->relationship('plant', 'name') ->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(); }) ->required(), @@ -154,6 +154,7 @@ class EbReadingResource 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') @@ -334,6 +335,7 @@ class EbReadingResource extends Resource // }) ->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(); }) ->reactive() @@ -359,19 +361,25 @@ class EbReadingResource extends Resource return $query->whereRaw('1 = 0'); } - if (!empty($data['Plant'])) { + if (! empty($data['Plant'])) { $query->where('plant_id', $data['Plant']); + } else { + $userHas = Filament::auth()->user()->plant_id; + + if ($userHas && strlen($userHas) > 0) { + return $query->whereRaw('1 = 0'); + } } - if (!empty($data['created_from'])) { + if (! empty($data['created_from'])) { $query->where('created_at', '>=', $data['created_from']); } - if (!empty($data['created_to'])) { + if (! empty($data['created_to'])) { $query->where('created_at', '<=', $data['created_to']); } - if (!empty($data['electrician_sign'])) { + if (! empty($data['electrician_sign'])) { $query->where('electrician_sign', $data['electrician_sign']); } @@ -379,24 +387,30 @@ class EbReadingResource extends Resource ->indicateUsing(function (array $data) { $indicators = []; - if (!empty($data['Plant'])) { - $indicators[] = 'Plant: ' . Plant::where('id', $data['Plant'])->value('name'); + if (! empty($data['Plant'])) { + $indicators[] = 'Plant: '.Plant::where('id', $data['Plant'])->value('name'); + } else { + $userHas = Filament::auth()->user()->plant_id; + + if ($userHas && strlen($userHas) > 0) { + return 'Plant: Choose plant to filter records.'; + } } - if (!empty($data['electrician_sign'])) { - $indicators[] = 'Created By: ' . $data['electrician_sign']; + if (! empty($data['electrician_sign'])) { + $indicators[] = 'Created By: '.$data['electrician_sign']; } - if (!empty($data['created_from'])) { - $indicators[] = 'From: ' . $data['created_from']; + if (! empty($data['created_from'])) { + $indicators[] = 'From: '.$data['created_from']; } - if (!empty($data['created_to'])) { - $indicators[] = 'To: ' . $data['created_to']; + if (! empty($data['created_to'])) { + $indicators[] = 'To: '.$data['created_to']; } return $indicators; - }) + }), ]) ->filtersFormMaxHeight('280px') ->actions([ @@ -415,14 +429,14 @@ class EbReadingResource extends Resource ->label('Import EB Readings') ->color('warning') ->importer(EbReadingImporter::class) - ->visible(function() { + ->visible(function () { return Filament::auth()->user()->can('view import eb reading'); }), ExportAction::make() ->label('Export EB Readings') ->color('warning') ->exporter(EbReadingExporter::class) - ->visible(function() { + ->visible(function () { return Filament::auth()->user()->can('view export eb reading'); }), ]);