Files
pos_heidiver/app/Filament/Resources/OjalPresillaResource/Pages/ListOjalPresillas.php
T
2026-02-04 20:22:02 -05:00

71 lines
2.3 KiB
PHP

<?php
namespace App\Filament\Resources\OjalPresillaResource\Pages;
use App\Filament\Resources\OjalPresillaResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
use Filament\Tables;
use Illuminate\Database\Eloquent\Model;
use Filament\Resources\Components\Tab;
class ListOjalPresillas extends ListRecords
{
protected static string $resource = OjalPresillaResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make()
->label('Crear'),
];
}
public function getTabs(): array
{
return [
'todos' => Tab::make('Todos')
->badge(
\App\Models\Ojal::count() + \App\Models\Prensilla::count()
),
'ojales' => Tab::make('Ojales')
->badge(\App\Models\Ojal::count())
->modifyQueryUsing(fn ($query) => $query),
'prensillas' => Tab::make('Prensillas')
->badge(\App\Models\Prensilla::count())
->modifyQueryUsing(fn ($query) => $query->whereRaw('1=0')), // Vacío por defecto
];
}
protected function getTableQuery(): ?\Illuminate\Database\Eloquent\Builder
{
$activeTab = $this->activeTab ?? 'todos';
// Siempre retornar ojales como base, pero ajustar qué se muestra
if ($activeTab === 'prensillas') {
// Para mostrar prensillas, necesitamos cambiar el modelo dinámicamente
// Por limitaciones de Filament, mantener ojales pero filtrar a ninguno
return \App\Models\Ojal::query()->whereRaw('1=0');
}
return \App\Models\Ojal::query();
}
public function getTableRecordUrlUsing(): ?\Closure
{
return function (Model $record): ?string {
// Determinar a qué recurso redirigir según el tipo
if ($record instanceof \App\Models\Ojal) {
return \App\Filament\Resources\OjalResource::getUrl('edit', ['record' => $record]);
} else {
return \App\Filament\Resources\PrensillaResource::getUrl('edit', ['record' => $record]);
}
};
}
}
return \App\Filament\Resources\PrensillaResource::getUrl('edit', ['record' => $record]);
}
};
}
}