OwlCyberSecurity - MANAGER
Edit File: CreditUserListResource.php
<?php namespace App\Filament\Resources; use App\Filament\Resources\CreditUserListResource\Pages; use App\Filament\Resources\CreditUserListResource\RelationManagers; use App\Models\CreditUserList; use Filament\Forms; use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\Section; use Filament\Forms\Components\Select; use Filament\Forms\Components\TextInput; use Filament\Forms\Components\Toggle; use Filament\Forms\Form; use Filament\Resources\Resource; use Filament\Support\RawJs; use Filament\Tables; use Filament\Tables\Columns\IconColumn; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Filters\Filter; use Filament\Tables\Table; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; class CreditUserListResource extends Resource { protected static ?string $model = CreditUserList::class; protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; protected static ?string $modelLabel = 'کاربر اعتباری'; protected static ?string $pluralModelLabel = 'کاربرهای اعتباری'; protected static ?string $slug = 'credit-user-list'; protected static ?string $navigationGroup = 'خرید اعتباری'; protected static ?int $navigationSort = 6; public static function form(Form $form): Form { return $form ->schema([ Section::make()->schema([ TextInput::make('name')->label('نام')->required(), TextInput::make('cell_number')->label('شماره همراه')->numeric()->required()->length(11)->unique(ignoreRecord: true), TextInput::make('nationalcode')->label('کد ملی')->numeric()->required()->length(10)->unique(ignoreRecord: true), // TextInput::make('limit')->label('مقدار سقف (ریال)')->default(0)->minValue(0)->mask(RawJs::make('$money($input)')) // ->dehydrateStateUsing(fn(string $state): string => preg_replace("/[^0-9]/", "", $state))->required(), // TextInput::make('number_of_installments')->label('تعداد اقساط')->default(0)->integer()->required(), // TextInput::make('value_of_installments')->label('مقدار اقساط ماهیانه (ریال)')->default(0)->minValue(0)->mask(RawJs::make('$money($input)')) // ->dehydrateStateUsing(fn(string $state): string => preg_replace("/[^0-9]/", "", $state))->required(), // DatePicker::make('expiry_date')->label('تاریخ پایان اعتبار')->displayFormat('Y-m-d')->required(), // Select::make('credit_organization_lists_id')->relationship('organization', 'name')->label('شرکت مربوطه')->required()->default(1), Toggle::make('is_active')->label('فعال')->required(), ]), ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('id')->label('ID'), TextColumn::make('name')->label('نام'), TextColumn::make('nationalcode')->label('کد ملی'), TextColumn::make('cell_number')->label('شماره همراه')->copyable(), // TextColumn::make('limit')->label('سقف مبلغ'), // TextColumn::make('expiry_date')->label('تاریخ پایان اعتبار'), IconColumn::make('is_active')->label('فعال بودن')->boolean(), ]) ->filters([ Filter::make('nationalcode')->form([ TextInput::make('nationalcode')->label('کد ملی'), ])->query(fn(Builder $query, array $data): Builder => $query->when( $data['nationalcode'], fn(Builder $query, $data): Builder => $query->where('credit_user_lists.nationalcode', 'like', '%' . $data . '%'), )), ]) ->actions([ Tables\Actions\EditAction::make(), // Tables\Actions\DeleteAction::make(), ]) ->bulkActions([ Tables\Actions\BulkActionGroup::make([ // Tables\Actions\DeleteBulkAction::make(), ]), ])->defaultSort('id', 'desc'); } public static function getPages(): array { return [ 'index' => Pages\ListCreditUserLists::route('/'), 'create' => Pages\CreateCreditUserList::route('/create'), 'edit' => Pages\EditCreditUserList::route('/{record}/edit'), ]; } public static function canViewAny(): bool { return auth()->user()->can('credit_user_lists::view'); } }