OwlCyberSecurity - MANAGER
Edit File: InvoiceItemResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\InvoiceItemResource\Pages; use App\Filament\Resources\InvoiceItemResource\RelationManagers; use App\Models\InvoiceItem; use App\Models\Logistic; use Filament\Forms; use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\Filter; use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; class InvoiceItemResource extends Resource { protected static ?string $model = InvoiceItem::class; protected static ?string $navigationIcon = 'heroicon-o-document-magnifying-glass'; protected static ?string $modelLabel = 'جستجو آیتم ها'; protected static ?string $pluralModelLabel = 'جستجو آیتم ها'; protected static ?string $slug = 'invoice-item-search'; protected static ?string $navigationGroup = 'جستجو'; protected static ?int $navigationSort = 4; public static function form(Form $form): Form { return $form ->schema([ // ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('created_at')->label(' تاریخ ثبت سفارش شمسی')->jalaliDate(), TextColumn::make('invoice.user.name')->label('نام خریدار'), TextColumn::make('invoice.user.cell_number')->label('همراه خریدار'), TextColumn::make('invoice.code')->label('کد رهگیری')->copyable(), TextColumn::make('count')->label('تعداد'), TextColumn::make('cost')->label('قیمت'), TextColumn::make('exchange.name')->label('ارز'), TextColumn::make('isapproved')->label('کنسل شده قبل از خرید')->formatStateUsing(fn(string|null $state): string => $state ? 'بله' : 'خیر'), TextColumn::make('logistics.iscancel')->label('کنسل شده بعد از خرید')->formatStateUsing(fn(string|null $state): string => $state ? 'بله' : 'خیر'), TextColumn::make('invoice.cancel_description')->label('دلیل کنسلی')->toggleable(isToggledHiddenByDefault: true), TextColumn::make('logistics.buyingdate')->label('تاریخ خرید'), TextColumn::make('logistics.price')->label('قیمت خریداری شده به ریال'), TextColumn::make('logistics.finalweight')->label('وزن'), TextColumn::make('logistics.buyingdate')->label('تاریخ خرید'), TextColumn::make('prefactorcomment')->label('توضیحات کارشناس')->toggleable(isToggledHiddenByDefault: true), TextColumn::make('description')->label('توضیحات مشتری')->toggleable(isToggledHiddenByDefault: true), TextColumn::make('name')->label('نام کالا')->toggleable(isToggledHiddenByDefault: true), TextColumn::make('link')->label('لینک کالا')->toggleable(isToggledHiddenByDefault: true), ]) ->filters([ SelectFilter::make('logistics.iscancel')->label(' کنسل شده بعد از خرید')->options(['1' => 'بله', '0' => 'خیر']), SelectFilter::make('isapproved')->label(' کنسل شده قبل از خرید')->options(['0' => 'بله', '1' => 'خیر']), Filter::make('created_at_from')->form([ DatePicker::make('created_at')->label(' از تاریخ')->displayFormat('Y-m-d'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['created_at'], fn(Builder $query, $date): Builder => $query->whereDate('created_at', '>=', $date), )), Filter::make('created_at_until')->form([ DatePicker::make('created_at')->label(' تا تاریخ')->displayFormat('Y-m-d'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['created_at'], fn(Builder $query, $date): Builder => $query->whereDate('created_at', '<=', $date), )), Filter::make('cost')->form([ TextInput::make('cost')->label(' مبلغ بیشتر از'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['cost'], fn(Builder $query, $date): Builder => $query->where('cost', '>=', $date), )), ]) ->actions([ // Tables\Actions\EditAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ // Tables\Actions\DeleteBulkAction::make(), ]), ]); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListInvoiceItems::route('/'), 'create' => Pages\CreateInvoiceItem::route('/create'), 'edit' => Pages\EditInvoiceItem::route('/{record}/edit'), ]; } public static function canViewAny(): bool { return auth()->user()->can('invoice-item-search::view'); } }