🔄 در حال انجام: تست دستی Filament ⏸️ بلاک: مهاجرت ۳۹۵۰ رکورد (منتظر فایل اکسل اصلاحشده) ⏸️ بلاک: پلاگین وردپرس (بعد از تست کامل API)
80 lines
3.0 KiB
PHP
80 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Resources\ShipmentResource\RelationManagers;
|
|
|
|
use Filament\Forms;
|
|
use Filament\Forms\Form;
|
|
use Filament\Resources\RelationManagers\RelationManager;
|
|
use Filament\Tables;
|
|
use Filament\Tables\Table;
|
|
|
|
class CarrierMappingsRelationManager extends RelationManager
|
|
{
|
|
protected static string $relationship = 'carrierMappings';
|
|
|
|
protected static ?string $title = 'Carrier Mappings';
|
|
|
|
protected static ?string $icon = 'heroicon-o-truck';
|
|
|
|
public function form(Form $form): Form
|
|
{
|
|
return $form->schema([
|
|
Forms\Components\Select::make('carrier_code')
|
|
->options([
|
|
'DHL' => 'DHL',
|
|
'FEDEX' => 'FedEx',
|
|
'UPS' => 'UPS',
|
|
'ARAMEX' => 'Aramex',
|
|
'NAGHEL' => 'Naqel',
|
|
'EMX' => 'EMX',
|
|
'APSITEX' => 'APSITEX',
|
|
'IMPEX' => 'IMPEX',
|
|
'OTHER' => 'Other',
|
|
])
|
|
->required(),
|
|
Forms\Components\TextInput::make('carrier_tracking_number')->required()->label('Tracking Number'),
|
|
Forms\Components\TextInput::make('booking_number')->nullable()->label('Booking Number'),
|
|
Forms\Components\Select::make('direction')
|
|
->options(['import' => 'Import', 'export' => 'Export'])
|
|
->nullable(),
|
|
Forms\Components\Select::make('delivery_status')
|
|
->options([
|
|
'processed' => 'Processed',
|
|
'picked_up' => 'Picked Up',
|
|
'in_transit' => 'In Transit',
|
|
'out_for_delivery' => 'Out For Delivery',
|
|
'failed' => 'Failed',
|
|
'delivered' => 'Delivered',
|
|
'returned' => 'Returned',
|
|
])
|
|
->nullable(),
|
|
Forms\Components\Textarea::make('notes')->nullable()->rows(2)->label('Notes'),
|
|
]);
|
|
}
|
|
|
|
public function table(Table $table): Table
|
|
{
|
|
return $table
|
|
->columns([
|
|
Tables\Columns\TextColumn::make('carrier_code')->badge()->label('Carrier'),
|
|
Tables\Columns\TextColumn::make('carrier_tracking_number')->label('Tracking Number')->searchable(),
|
|
Tables\Columns\TextColumn::make('booking_number')->label('Booking Number'),
|
|
Tables\Columns\TextColumn::make('direction')->badge()->label('Direction'),
|
|
Tables\Columns\TextColumn::make('delivery_status')->badge()->label('Status'),
|
|
Tables\Columns\TextColumn::make('notes')->limit(50)->label('Notes'),
|
|
])
|
|
->headerActions([
|
|
Tables\Actions\CreateAction::make(),
|
|
])
|
|
->actions([
|
|
Tables\Actions\EditAction::make(),
|
|
Tables\Actions\DeleteAction::make(),
|
|
])
|
|
->bulkActions([
|
|
Tables\Actions\BulkActionGroup::make([
|
|
Tables\Actions\DeleteBulkAction::make(),
|
|
]),
|
|
]);
|
|
}
|
|
}
|