diff --git a/app/Filament/Clusters/Cards/Resources/CardPinOrders/Schemas/CardPinOrderForm.php b/app/Filament/Clusters/Cards/Resources/CardPinOrders/Schemas/CardPinOrderForm.php index 10921b4..9014b63 100644 --- a/app/Filament/Clusters/Cards/Resources/CardPinOrders/Schemas/CardPinOrderForm.php +++ b/app/Filament/Clusters/Cards/Resources/CardPinOrders/Schemas/CardPinOrderForm.php @@ -27,7 +27,7 @@ class CardPinOrderForm ->components([ Hidden::make('user_id')->default(Auth::id()), - Section::make(__('New loan order')) + Section::make(__('New card pin order')) ->columnSpanFull() ->components([ Select::make('status') @@ -43,7 +43,7 @@ class CardPinOrderForm ->columnSpanFull(), ]), - Section::make(__('New loan order')) + Section::make(__('New card pin order')) ->columnSpanFull() ->columns(6) ->components([ diff --git a/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/LoanPaidOffLetterResource.php b/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/LoanPaidOffLetterResource.php new file mode 100644 index 0000000..aa85b6e --- /dev/null +++ b/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/LoanPaidOffLetterResource.php @@ -0,0 +1,74 @@ + ListLoanPaidOffLetters::route('/'), + 'create' => CreateLoanPaidOffLetter::route('/create'), + 'edit' => EditLoanPaidOffLetter::route('/{record}/edit'), + ]; + } +} diff --git a/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Pages/CreateLoanPaidOffLetter.php b/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Pages/CreateLoanPaidOffLetter.php new file mode 100644 index 0000000..4d77ed7 --- /dev/null +++ b/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Pages/CreateLoanPaidOffLetter.php @@ -0,0 +1,11 @@ +components([ + Hidden::make('user_id')->default(Auth::id()), + + Section::make(__('New loan paid off letter')) + ->columnSpan(4) + ->columns(4) + ->components([ + Select::make('status') + ->label(__('Status')) + ->options(OrderStatusRepository::statusValues()) + ->default(OrderStatusRepository::defaultStatus()) + ->native(false) + ->required() + ->columnSpanFull(), + + RichEditor::make('notes') + ->label(__('Bellik')) + ->columnSpanFull(), + ]), + + Section::make(__('New loan paid off letter')) + ->columnSpan(4) + ->columns(6) + ->components([ + Select::make('region') + ->label(__('Region')) + ->options(RegionRepository::values()) + ->live() + ->afterStateUpdated(fn (callable $set) => $set('branch_id', null)) + ->columnSpan(3) + ->required(), + + Select::make('branch_id') + ->label(__('Branch')) + ->relationship('branch', 'name', function ($query, callable $get) { + $query->orderByTranslation('name'); + + $region = $get('region'); + if ($region) { + $query->where('region', $region); + } + }) + ->columnSpan(3) + ->required(), + + TextInput::make('customer_name') + ->label(__('Name')) + ->columnSpan(2) + ->default(user()->first_name) + ->required() + ->maxLength(255) + ->autocomplete(Str::random(10)) + ->columnSpan(2), + + TextInput::make('customer_surname') + ->label(__('Surname')) + ->columnSpan(2) + ->default(user()->last_name) + ->required() + ->maxLength(255) + ->columnSpan(2), + + TextInput::make('customer_patronic_name') + ->label(__('Patronic name')) + ->columnSpan(2) + ->default(user()->getOption('patronic_name')) + ->maxLength(255) + ->columnSpan(2), + + DatePicker::make('born_at') + ->displayFormat('d.m.Y') + ->label(__('Birth date')) + ->native(false) + ->columnSpan(2) + ->default(user()->getOption('born_at')) + ->required() + ->beforeOrEqual('today') + ->columnSpan(2), + + FusedGroup::make([ + Select::make('passport_serie') + ->label(__('Passport serie')) + ->options(TurkmenPassportRepository::values()) + ->native(false) + ->required() + ->default(user()->getOption('passport_serie')) + ->columnSpan(1), + + TextInput::make('passport_id') + ->label(__('Passport number')) + ->required() + ->columnSpan(1) + ->default(user()->getOption('passport_id')) + ->mask('999999'), + ]) + ->columnSpan(2) + ->label(__('Passport serie and number')) + ->columns(2), + + TextInput::make('phone') + ->label(__('Phone')) + ->required() + ->mask('99 99 99 99') + ->prefix('+993') + ->default(user()->phone) + ->rules([ + new PhoneNumberVerificationRule, + ]) + ->columnSpan(2), + + TextInput::make('loan_contract_number') + ->label(__('Loan contract number')) + ->columnSpan(2) + ->required() + ->maxLength(255), + + DatePicker::make('loan_contract_date') + ->displayFormat('d.m.Y') + ->label(__('Loan contract date')) + ->native(false) + ->columnSpan(2) + ->required() + ->beforeOrEqual('today') + ->columnSpan(2), + + TextInput::make('loan_amount') + ->label(__('Loan amount')) + ->columnSpan(2) + ->required() + ->numeric() + ->columnSpan(2), + + TextInput::make('loan_reason') + ->label(__('Loan reason')) + ->columnSpan(2) + ->required() + ->maxLength(255) + ->columnSpan(6), + ]), + + ]); + } +} diff --git a/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Tables/LoanPaidOffLettersTable.php b/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Tables/LoanPaidOffLettersTable.php new file mode 100644 index 0000000..e16cb43 --- /dev/null +++ b/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Tables/LoanPaidOffLettersTable.php @@ -0,0 +1,60 @@ +columns([ + TextColumn::make('id') + ->label('ID') + ->sortable(), + + TextColumn::make('region') + ->label(__('Region')), + + TextColumn::make('branch.name') + ->label(__('Branch')), + + TextColumn::make('customer_name') + ->searchable(), + + TextColumn::make('customer_surname') + ->searchable(), + + TextColumn::make('phone') + ->searchable(), + + TextColumn::make('status') + ->searchable(), + + TextColumn::make('created_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + TextColumn::make('updated_at') + ->dateTime() + ->sortable() + ->toggleable(isToggledHiddenByDefault: true), + ]) + ->filters([ + // + ]) + ->recordActions([ + EditAction::make(), + ]) + ->toolbarActions([ + BulkActionGroup::make([ + DeleteBulkAction::make(), + ]), + ]); + } +} diff --git a/lang/ru.json b/lang/ru.json index 1cf6f82..e080a3a 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -671,5 +671,12 @@ "Show remaining loan": "Показать остаток по кредиту", "Forgot card pin": "Забыли PIN-код карты", "Pin order": "Заказ PIN-кода", - "Pin orders": "Заказы PIN-кодов" + "Pin orders": "Заказы PIN-кодов", + "Loan paid off letter": "Заявление о погашении кредита", + "Loan paid off letters": "Заявления о погашении кредита", + "New loan paid off letter": "Новое заявление о погашении кредита", + "New card pin order": "Новый заказ PIN-кода карты", + "Loan contract number": "Номер кредитного договора", + "Loan contract date": "Дата кредитного договора", + "Loan reason": "Причина кредита" } diff --git a/lang/tk.json b/lang/tk.json index eed45ac..25e55e5 100644 --- a/lang/tk.json +++ b/lang/tk.json @@ -673,5 +673,12 @@ "Show remaining loan": "Karz galyndysyny gör", "Forgot card pin": "Pin belgini unutdum", "Pin order": "Pin belgi", - "Pin orders": "Pin belgiler" + "Pin orders": "Pin belgiler", + "Loan paid off letter": "Karz ýapylandygy barada güwanama almak", + "Loan paid off letters": "Karz ýapylandygy barada güwanamalar", + "New loan paid off letter": "Täze karz ýapylandygy barada güwanama almak", + "New card pin order": "Täze kart pin belgisini sargyt dörediň", + "Loan contract number": "Karz şertnamanyň belgisi", + "Loan contract date": "Karz şertnamanyň senesi", + "Loan reason": "Karzyň maksady" }