This commit is contained in:
2025-11-03 11:54:07 +05:00
parent 870aba0bcf
commit 38b9908e1e
21 changed files with 150 additions and 75 deletions

View File

@@ -2,13 +2,14 @@
namespace App\Filament\Clusters\Cards\Cards;
use App\Filament\Clusters\Cards\Cards\Pages\ManageCards;
use App\Filament\Clusters\Cards\CardsCluster;
use App\Filament\Clusters\Cards\Cards\Pages\ManageCards;
use App\Modules\AppHelpers\Repositories\DateHelper;
use App\Modules\Card\Filament\Actions\CheckCardBalanceAction;
use App\Modules\Card\Filament\Actions\DownloadCardRequisteAction;
use App\Modules\Card\Filament\Actions\DownloadCardTransactionAction;
use App\Modules\Card\Models\Card;
use App\Modules\DefaultQueryForResourceIndex\Repositories\DefaultQueryForResourceIndexRepository;
use BackedEnum;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
@@ -90,7 +91,7 @@ class CardResource extends Resource
{
return $table
->modifyQueryUsing(function (Builder $query) {
$query->where('user_id', user()->id);
DefaultQueryForResourceIndexRepository::make($query);
})
->columns([
TextColumn::make('number')

View File

@@ -6,12 +6,9 @@ use App\Filament\Clusters\Loans\LoansCluster;
use App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\Pages\CreateLoanOrderMobile;
use App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\Pages\EditLoanOrderMobile;
use App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\Pages\ListLoanOrderMobiles;
use App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\Pages\ViewLoanOrderMobile;
use App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\Schemas\LoanOrderMobileForm;
use App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\Schemas\LoanOrderMobileInfolist;
use App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\Tables\LoanOrderMobilesTable;
use App\Modules\LoanOrder\Models\LoanOrder;
use App\Modules\LoanOrder\Models\LoanOrderMobile;
use BackedEnum;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
@@ -41,7 +38,7 @@ class LoanOrderMobileResource extends Resource
public static function getModelLabel(): string
{
return __('module.loan-order::loan-order.loan_order'). ' (mobile app)';
return __('module.loan-order::loan-order.loan_order').' (mobile app)';
}
public static function getPluralModelLabel(): string

View File

@@ -3,7 +3,6 @@
namespace App\Filament\Clusters\Loans\Resources\LoanOrderMobiles\Schemas;
use App\Modules\AppHelpers\Repositories\DateHelper;
use App\Modules\LoanOrder\Models\LoanOrder;
use App\Modules\LoanOrder\Models\LoanOrderRequiredDocs;
use App\Modules\LoanOrder\Repositories\LoanOrderRepository;
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
@@ -380,23 +379,23 @@ class LoanOrderMobileForm
->required()
->columnSpan(1),
]),
Tab::make(__('Guarantor'). ' 1')
Tab::make(__('Guarantor').' 1')
->columns(6)
->schema([
TextInput::make('guarantor_name')
->label(__('Guarantor').' '. __('Name'))
->label(__('Guarantor').' '.__('Name'))
->columnSpan(2)
->required()
->maxLength(255),
TextInput::make('guarantor_surname')
->label(__('Guarantor').' '. __('Surname'))
->label(__('Guarantor').' '.__('Surname'))
->columnSpan(2)
->required()
->maxLength(255),
TextInput::make('guarantor_patronic_name')
->label(__('Guarantor').' '. __('Patronic name'))
->label(__('Guarantor').' '.__('Patronic name'))
->columnSpan(2)
->maxLength(255),
@@ -419,7 +418,7 @@ class LoanOrderMobileForm
->columns(2),
TextInput::make('guarantor_note')
->label(__('Guarantor').' '. __('Salary'))
->label(__('Guarantor').' '.__('Salary'))
->columnSpan(3)
->required()
->maxLength(255),
@@ -451,7 +450,7 @@ class LoanOrderMobileForm
->columnSpan(1)
->required(),
]),
Tab::make(__('Guarantor'). ' 2')
Tab::make(__('Guarantor').' 2')
->columns(6)
->hidden(function (Get $get): bool {
$loan_amount = $get('loan_amount');
@@ -460,19 +459,19 @@ class LoanOrderMobileForm
})
->schema([
TextInput::make('guarantor_2_name')
->label(__('Guarantor').' '. __('Name'))
->label(__('Guarantor').' '.__('Name'))
->columnSpan(2)
->required()
->maxLength(255),
TextInput::make('guarantor_2_surname')
->label(__('Guarantor').' '. __('Surname'))
->label(__('Guarantor').' '.__('Surname'))
->columnSpan(2)
->required()
->maxLength(255),
TextInput::make('guarantor_2_patronic_name')
->label(__('Guarantor').' '. __('Patronic name'))
->label(__('Guarantor').' '.__('Patronic name'))
->columnSpan(2)
->maxLength(255),
@@ -495,7 +494,7 @@ class LoanOrderMobileForm
->columns(2),
TextInput::make('guarantor_2_note')
->label(__('Guarantor').' '. __('Salary'))
->label(__('Guarantor').' '.__('Salary'))
->columnSpan(3)
->required()
->maxLength(255),

View File

@@ -161,7 +161,7 @@ class LoanPaidOffLetterForm
->required()
->maxLength(255)
->columnSpan(6),
FileUpload::make('loan_file')
->label(__('Loan paid off letter file'))
->columnSpan(2)

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\Branch\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\Branch\Models\Branch;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class BranchPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:Branch');
@@ -66,5 +66,4 @@ class BranchPolicy
{
return $authUser->can('Reorder:Branch');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\Card\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\Card\Models\Card;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class CardPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:Card');
@@ -66,5 +66,4 @@ class CardPolicy
{
return $authUser->can('Reorder:Card');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\CardOrder\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\CardOrder\Models\CardOrder;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class CardOrderPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:CardOrder');
@@ -66,5 +66,4 @@ class CardOrderPolicy
{
return $authUser->can('Reorder:CardOrder');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\CardOrder\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\CardOrder\Models\CardState;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class CardStatePolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:CardState');
@@ -66,5 +66,4 @@ class CardStatePolicy
{
return $authUser->can('Reorder:CardState');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\CardOrder\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\CardOrder\Models\CardType;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class CardTypePolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:CardType');
@@ -66,5 +66,4 @@ class CardTypePolicy
{
return $authUser->can('Reorder:CardType');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\CardPinOrder\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\CardPinOrder\Models\CardPinOrder;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class CardPinOrderPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:CardPinOrder');
@@ -66,5 +66,4 @@ class CardPinOrderPolicy
{
return $authUser->can('Reorder:CardPinOrder');
}
}
}

View File

@@ -0,0 +1,64 @@
<?php
namespace App\Modules\DefaultQueryForResourceIndex;
use App\Modules\Makeable;
use App\Modules\ModuleContract;
class DefaultQueryForResourceIndexModule implements ModuleContract
{
use Makeable;
/**
* Module is enabled
*/
protected bool $enabled = true;
/**
* Check if is module enabled
*/
public function isEnabled(): bool
{
return $this->enabled;
}
/**
* Disable module
*/
public function disable(): void
{
$this->enabled = false;
}
/**
* Enable module
*/
public function enable(): void
{
$this->enabled = true;
}
/**
* Check if module has a filament resource
*/
public function hasFilamentResource(): bool
{
return false;
}
/**
* Get module composer requirements
*/
public function getComposerRequirements(): array
{
return [];
}
/**
* Get module composer suggestions
*/
public function getComposerSuggestions(): array
{
return [];
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Modules\DefaultQueryForResourceIndex\Repositories;
use App\Modules\DefaultQueryForResourceIndex\Models\DefaultQueryForResourceIndex;
use Illuminate\Database\Eloquent\Builder;
class DefaultQueryForResourceIndexRepository
{
/**
* Default filament table query builder
* @param Builder $query
*/
public static function make(Builder $query): void
{
if (user()->isAdmin()) {
return;
}
if (user()->isSystemUser()) {
$query->whereIn('branch_id', user()->branches()->pluck('branches.id'));
return;
}
$query->where('user_id', user()->id);
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\Loan\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\Loan\Models\Loan;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class LoanPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:Loan');
@@ -66,5 +66,4 @@ class LoanPolicy
{
return $authUser->can('Reorder:Loan');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\LoanOrder\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\LoanOrder\Models\LoanOrder;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class LoanOrderPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:LoanOrder');
@@ -66,5 +66,4 @@ class LoanOrderPolicy
{
return $authUser->can('Reorder:LoanOrder');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\LoanOrder\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\LoanOrder\Models\LoanOrderRequiredDocs;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class LoanOrderRequiredDocsPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:LoanOrderRequiredDocs');
@@ -66,5 +66,4 @@ class LoanOrderRequiredDocsPolicy
{
return $authUser->can('Reorder:LoanOrderRequiredDocs');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\LoanOrder\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\LoanOrder\Models\LoanType;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class LoanTypePolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:LoanType');
@@ -66,5 +66,4 @@ class LoanTypePolicy
{
return $authUser->can('Reorder:LoanType');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\LoanPaidOffLetter\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\LoanPaidOffLetter\Models\LoanPaidOffLetter;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class LoanPaidOffLetterPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:LoanPaidOffLetter');
@@ -66,5 +66,4 @@ class LoanPaidOffLetterPolicy
{
return $authUser->can('Reorder:LoanPaidOffLetter');
}
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Modules\Province\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use App\Modules\Province\Models\Province;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class ProvincePolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:Province');
@@ -66,5 +66,4 @@ class ProvincePolicy
{
return $authUser->can('Reorder:Province');
}
}
}

View File

@@ -57,6 +57,6 @@ trait RoleCheckers
*/
public function isSystemUser(): bool
{
return $this->isAdmin() || $this->isOperator() || $this->isCurrencyMaintainer();
return $this->roles->count > 0;
}
}

View File

@@ -4,14 +4,14 @@ declare(strict_types=1);
namespace App\Policies;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
use Spatie\Permission\Models\Role;
use Illuminate\Auth\Access\HandlesAuthorization;
class RolePolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:Role');
@@ -66,5 +66,4 @@ class RolePolicy
{
return $authUser->can('Reorder:Role');
}
}
}

View File

@@ -2,13 +2,13 @@
namespace App\Policies;
use Illuminate\Foundation\Auth\User as AuthUser;
use Illuminate\Auth\Access\HandlesAuthorization;
use Illuminate\Foundation\Auth\User as AuthUser;
class UserPolicy
{
use HandlesAuthorization;
public function viewAny(AuthUser $authUser): bool
{
return $authUser->can('ViewAny:User');
@@ -63,5 +63,4 @@ class UserPolicy
{
return $authUser->can('Reorder:User');
}
}
}