91 lines
3.1 KiB
PHP
Raw Normal View History

2024-10-10 15:15:30 -07:00
<?php
2024-12-10 15:28:14 -08:00
namespace App\Filament\Admin\Resources;
2024-10-10 15:15:30 -07:00
2025-01-16 17:37:32 -05:00
use App\Enums\IconEnum;
2024-12-10 15:28:14 -08:00
use App\Filament\Admin\Resources\CustomerResource\RelationManagers\ContactsRelationManager;
2025-01-24 21:37:05 -05:00
use App\Filament\Admin\Resources\CustomerResource\RelationManagers\InvoicesRelationManager;
use App\Filament\Admin\Resources\CustomerResource\RelationManagers\PaymentsRelationManager;
2024-12-10 15:28:14 -08:00
use App\Filament\Admin\Resources\CustomerResource\RelationManagers\ShippingEntriesRelationManager;
2024-10-10 15:15:30 -07:00
use App\Models\Customer;
use Filament\Forms\Components\Section;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class CustomerResource extends Resource
{
protected static ?string $model = Customer::class;
2025-01-16 17:37:32 -05:00
protected static ?string $navigationIcon = IconEnum::CUSTOMER->value;
2024-10-10 15:15:30 -07:00
protected static ?string $navigationGroup = 'Management';
2024-10-30 19:28:03 -04:00
protected static ?int $navigationSort = 1;
2024-10-10 15:15:30 -07:00
public static function form(Form $form): Form
{
return $form
->schema([
Section::make([
2025-01-24 21:37:05 -05:00
TextInput::make('company_name')
->required(),
2024-10-10 15:15:30 -07:00
TextInput::make('phone'),
TextInput::make('shipping_address_line_1'),
TextInput::make('shipping_address_line_2'),
TextInput::make('billing_address_line_1'),
TextInput::make('billing_address_line_2'),
2024-10-10 15:15:30 -07:00
])->columns(2),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('company_name')
2025-01-24 21:37:05 -05:00
->extraHeaderAttributes(['class' => 'w-full'])
->searchable()
->sortable(),
2024-10-10 15:15:30 -07:00
TextColumn::make('phone'),
2025-01-24 21:37:05 -05:00
TextColumn::make('balance')
->getStateUsing(fn (Customer $customer) => $customer->calculateBalance())
->money()
->hidden(! auth()->user()->is_admin),
2024-10-10 15:15:30 -07:00
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
2025-01-24 21:37:05 -05:00
InvoicesRelationManager::class,
PaymentsRelationManager::class,
2024-11-18 22:18:41 -05:00
ContactsRelationManager::class,
ShippingEntriesRelationManager::class,
2024-10-10 15:15:30 -07:00
];
}
public static function getPages(): array
{
return [
2025-01-24 21:37:05 -05:00
'index' => \App\Filament\Admin\Resources\CustomerResource\Pages\ListCustomers::route('/'),
// 'create' => \App\Filament\Admin\Resources\CustomerResource\Pages\CreateCustomer::route('/create'),
'edit' => \App\Filament\Admin\Resources\CustomerResource\Pages\EditCustomer::route('/{record}/edit'),
2024-10-10 15:15:30 -07:00
];
}
}