diff --git a/app/Filament/Clusters/Loans/Loans/Tables/LoansTable.php b/app/Filament/Clusters/Loans/Loans/Tables/LoansTable.php index ccbfd9f..30a4407 100644 --- a/app/Filament/Clusters/Loans/Loans/Tables/LoansTable.php +++ b/app/Filament/Clusters/Loans/Loans/Tables/LoansTable.php @@ -2,7 +2,6 @@ namespace App\Filament\Clusters\Loans\Loans\Tables; -use App\Modules\DefaultQueryForResourceIndex\Repositories\DefaultQueryForResourceIndexRepository; use App\Modules\Loan\Filaments\Actions\ShowLoanRemainingAction; use Filament\Actions\BulkActionGroup; use Filament\Actions\DeleteAction; diff --git a/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Schemas/LoanPaidOffLetterForm.php b/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Schemas/LoanPaidOffLetterForm.php index 0301771..fe2c86d 100644 --- a/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Schemas/LoanPaidOffLetterForm.php +++ b/app/Filament/Clusters/Loans/Resources/LoanPaidOffLetters/Schemas/LoanPaidOffLetterForm.php @@ -2,6 +2,7 @@ namespace App\Filament\Clusters\Loans\Resources\LoanPaidOffLetters\Schemas; +use App\Modules\FilamentPermission\Repositories\FilamentPermissionRepository; use App\Modules\OrderStatus\Repositories\OrderStatusRepository; use App\Modules\PhoneNumberVerification\Rules\PhoneNumberVerificationRule; use App\Modules\Region\Repositories\RegionRepository; @@ -23,26 +24,10 @@ class LoanPaidOffLetterForm public static function configure(Schema $schema): Schema { return $schema + ->columns(6) ->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) @@ -161,14 +146,41 @@ class LoanPaidOffLetterForm ->required() ->maxLength(255) ->columnSpan(6), + ]), + + Section::make(__('By operator')) + ->columnSpan(2) + ->disabled(fn (string $context): bool => FilamentPermissionRepository::forClients()) + ->hidden(fn (string $context) => FilamentPermissionRepository::defaultSystemInput($context)) + ->components([ + Select::make('status') + ->label(__('Status')) + ->options(OrderStatusRepository::statusValues()) + ->default(OrderStatusRepository::defaultStatus()) + ->native(false) + ->required() + ->columnSpanFull(), + + RichEditor::make('notes') + ->label(__('Bellik')) + ->toolbarButtons([ + 'h2', + 'italic', + 'orderedList', + 'bold', + 'strike', + 'underline', + ]) + ->columnSpanFull(), FileUpload::make('loan_file') ->label(__('Loan paid off letter file')) - ->columnSpan(2) + ->columnSpanFull() ->maxSize(4096) - ->columnSpan(2), + ->columnSpan(2) + ->downloadable() + ->previewable(false), ]), - ]); } } diff --git a/app/Modules/FilamentPermission/Repositories/FilamentPermissionRepository.php b/app/Modules/FilamentPermission/Repositories/FilamentPermissionRepository.php index 7953917..ab9a788 100644 --- a/app/Modules/FilamentPermission/Repositories/FilamentPermissionRepository.php +++ b/app/Modules/FilamentPermission/Repositories/FilamentPermissionRepository.php @@ -4,12 +4,17 @@ namespace App\Modules\FilamentPermission\Repositories; class FilamentPermissionRepository { + public static function hiddenOnCreate(string $context): bool + { + return $context === 'create'; + } + public static function forClients(): bool { return ! user()->isSystemUser(); } - public static function defaultSystemInput(string $context) + public static function defaultSystemInput(string $context): bool { if (user()->isSystemUser()) { return false; diff --git a/app/Modules/LoanOrder/Models/LoanOrder.php b/app/Modules/LoanOrder/Models/LoanOrder.php index ebc8f8a..247bdb7 100644 --- a/app/Modules/LoanOrder/Models/LoanOrder.php +++ b/app/Modules/LoanOrder/Models/LoanOrder.php @@ -154,20 +154,11 @@ class LoanOrder extends Model implements BelongsToBranch, HasStatus /** * "boot" method for model */ - protected static function boot() + protected static function boot(): void { parent::boot(); static::creating(LoanOrderRepository::creating()); static::created(LoanOrderRepository::created()); - // static::updated(function (LoanOrder $model) { - // if ($model->notes && $model->wasChanged('notes')) { - // Alert::create([ - // 'user_id' => $model->user_id, - // 'name' => 'Duýdyryş', - // 'value' => $model->notes, - // ]); - // } - // }); } } diff --git a/app/Modules/LoanPaidOffLetter/Models/LoanPaidOffLetter.php b/app/Modules/LoanPaidOffLetter/Models/LoanPaidOffLetter.php index 481f997..4c09813 100644 --- a/app/Modules/LoanPaidOffLetter/Models/LoanPaidOffLetter.php +++ b/app/Modules/LoanPaidOffLetter/Models/LoanPaidOffLetter.php @@ -3,7 +3,10 @@ namespace App\Modules\LoanPaidOffLetter\Models; use App\Models\User; +use App\Modules\Branch\Interfaces\BelongsToBranch; use App\Modules\Branch\Models\Branch; +use App\Modules\LoanOrder\Repositories\LoanOrderRepository; +use App\Modules\OrderStatus\Interfaces\HasStatus; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -30,7 +33,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo; * @property \Illuminate\Support\Carbon $created_at * @property \Illuminate\Support\Carbon $updated_at */ -class LoanPaidOffLetter extends Model +class LoanPaidOffLetter extends Model implements BelongsToBranch, HasStatus { protected $table = 'loan_paid_off_letters'; @@ -58,4 +61,15 @@ class LoanPaidOffLetter extends Model { return $this->belongsTo(Branch::class); } + + /** + * "boot" method for model + */ + protected static function boot(): void + { + parent::boot(); + + static::creating(LoanOrderRepository::creating()); + static::created(LoanOrderRepository::created()); + } } diff --git a/lang/tk.json b/lang/tk.json index 306374d..a3884c9 100644 --- a/lang/tk.json +++ b/lang/tk.json @@ -694,5 +694,6 @@ "PHD": "Ylymlaryň doktory", "Married": "Öýlenen/Durmuşa çykan", "Divorced": "Aýrylşan", - "Single": "Öýlenmedik/Durmuşa çykmadyk" + "Single": "Öýlenmedik/Durmuşa çykmadyk", + "By operator": "Operatordan" }