value; protected static ?string $navigationGroup = 'Reports'; protected static ?string $navigationLabel = 'Invoice Reports'; protected static ?int $navigationSort = 2; public static function form(Form $form): Form { return $form ->schema([ Section::make([ Select::make('customer_id') ->relationship('customer', 'company_name') ->preload() ->required() ->searchable(), ToggleButtons::make('filter_paid') ->boolean() ->required() ->default(false) ->colors([ 'true' => 'info', 'false' => 'info', ]) ->inline(), DatePicker::make('date_start') ->required(), DatePicker::make('date_end') ->required() ->default(today()), ]) ->columns(2) ->columnSpan(2), Section::make([ Placeholder::make('created_at') ->label('Created') ->content(fn (InvoiceReport $record): ?string => $record->created_at?->diffForHumans()), Placeholder::make('updated_at') ->label('Last modified') ->content(fn (InvoiceReport $record): ?string => $record->updated_at?->diffForHumans()), ]) ->columnSpan(1) ->hidden(fn (?InvoiceReport $record) => $record === null) ->extraAttributes(['class' => 'h-full']), ])->columns(3); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('internal_id') ->label('ID') ->fontFamily(FontFamily::Mono) ->color('primary') ->searchable() ->sortable(), TextColumn::make('customer.company_name') ->extraHeaderAttributes(['class' => 'w-full']) ->searchable(), TextColumn::make('date_start') ->label('Start Date') ->date('Y-m-d'), TextColumn::make('date_end') ->label('End Date') ->date('Y-m-d'), TextColumn::make('total') ->weight(FontWeight::Bold) ->money(), TextColumn::make('balance') ->weight(FontWeight::Bold) ->money(), ]) ->defaultSort('id', 'desc'); } public static function canAccess(): bool { return auth()->user()->is_admin ?? false; } public static function getRelations(): array { return [ InvoicesRelationManager::class, ]; } public static function getPages(): array { return [ 'index' => \App\Filament\Admin\Resources\InvoiceReportResource\Pages\ListInvoiceReports::route('/'), 'create' => \App\Filament\Admin\Resources\InvoiceReportResource\Pages\CreateInvoiceReport::route('/create'), 'view' => \App\Filament\Admin\Resources\InvoiceReportResource\Pages\ViewInvoiceReport::route('/{record}'), ]; } }