wip
This commit is contained in:
@@ -4,7 +4,9 @@ namespace App\Filament\Clusters\VisaMasterPayments\Resources\VisaMasterPaymentOr
|
|||||||
|
|
||||||
use App\Modules\FilamentPermission\Repositories\FilamentPermissionRepository;
|
use App\Modules\FilamentPermission\Repositories\FilamentPermissionRepository;
|
||||||
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
|
use App\Modules\OrderStatus\Repositories\OrderStatusRepository;
|
||||||
|
use App\Modules\PhoneNumberVerification\Rules\PhoneNumberVerificationRule;
|
||||||
use App\Modules\Region\Repositories\RegionRepository;
|
use App\Modules\Region\Repositories\RegionRepository;
|
||||||
|
use App\Modules\TurkmenPassport\Repositories\TurkmenPassportRepository;
|
||||||
use App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrder;
|
use App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrder;
|
||||||
use Filament\Forms\Components\FileUpload;
|
use Filament\Forms\Components\FileUpload;
|
||||||
use Filament\Forms\Components\Hidden;
|
use Filament\Forms\Components\Hidden;
|
||||||
@@ -15,6 +17,7 @@ use Filament\Forms\Components\Textarea;
|
|||||||
use Filament\Forms\Components\TextInput;
|
use Filament\Forms\Components\TextInput;
|
||||||
use Filament\Forms\Components\Toggle;
|
use Filament\Forms\Components\Toggle;
|
||||||
use Filament\Schemas\Components\Fieldset;
|
use Filament\Schemas\Components\Fieldset;
|
||||||
|
use Filament\Schemas\Components\FusedGroup;
|
||||||
use Filament\Schemas\Components\Section;
|
use Filament\Schemas\Components\Section;
|
||||||
use Filament\Schemas\Components\Wizard;
|
use Filament\Schemas\Components\Wizard;
|
||||||
use Filament\Schemas\Components\Wizard\Step;
|
use Filament\Schemas\Components\Wizard\Step;
|
||||||
@@ -57,123 +60,118 @@ class VisaMasterPaymentOrderForm
|
|||||||
]),
|
]),
|
||||||
|
|
||||||
Wizard::make([
|
Wizard::make([
|
||||||
Step::make(__('Order type and bank'))
|
// Step::make(__('Order type and bank'))
|
||||||
|
// ->schema([
|
||||||
|
// Fieldset::make(__('Order type'))
|
||||||
|
// ->schema([
|
||||||
|
// Select::make('type')
|
||||||
|
// ->label(__('Type'))
|
||||||
|
// ->options(VisaMasterPaymentOrder::applicationTypes())
|
||||||
|
// ->native(false)
|
||||||
|
// ->required(),
|
||||||
|
// ]),
|
||||||
|
|
||||||
|
// Fieldset::make(__('Location'))
|
||||||
|
// ->schema([
|
||||||
|
// Select::make('region')
|
||||||
|
// ->label(__('Region'))
|
||||||
|
// ->options(RegionRepository::values())
|
||||||
|
// ->live()
|
||||||
|
// ->afterStateUpdated(fn (callable $set) => $set('branch_id', null))
|
||||||
|
// ->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);
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// ->required(),
|
||||||
|
// ]),
|
||||||
|
// ]),
|
||||||
|
Step::make(__('Payment sender data'))
|
||||||
|
->columns(8)
|
||||||
->schema([
|
->schema([
|
||||||
Fieldset::make(__('Order type'))
|
TextInput::make('sender_full_name')
|
||||||
->schema([
|
->label(__('Name, Surname, Patronic name'))
|
||||||
Select::make('type')
|
->columnSpan(4)
|
||||||
->label(__('Type'))
|
->default(user()->fullName())
|
||||||
->options(VisaMasterPaymentOrder::applicationTypes())
|
->required(),
|
||||||
->native(false)
|
|
||||||
->required(),
|
|
||||||
]),
|
|
||||||
|
|
||||||
Fieldset::make(__('Location'))
|
FusedGroup::make([
|
||||||
->schema([
|
Select::make('sender_passport_serie')
|
||||||
Select::make('region')
|
->label(__('Passport serie'))
|
||||||
->label(__('Region'))
|
->options(TurkmenPassportRepository::values())
|
||||||
->options(RegionRepository::values())
|
->native(false)
|
||||||
->live()
|
->required()
|
||||||
->afterStateUpdated(fn (callable $set) => $set('branch_id', null))
|
->columnSpan(1)
|
||||||
->required(),
|
->default(user()->getOption('passport_serie')),
|
||||||
|
|
||||||
Select::make('branch_id')
|
TextInput::make('sender_passport_number')
|
||||||
->label(__('Branch'))
|
->label(__('Passport number'))
|
||||||
->relationship('branch', 'name', function ($query, callable $get) {
|
->required()
|
||||||
$query->orderByTranslation('name');
|
->columnSpan(1)
|
||||||
|
->mask('999999')
|
||||||
$region = $get('region');
|
->default(user()->getOption('passport_id')),
|
||||||
if ($region) {
|
])
|
||||||
$query->where('region', $region);
|
->columnSpan(2)
|
||||||
}
|
->label(__('Passport serie and number'))
|
||||||
})
|
->columns(2),
|
||||||
->required(),
|
|
||||||
]),
|
|
||||||
]),
|
|
||||||
Step::make(__('Personal information'))
|
|
||||||
->columns(2)
|
|
||||||
->schema([
|
|
||||||
TextInput::make('passport_name')
|
|
||||||
->label(__('Name'))
|
|
||||||
->required()
|
|
||||||
->maxLength(255),
|
|
||||||
|
|
||||||
TextInput::make('passport_surname')
|
|
||||||
->label(__('Surname'))
|
|
||||||
->required()
|
|
||||||
->maxLength(255),
|
|
||||||
|
|
||||||
TextInput::make('phone')
|
TextInput::make('phone')
|
||||||
->label(__('Phone'))
|
->label(__('Phone'))
|
||||||
->required()
|
->required()
|
||||||
->tel(),
|
->mask('99 99 99 99')
|
||||||
|
->prefix('+993')
|
||||||
TextInput::make('email')
|
->rules([
|
||||||
->label(__('Email'))
|
new PhoneNumberVerificationRule,
|
||||||
->email(),
|
])
|
||||||
|
->columnSpan(2)
|
||||||
Select::make('region')
|
->default(user()->phone),
|
||||||
->label(__('Region'))
|
|
||||||
->options(RegionRepository::values())
|
|
||||||
->native(false)
|
|
||||||
->required(),
|
|
||||||
|
|
||||||
Textarea::make('address')
|
|
||||||
->label(__('Address'))
|
|
||||||
->columnSpanFull(),
|
|
||||||
]),
|
|
||||||
|
|
||||||
Step::make(__('Sender information'))
|
|
||||||
->schema([
|
|
||||||
TextInput::make('sender_full_name')
|
|
||||||
->label(__('Sender full name'))
|
|
||||||
->required(),
|
|
||||||
|
|
||||||
TextInput::make('sender_passport_serie')
|
|
||||||
->label(__('Sender passport serie'))
|
|
||||||
->required(),
|
|
||||||
|
|
||||||
TextInput::make('sender_passport_number')
|
|
||||||
->label(__('Sender passport number'))
|
|
||||||
->required(),
|
|
||||||
|
|
||||||
TextInput::make('sender_deposit_account')
|
TextInput::make('sender_deposit_account')
|
||||||
->label(__('Sender deposit account'))
|
->label(__('Deposit account'))
|
||||||
|
->columnSpan(4)
|
||||||
|
->required(),
|
||||||
|
|
||||||
|
TextInput::make('address')
|
||||||
|
->label(__('Address'))
|
||||||
|
->columnSpan(4)
|
||||||
->required(),
|
->required(),
|
||||||
]),
|
]),
|
||||||
|
|
||||||
Step::make(__('JSON data'))
|
Step::make(__('Payee information'))
|
||||||
|
->columns(8)
|
||||||
->schema([
|
->schema([
|
||||||
KeyValue::make('sender_datas')
|
TextInput::make('reciever_full_name')
|
||||||
->label(__('Sender data')),
|
->label(__('Name, Surname, Patronic name'))
|
||||||
|
->columnSpan(5)
|
||||||
|
->required(),
|
||||||
|
|
||||||
KeyValue::make('payment_reciever')
|
FusedGroup::make([
|
||||||
->label(__('Payment receiver')),
|
Select::make('reciever_passport_serie')
|
||||||
|
->label(__('Passport serie'))
|
||||||
|
->options(TurkmenPassportRepository::values())
|
||||||
|
->native(false)
|
||||||
|
->required()
|
||||||
|
->columnSpan(1),
|
||||||
|
|
||||||
|
TextInput::make('reciever_passport_number')
|
||||||
|
->label(__('Passport number'))
|
||||||
|
->required()
|
||||||
|
->columnSpan(1)
|
||||||
|
->mask('999999'),
|
||||||
|
])
|
||||||
|
->columnSpan(3)
|
||||||
|
->label(__('Passport serie and number'))
|
||||||
|
->columns(2),
|
||||||
]),
|
]),
|
||||||
|
|
||||||
Step::make(__('Receiver documents'))
|
])->columnSpanFull()->skippable(),
|
||||||
->schema(
|
|
||||||
collect(VisaMasterPaymentOrder::reciverFiles())
|
|
||||||
->map(function (array $file) {
|
|
||||||
return FileUpload::make('documents.'.$file['code'])
|
|
||||||
->label($file['name'])
|
|
||||||
->required($file['required']);
|
|
||||||
})
|
|
||||||
->toArray()
|
|
||||||
),
|
|
||||||
|
|
||||||
Step::make(__('Sender documents'))
|
|
||||||
->schema(
|
|
||||||
collect(VisaMasterPaymentOrder::senderFiles())
|
|
||||||
->map(function (array $file) {
|
|
||||||
return FileUpload::make('documents.sender.'.$file['code'])
|
|
||||||
->label($file['name'])
|
|
||||||
->required($file['required']);
|
|
||||||
})
|
|
||||||
->toArray()
|
|
||||||
),
|
|
||||||
|
|
||||||
])->columnSpanFull(),
|
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ use App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrder;
|
|||||||
use BackedEnum;
|
use BackedEnum;
|
||||||
use Filament\Resources\Resource;
|
use Filament\Resources\Resource;
|
||||||
use Filament\Schemas\Schema;
|
use Filament\Schemas\Schema;
|
||||||
use Filament\Support\Icons\Heroicon;
|
|
||||||
use Filament\Tables\Table;
|
use Filament\Tables\Table;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||||
@@ -29,6 +28,8 @@ class VisaMasterPaymentOrderResource extends Resource
|
|||||||
|
|
||||||
protected static ?string $recordTitleAttribute = 'id';
|
protected static ?string $recordTitleAttribute = 'id';
|
||||||
|
|
||||||
|
protected static string|BackedEnum|null $navigationIcon = 'icon-visa-plain';
|
||||||
|
|
||||||
public static function getNavigationGroup(): ?string
|
public static function getNavigationGroup(): ?string
|
||||||
{
|
{
|
||||||
return __('Visa/Master payments');
|
return __('Visa/Master payments');
|
||||||
|
|||||||
@@ -83,4 +83,12 @@ trait UserAdjustments
|
|||||||
{
|
{
|
||||||
return $this->hasMany(UserBranch::class);
|
return $this->hasMany(UserBranch::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Full name
|
||||||
|
*/
|
||||||
|
public function fullName(): string
|
||||||
|
{
|
||||||
|
return sprintf('%s %s', $this->first_name, $this->last_name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,6 +41,11 @@ return new class extends Migration
|
|||||||
$table->string('sender_passport_number')->nullable();
|
$table->string('sender_passport_number')->nullable();
|
||||||
$table->string('sender_deposit_account')->nullable();
|
$table->string('sender_deposit_account')->nullable();
|
||||||
|
|
||||||
|
$table->string('reciever_full_name')->nullable();
|
||||||
|
$table->string('reciever_passport_serie')->nullable();
|
||||||
|
$table->string('reciever_passport_number')->nullable();
|
||||||
|
$table->string('reciever_deposit_account')->nullable();
|
||||||
|
|
||||||
$table->boolean('paid')->default(true);
|
$table->boolean('paid')->default(true);
|
||||||
|
|
||||||
$table->softDeletes();
|
$table->softDeletes();
|
||||||
|
|||||||
@@ -572,9 +572,8 @@
|
|||||||
"Please, now verify your phone number to continue": "Dowam etmek üçin telefon belgiňizi tassyklaň",
|
"Please, now verify your phone number to continue": "Dowam etmek üçin telefon belgiňizi tassyklaň",
|
||||||
"Swift payments": "Swift tölegler",
|
"Swift payments": "Swift tölegler",
|
||||||
"Swift payment": "Swift töleg",
|
"Swift payment": "Swift töleg",
|
||||||
"International payments": "Halkara tölegler",
|
|
||||||
"Visa, Master, Sber, WU": "Visa, Master, Sber, WU",
|
"Visa, Master, Sber, WU": "Visa, Master, Sber, WU",
|
||||||
"Visa/Master payment": "Visa/Master tölegler",
|
"Visa/Master payment": "Visa/Master töleg",
|
||||||
"Visa/Master payments": "Visa/Master tölegleri",
|
"Visa/Master payments": "Visa/Master tölegleri",
|
||||||
"For students": "Talyplar üçin",
|
"For students": "Talyplar üçin",
|
||||||
"Application type": "Ýüztutmanyň görnüşi",
|
"Application type": "Ýüztutmanyň görnüşi",
|
||||||
@@ -700,5 +699,8 @@
|
|||||||
"Order type and bank": "Ýüztutmanyň görnüşi we bank",
|
"Order type and bank": "Ýüztutmanyň görnüşi we bank",
|
||||||
"Order type": "Ýüztutmanyň görnüşi",
|
"Order type": "Ýüztutmanyň görnüşi",
|
||||||
"Type": "Görnüş",
|
"Type": "Görnüş",
|
||||||
"International payments": "Halkara tölegler"
|
"International payments": "Halkara tölegler",
|
||||||
|
"Order details": "Sargyt barada",
|
||||||
|
"Name, Surname, Patronic name": "Ady, Familiýasy, Atasynyň ady",
|
||||||
|
"Deposit account": "Goýum hasaby"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user