OwlCyberSecurity - MANAGER
Edit File: CancelReportResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\CancelReportResource\Pages; use App\Helpers\LogisticGlobalSearch; use App\Models\Logistic; use Filament\Forms\Components\TextInput; use Filament\Resources\Resource; use Filament\Tables\Table; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\Filter; use Illuminate\Database\Eloquent\Builder; class CancelReportResource extends Resource { use LogisticGlobalSearch; protected static ?string $model = Logistic::class; protected static ?string $navigationIcon = 'heroicon-o-archive-box-x-mark'; protected static ?string $modelLabel = 'گزارش آیتم های لغو شده'; protected static ?string $pluralModelLabel = 'گزارش آیتم های لغو شده'; protected static ?string $slug = 'cancel-report'; protected static ?string $navigationGroup = 'کنسلی ها'; protected static ?int $navigationSort = 2; public static function getEloquentQuery(): Builder { return parent::getEloquentQuery()->where('logistics.iscancel', true); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('invoice.code')->label('کد رهگیری')->copyable(), TextColumn::make('invoiceItem.name')->label('نام کالا'), TextColumn::make('orderId')->label('کد سفارش'), TextColumn::make('price')->label('قیمت'), TextColumn::make('exchange.name')->label('ارز'), TextColumn::make('base.title')->label('بیس'), TextColumn::make('cancelReason.title')->label('دلیل کنسلی'), TextColumn::make('canceltype')->label('نوع کنسلی'), TextColumn::make('cancelreason')->label('توضیحات کنسلی'), TextColumn::make('canceldate')->label('تاریخ کنسلی'), ]) ->filters([ Filter::make('code')->form([ TextInput::make('code')->label('کد رهگیری'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['code'], fn(Builder $query, $data): Builder => $query->whereHas( 'invoice', fn($q) => $q->where('invoices.code', 'like', '%' . $data . '%')), )), Filter::make('name')->form([ TextInput::make('name')->label('نام کالا'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['name'], fn(Builder $query, $data): Builder => $query->whereHas( 'invoiceItem', fn($q) => $q->where('invoice_items.name', 'like', '%' . $data . '%')), )), ]) ->actions([]) ->bulkActions([]) ->defaultSort('id', 'desc'); } public static function getPages(): array { return [ 'index' => Pages\ListCancelReports::route('/'), ]; } public static function canViewAny(): bool { return auth()->user()->can('cancel-report::view'); } }