> */ public static function make(NovaSberPaymentOrder $resource): array { return [ new Panel(__('Status'), [ ID::make()->hide(), Text::make(__('ID'), 'unique_id'), Badge::make(__('Status'), 'status') ->map(OrderRepo::statusClasses()) ->addTypes([ 'primary' => 'dark:bg-gray-900 bg-gray-600 text-white', ]) ->labels(OrderRepo::statusValues()) ->withIcons() ->icons(OrderRepo::statusIcons()), Text::make(sprintf('%s (%s)', __('Paid'), __('This month')), function () use ($resource) { return static::paidField($resource); }), Text::make(__('Note'), 'notes') ->fullWidth() ->canSeeWhen('systemUser', $resource), ]), new Panel(__('Location'), [ Select::make(__('Region'), 'region') ->displayUsingLabels() ->options(RegionRepo::values()), BelongsTo::make(__('Branch'), 'branch', Branch::class), ]), new Panel(__('Personal data'), [ Text::make(__('Passport name'), 'passport_name'), Text::make(__('Passport surname'), 'passport_surname'), NovaInputmask::make(__('Phone'), 'phone') ->phonenumber('TM'), Text::make(__('Email'), 'email'), Text::make(__('Current Residence'), 'address'), ]), new Panel(__('Payment'), [ Text::make(__('Payment sender data'), function () use ($resource) { return sprintf( '%s-%s %s', $resource->sender_passport_serie, $resource->sender_passport_number, $resource->sender_full_name ); })->asHtml(), Text::make(__('Töleg ugradyjynyň goýum hasaby'), function () use ($resource) { return sprintf( '%s', number_format($resource->sender_deposit_account, 0, '', '') ); })->asHtml(), SimpleRepeatable::make(__('Payee information'), 'payment_reciever', [ Select::make(__('Passport serie'), 'passport_serie') ->displayUsingLabels() ->searchable() ->options(PassportRepo::values()) ->rules('required') ->sortable(), NovaInputmask::make(__('Passport number'), 'passport_number') ->mask('999999') ->rules('required', 'max:255'), Text::make( name: sprintf('%s %s %s', __('Name'), __('Surname'), __('Patronic name')), attribute: 'full_name' )->rules('required', 'max:255'), ])->maxRows(1)->minRows(1)->rules('required'), ]), new Panel(__('Reciver files'), [ Files::make('Talyba degişli walýuta “SBERBANK” kartyň rekwizitleri', 'receiver_requisite') ->rules('required'), Files::make('Talybyň daşary ýurt döwletiniň ýokary okuw mekdebinde okaýandygy baradaky güwänamasy', 'receiver_document_stating_he_is_studying'), Files::make('Talybyň bilediniň göçürmesi', 'receiver_receiver_ticket'), Files::make('Talyba degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi', 'receiver_passport_local'), Files::make('Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin (zagran) pasportynyň göçürmesi', 'receiver_passport_international'), Files::make('Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky daşary ýurtda galyp okap bilýändigi baradaky berlen möhleti hereket edýän rugsatnamasynyň (wizasynyň) bellenen sahypasynyň göçürmesi', 'receiver_visa'), Files::make('Talybyň Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky Türkmenistandan çykandygy we daşary ýurt döwletine girendigi baradaky ştamplaryň (seneli ştampyň) bellenen sahypasynyň göçürmesi', 'receiver_travel_stamp_on_passport'), Files::make('Talybyň daşary ýurt döwletiniň ýokary okuw mekdebinde okaýandygy baradaky güwänamasyndaky maglumatyň doly takyk däl ýagdaýynda takyk däl maglumatyň sebäpleri baradaky daşary ýurt döwletiniň ýokary okuw mekdebinden haty', 'receiver_document_stating_he_is_studying_2'), ]), new Panel(__('Sender files'), [ Files::make('Ugradyja degişli Türkmenistanyň raýatynyň (içki milli) pasportynyň asyl görnüşi we göçürmesi', 'sender_passport_local'), Files::make('Ugradyja degişli Türkmenistandan çykmak we Türkmenistana girmek üçin pasportynyň asyl görnüşi we göçürmesi', 'sender_passport_international'), Files::make('Ugradyja degişli Türkmenistandan çykmak we Türkmenistana girmek üçin pasportyndaky daşary döwletine gidendigi we daşary döwlete barandygy baradaky (ştampyň) bellenen sahypasynyň göçürmesi', 'sender_travel_stamp_on_passport'), Files::make('Ugradyjynyň we kabul edijiniň (talybyň) özara garyndaşlyk derejesini tassyklaýjy resminamalarynyň göçürmesi', 'sender_proof_of_kinship'), Files::make('Ugradyjy we kabul ediji (talyp) 2015-nji ýyldan soňra Türkmenistanyň raýatynyň pasportyny ikinji gezek alan bolsa, onda birinji gezek alan pasportynyň seriýasy baradaky maglumat', 'sender_passport_local_old'), Files::make('Ugradyjy we kabul ediji (talyp) 2015-nji ýyldan soňra Türkmenistanyň raýatynyň pasportyny ikinji gezek alandan soňra birinji gezek alan pasportynyň seriýasy baradaky maglumaty bilmeýän, bolsa onda polisiýanyň degişli edaralaryndan birinji alan pasportynyň seriýasy baradaky güwänamasy', 'sender_passport_local_old_replacement'), ]), HasMany::make(__('Payment items'), 'paymentItems', NovaSberPaymentOrderItem::class), ]; } /** * Paid field */ public static function paidField(NovaSberPaymentOrder $resource, ?string $date = null): string { /** @var \App\Modules\SberPaymentOrder\Models\SberPaymentOrder */ $model = $resource->model(); $items = $model->paymentItems; $month = $date ?: date('m'); $paid = false; foreach ($items as $item) { if (boolval($item->paid)) { if ($item->created_at->format('m') == $month) { $paid = true; } } } return $paid ? 'Tölenen' : 'Tölenmedik'; } }