diff --git a/app/Nova/Resources/Order/Loan/LoanOrder.php b/app/Nova/Resources/Order/Loan/LoanOrder.php index 1c82b07..7fd3b8f 100644 --- a/app/Nova/Resources/Order/Loan/LoanOrder.php +++ b/app/Nova/Resources/Order/Loan/LoanOrder.php @@ -15,6 +15,9 @@ use App\Repos\System\Settings\Legal\EducationRepo; use App\Repos\System\Settings\Legal\MarriageRepo; use App\Repos\System\Settings\Legal\PassportRepo; use App\Repos\System\Settings\Location\RegionRepo; +use App\Rules\DowranAgaAllowed; +use App\Rules\OnlyLetters; +use App\Rules\PassportIdValidation; use Illuminate\Http\Request; use Laravel\Nova\Fields\Badge; use Laravel\Nova\Fields\Date; @@ -159,15 +162,15 @@ class LoanOrder extends Resource new Panel(__('Personal data'), [ Text::make(__('Name'), 'customer_name') ->size('w-1/3') - ->rules('required', 'string', 'max:255'), + ->rules('required', 'string', new OnlyLetters(), 'max:255'), Text::make(__('Surname'), 'customer_surname') ->size('w-1/3') - ->rules('required', 'string', 'max:255'), + ->rules('required', 'string', new OnlyLetters(), 'max:255'), Text::make(__('Patronic name'), 'customer_patronic_name') ->size('w-1/3') - ->rules('required', 'string', 'max:255'), + ->rules('required', 'string', new OnlyLetters(), 'max:255'), Select::make(__('Education'), 'education') ->displayUsingLabels() @@ -189,15 +192,15 @@ class LoanOrder extends Resource Date::make(__('Date of birth'), 'born_at') ->size('w-1/3') - ->rules('required'), + ->rules('required', 'before_or_equal:today'), Text::make(__('Residence (passport)'), 'passport_address') ->size('w-1/2') - ->rules('required', 'string', 'max:255'), + ->rules('required', 'string', new DowranAgaAllowed(), 'max:255'), Text::make(__('Current Residence'), 'real_address') ->size('w-1/2') - ->rules('required', 'string', 'max:255'), + ->rules('required', 'string', new DowranAgaAllowed(), 'max:255'), ]), new Panel(__('Passport'), [ @@ -211,49 +214,52 @@ class LoanOrder extends Resource Number::make(__('Passport id'), 'passport_id') ->size('w-1/3') - ->rules('required'), + ->rules('required', 'numeric', 'digits:6'), Date::make(__('Passport date of issue'), 'passport_given_at') ->size('w-1/3') - ->rules('required'), + ->rules('required', 'before_or_equal:today'), Text::make(__('Passport given by'), 'passport_given_by') ->size('w-1/2') - ->rules('required'), + ->rules('required', 'string', new DowranAgaAllowed(), 'max:255'), Text::make(__('Born place (passport)'), 'born_place') ->size('w-1/2') - ->rules('required'), + ->rules('required', 'string', new DowranAgaAllowed(), 'max:255'), ]), new Panel(__('Contact data'), [ Email::make(__('Email'), 'email') ->size('w-1/4') - ->rules('nullable', 'email'), + ->rules('nullable', 'email', 'max:255'), NovaInputmask::make(__('Phone'), 'phone') ->mask('+(\\9\\93)-99-99-99-99') ->storeRawValue() ->size('w-1/4') - ->rules('required'), + ->rules('required', 'integer', 'between:61000000, 71999999'), NovaInputmask::make(__('Phone Additional'), 'phone_additional') ->mask('+(\\9\\93)-99-99-99-99') ->storeRawValue() ->size('w-1/4') - ->rules('nullable'), + ->rules('nullable', 'integer', 'between:61000000, 71999999'), NovaInputmask::make(__('Home phone'), 'phone_home') + ->mask('+(\\9\\93)-9{8}') + ->storeRawValue() ->size('w-1/4') ->rules('required'), ]), new Panel(__('Job'), [ Text::make(__('Work company name'), 'work_company') - ->rules('required', 'string', 'max:255') + ->rules('required', 'string', new DowranAgaAllowed(), 'max:255') ->size('w-1/2'), NovaInputmask::make(__('HR department work number'), 'work_company_accountant_number') + ->mask('+(\\9\\93)-9{8}') ->size('w-1/2') ->rules('required'), @@ -275,33 +281,33 @@ class LoanOrder extends Resource Text::make(__('Position'), 'work_position') ->size('w-1/2') - ->rules('required'), + ->rules('required', 'string', new DowranAgaAllowed(), 'max:255'), Text::make(__('Salary'), 'work_salary') ->size('w-1/4') - ->rules('required'), + ->rules('required', 'max_digits:8'), Date::make(__('Work started at'), 'work_started_at') ->size('w-1/4') - ->rules('required'), + ->rules('required', 'before_or_equal:today'), ]), new Panel(__('Passport'), [ Image::make(__('Passport (page 1)'), 'passport_one') ->size('w-1/2') - ->rules('nullable', 'max:2048'), + ->rules('required', 'max:2048'), Image::make(__('Passport (page 2-3)'), 'passport_two') ->size('w-1/2') - ->rules('nullable', 'max:2048'), + ->rules('required', 'max:2048'), Image::make(__('Passport (page 8-9)'), 'passport_three') ->size('w-1/2') - ->rules('nullable', 'max:2048'), + ->rules('required', 'max:2048'), Image::make(__('Passport (page 32)'), 'passport_four') ->size('w-1/2') - ->rules('nullable', 'max:2048'), + ->rules('required', 'max:2048'), ]), // $table->foreignId('filled_by')->constrained('users')->restrictOnDelete(); diff --git a/app/Nova/Resources/Test.php b/app/Nova/Resources/Test.php index d7fb4ab..0c01cee 100644 --- a/app/Nova/Resources/Test.php +++ b/app/Nova/Resources/Test.php @@ -3,6 +3,8 @@ namespace App\Nova\Resources; use App\Nova\Resource; +use App\Rules\DowranAgaAllowed; +use App\Rules\OnlyLetters; use Illuminate\Http\Request; use Laravel\Nova\Fields\ID; use Laravel\Nova\Fields\Text; @@ -45,12 +47,11 @@ class Test extends Resource return [ ID::make()->sortable(), - Text::make('phone'), - - // NovaInputmask::make('Phone', 'phone') - // ->mask('+(\\9\\93)-69-99-99-99') - // ->storeRawValue(), - + NovaInputmask::make(__('Phone'), 'phone') + ->mask('+(\\9\\93)-99-99-99-99') + ->storeRawValue() + ->size('w-1/4') + ->rules('required', 'integer', 'between:61000000,65999999'), ]; } diff --git a/app/Rules/DowranAgaAllowed.php b/app/Rules/DowranAgaAllowed.php new file mode 100644 index 0000000..d7629a8 --- /dev/null +++ b/app/Rules/DowranAgaAllowed.php @@ -0,0 +1,23 @@ +