OwlCyberSecurity - MANAGER
Edit File: FactorPaymentManagementMaliResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\FactorPaymentManagementMaliResource\Pages; use App\Filament\Resources\FactorPaymentManagementMaliResource\RelationManagers; use App\Models\ExchangeInvoice; use App\Models\FactorPaymentManagementMali; use App\Models\Invoice; use App\Models\PaymentMethod; use App\Models\Transaction; use Filament\Forms; use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\Grid; use Filament\Forms\Components\Select; use Filament\Forms\Components\Textarea; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; use Filament\Notifications\Notification; use Filament\Resources\Resource; use Filament\Support\RawJs; use Filament\Tables; use Filament\Tables\Actions\Action; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\Filter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; class FactorPaymentManagementMaliResource extends Resource { protected static ?string $model = Invoice::class; protected static ?string $navigationIcon = 'heroicon-o-queue-list'; protected static ?string $modelLabel = 'ثبت پرداخت دستی فاکتور'; protected static ?string $pluralModelLabel = 'ثبت پرداخت دستی فاکتور'; protected static ?string $slug = 'factors-payment-management-mali'; protected static ?string $navigationGroup = 'مالی'; protected static ?int $navigationSort = 2; public static function getEloquentQuery(): Builder { return parent::getEloquentQuery()->whereIn('invoices.orderlevel', ['آماده برای پرداخت', 'پرداخت شده', 'سفارش', 'تسویه'])->where('invoices.status', '!=', 'کنسل'); } public static function form(Form $form): Form { return $form ->schema([ // ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('user.name')->label('نام مشتری'), TextColumn::make('user.cell_number')->label('تلفن همراه'), TextColumn::make('code')->label('کد رهگیری'), TextColumn::make('created_at')->label('تاریخ')->jalaliDateTime(), // TextColumn::make('agent.name')->label('کارشناس'), ]) ->filters([ Filter::make('code')->form([ TextInput::make('code')->label('کد رهگیری'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['code'], fn(Builder $query, $date): Builder => $query->where('code', 'like', '%' . $date . '%'), )), Filter::make('username')->form([ TextInput::make('name')->label('نام مشتری'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['name'], fn(Builder $query, $data): Builder => $query->whereHas( 'user', fn($q) => $q->where('users.name', 'like', '%' . $data . '%')), )), Filter::make('cell_number')->form([ TextInput::make('cell_number')->label('تلفن همراه'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['cell_number'], fn(Builder $query, $data): Builder => $query->whereHas( 'user', fn($q) => $q->where('users.cell_number', 'like', '%' . $data . '%')), )), Filter::make('created_at')->form([ DatePicker::make('created_from')->label('از تاریخ')->displayFormat('Y-m-d')->required(), DatePicker::make('created_until')->label('تا تاریخ')->displayFormat('Y-m-d')->required(), ])->query(fn(Builder $query, array $data): Builder => $query ->when( $data['created_from'], fn(Builder $query, $date): Builder => $query->whereDate('created_at', '>=', $date), ) ->when( $data['created_until'], fn(Builder $query, $date): Builder => $query->whereDate('created_at', '<=', $date), )), ]) ->actions([ Action::make('final-factor')->label('مشاهده فاکتور')->color('primary')->icon('heroicon-o-currency-dollar') ->url(fn(Invoice $invoice) => config('app.url') . "/admin/invoice-search/view-factor/" . "{$invoice->id}") ->openUrlInNewTab() ->icon('heroicon-o-link') ->color('primary'), Action::make('payment')->label('پرداخت ها')->color('primary')->icon('heroicon-o-currency-dollar') ->url(fn($record): string => BuyInvoiceManagementResource::getUrl('payment', [$record->id]))->openUrlInNewTab(), ]) ->bulkActions([]) ->defaultSort('id', 'desc'); } public static function getRelations(): array { return [ // ]; } public static function getPages(): array { return [ 'index' => Pages\ListFactorPaymentManagementMalis::route('/'), ]; } public static function canViewAny(): bool { return auth()->user()->can('factors-payment-management-mali::view'); } }