75 lines
2.5 KiB
PHP
75 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Resources\SalesPhases\Tables;
|
|
|
|
use Filament\Tables;
|
|
use Filament\Tables\Table;
|
|
|
|
class SalesPhasesTable
|
|
{
|
|
public static function configure(Table $table): Table
|
|
{
|
|
return $table
|
|
->columns([
|
|
Tables\Columns\TextColumn::make('name')
|
|
->label('Tên đợt')
|
|
->searchable()
|
|
->sortable(),
|
|
|
|
Tables\Columns\TextColumn::make('code')
|
|
->label('Mã đợt')
|
|
->searchable()
|
|
->copyable(),
|
|
|
|
Tables\Columns\TextColumn::make('project.name')
|
|
->label('Dự án')
|
|
->searchable()
|
|
->sortable(),
|
|
|
|
Tables\Columns\TextColumn::make('start_date')
|
|
->label('Bắt đầu')
|
|
->date('d/m/Y')
|
|
->sortable(),
|
|
|
|
Tables\Columns\TextColumn::make('end_date')
|
|
->label('Kết thúc')
|
|
->date('d/m/Y')
|
|
->placeholder('Không giới hạn'),
|
|
|
|
Tables\Columns\TextColumn::make('status')
|
|
->label('Trạng thái')
|
|
->badge()
|
|
->color(fn (string $state): string => match ($state) {
|
|
'Đang mở bán' => 'success',
|
|
'Chuẩn bị' => 'warning',
|
|
'Tạm dừng' => 'danger',
|
|
'Đã đóng' => 'gray',
|
|
default => 'gray',
|
|
}),
|
|
|
|
Tables\Columns\TextColumn::make('products_count')
|
|
->label('Số SP')
|
|
->counts('products'),
|
|
|
|
Tables\Columns\TextColumn::make('paymentTemplate.name')
|
|
->label('Mẫu TT')
|
|
->placeholder('Chưa chọn'),
|
|
])
|
|
->filters([
|
|
Tables\Filters\SelectFilter::make('project_id')
|
|
->label('Dự án')
|
|
->relationship('project', 'name'),
|
|
|
|
Tables\Filters\SelectFilter::make('status')
|
|
->label('Trạng thái')
|
|
->options([
|
|
'Chuẩn bị' => 'Chuẩn bị',
|
|
'Đang mở bán' => 'Đang mở bán',
|
|
'Tạm dừng' => 'Tạm dừng',
|
|
'Đã đóng' => 'Đã đóng',
|
|
]),
|
|
])
|
|
->defaultSort('start_date', 'desc');
|
|
}
|
|
}
|