OwlCyberSecurity - MANAGER
Edit File: UserDiscountResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\UserDiscountResource\Pages; use App\Filament\Resources\UserDiscountResource\RelationManagers; use App\Models\UserDiscount; use Filament\Forms; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Actions\Action; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Select; use Filament\Forms\Components\Toggle; use Filament\Forms\Components\DatePicker; use Filament\Tables\Filters\Filter; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\BooleanColumn; use App\Models\Invoice; use App\Models\User; class UserDiscountResource extends Resource { protected static ?string $model = UserDiscount::class; protected static ?string $navigationIcon = 'heroicon-o-tag'; protected static ?string $modelLabel = 'کد تخفیف'; protected static ?string $pluralModelLabel = 'لیست تخفیف کاربران'; protected static ?string $slug = 'user-discount'; protected static ?string $navigationGroup = 'مشترک'; protected static ?int $navigationSort = 2; public static function table(Table $table): Table { return $table ->columns([ IconColumn::make('affiliate.gift_card')->label('کارت هدیه')->boolean(), TextColumn::make('affiliate.code')->label('کد استفاده شده'), TextColumn::make('affiliate.user.name')->label('مشترک'), TextColumn::make('user.name')->label('نام کاربر'), TextColumn::make('cart_name')->label('سبد'), TextColumn::make('invoice.code')->label('کد رهگیری'), IconColumn::make('is_pay')->label('پرداخت')->boolean(), TextColumn::make('created_at')->label('تاریخ')->dateTime(), TextColumn::make('discount_price')->label('مقدار تخفیف'), ]) ->filters([ Filter::make('affiliate_key_code') ->form([ TextInput::make('affiliate_key_code')->label('کد مشترک'), ]) ->query(fn(Builder $query, array $data): Builder => $query->when( $data['affiliate_key_code'], fn(Builder $query, $code): Builder => $query->whereHas('affiliate', fn(Builder $query) => $query->where('code', 'like', "%{$code}%")) )), Filter::make('affiliate_user_name') ->form([ TextInput::make('affiliate_user_name')->label('مشترک'), ]) ->query(fn(Builder $query, array $data): Builder => $query->when( $data['affiliate_user_name'], fn(Builder $query, $name): Builder => $query->whereHas('affiliate.user', fn(Builder $query) => $query->where('name', 'like', "%{$name}%")) )), Filter::make('user_id') ->form([ TextInput::make('user_id')->label('آی دی کاربر'), ]) ->query(fn(Builder $query, array $data): Builder => $query->when( $data['user_id'], fn(Builder $query, $data): Builder => $query->where('user_id', $data) )), Filter::make('cart_name') ->form([ Select::make('cart_name')->label('نام سبد')->options([ 'amazon' => 'Amazon', 'ebay' => 'eBay', 'turkey' => 'Turkey', 'emirates' => 'Emirates', 'china' => 'China', 'other' => 'Other', ]), ]) ->query(fn(Builder $query, array $data): Builder => $query->when( $data['cart_name'], fn(Builder $query, $data): Builder => $query->where('cart_name', $data) )), Filter::make('is_pay') ->form([ Toggle::make('is_pay')->label('پرداخت'), ]) ->query(fn(Builder $query, array $data): Builder => $query->when( $data['is_pay'], fn(Builder $query, $data): Builder => $query->where('is_pay', $data) )), ]) ->actions([ Action::make('final-factor')->label('مشاهده فاکتور')->color('primary')->icon('heroicon-o-currency-dollar') ->url(fn(UserDiscount $invoice) => config('app.url') . "/admin/invoice-search/view-factor/" . "{$invoice->invoice_id}") ->openUrlInNewTab() ->icon('heroicon-o-link') ->color('primary'), ]) ->bulkActions([ // Tables\Actions\BulkActionGroup::make([ // Tables\Actions\DeleteBulkAction::make(), // ]), ]) ->defaultSort('id', 'desc'); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListUserDiscounts::route('/'), ]; } public static function canViewAny(): bool { return auth()->user()->can('user-discount::view'); } }