columns([ Tables\Columns\TextColumn::make('contract.contract_number') ->label('Hợp đồng') ->searchable() ->sortable(), Tables\Columns\TextColumn::make('amount') ->label('Số tiền') ->money('VND') ->sortable(), Tables\Columns\TextColumn::make('paid_date') ->label('Ngày thu') ->date('d/m/Y') ->sortable(), Tables\Columns\TextColumn::make('method') ->label('Phương thức') ->badge(), Tables\Columns\TextColumn::make('receipt_number') ->label('Số phiếu thu') ->searchable(), Tables\Columns\TextColumn::make('scheduleItem.installment_no') ->label('Đợt TT') ->placeholder('Tạm ứng'), ]) ->filters([ Tables\Filters\SelectFilter::make('method') ->label('Phương thức') ->options([ 'Chuyển khoản' => 'Chuyển khoản', 'Tiền mặt' => 'Tiền mặt', 'Thẻ' => 'Thẻ', 'Khác' => 'Khác', ]), Tables\Filters\Filter::make('paid_date') ->label('Ngày thu') ->form([ \Filament\Forms\Components\DatePicker::make('from')->label('Từ ngày'), \Filament\Forms\Components\DatePicker::make('to')->label('Đến ngày'), ]) ->query(function ($query, array $data) { return $query ->when($data['from'], fn ($q) => $q->whereDate('paid_date', '>=', $data['from'])) ->when($data['to'], fn ($q) => $q->whereDate('paid_date', '<=', $data['to'])); }), ]) ->defaultSort('paid_date', 'desc'); } }