phpstan errors & onlinepayment extended

This commit is contained in:
2025-03-13 17:10:48 +05:00
parent d726bf9f91
commit d85fca1f09
6 changed files with 38 additions and 59 deletions

View File

@@ -95,7 +95,7 @@ class SberPaymentOrder extends Model implements HasMedia
/**
* Required files
*
* @return array<array<string, bool|string>>
* @return array<int, array<string, bool|string>>
*/
public static function reciverFiles(): array
{
@@ -145,6 +145,8 @@ class SberPaymentOrder extends Model implements HasMedia
/**
* Sender files
*
* @return array<int, array<string, bool|string>>
*/
public static function senderFiles(): array
{
@@ -213,6 +215,8 @@ class SberPaymentOrder extends Model implements HasMedia
/**
* Payment itmes
*
* @return HasMany<SberPaymentOrderItem>
*/
public function paymentItems(): HasMany
{

View File

@@ -38,6 +38,8 @@ class SberPaymentOrderItem extends Model implements HasMedia
/**
* Parent order
*
* @return BelongsTo<SberPaymentOrder, SberPaymentOrderItem>
*/
public function parent(): BelongsTo
{

View File

@@ -2,6 +2,7 @@
namespace App\Modules\SberPaymentOrder\Nova\Resources\Concerns;
use App\Modules\SberPaymentOrder\Nova\Resources\NovaSberPaymentOrder;
use App\Modules\SberPaymentOrder\Nova\Resources\NovaSberPaymentOrderItem;
use App\Nova\Resources\Branch\Branch;
use App\Repos\Order\OrderRepo;
@@ -11,7 +12,6 @@ use Ebess\AdvancedNovaMediaLibrary\Fields\Files;
use Laravel\Nova\Fields\Badge;
use Laravel\Nova\Fields\BelongsTo;
use Laravel\Nova\Fields\HasMany;
use Laravel\Nova\Fields\Hidden;
use Laravel\Nova\Fields\ID;
use Laravel\Nova\Fields\Select;
use Laravel\Nova\Fields\Text;
@@ -24,31 +24,16 @@ class SberPaymentOrderFieldsForDetail
/**
* Get fields for detail view
*
* @return array
* @param NovaSberPaymentOrder $resource
* @return array<int, Panel|\Laravel\Nova\Fields\Field|array<int, \Laravel\Nova\Fields\Field>>
*/
public static function make($resource): array
public static function make(NovaSberPaymentOrder $resource): array
{
return [
new Panel(__('Status'), [
ID::make()
->hideFromDetail(),
ID::make()->hide(),
Hidden::make('user_id')
->default(auth()->id())
->hideWhenUpdating(),
Text::make(__('ID'), 'unique_id')
->exceptOnForms(),
Select::make(__('Status'), 'status')
->displayUsingLabels()
->searchable()
->options(OrderRepo::statusValues())
->default(OrderRepo::defaultStatus())
->fullWidth()
->hideFromDetail()
->rules('required')
->canSeeWhen('systemUser', $resource),
Text::make(__('ID'), 'unique_id'),
Badge::make(__('Status'), 'status')
->map(OrderRepo::statusClasses())
@@ -60,7 +45,7 @@ class SberPaymentOrderFieldsForDetail
->icons(OrderRepo::statusIcons()),
Text::make(sprintf('%s (%s)', __('Paid'), __('This month')), function () use ($resource) {
return static::paidField($resource, $resource->filter_month);
return static::paidField($resource);
}),
Text::make(__('Note'), 'notes')
@@ -69,53 +54,31 @@ class SberPaymentOrderFieldsForDetail
]),
new Panel(__('Location'), [
Select::make(__('Region'), 'region')
->fullWidth()
->displayUsingLabels()
->searchable()
->options(RegionRepo::values())
->default(RegionRepo::default())
->rules('required')
->sortable(),
->options(RegionRepo::values()),
BelongsTo::make(__('Branch'), 'branch', Branch::class),
]),
new Panel(__('Personal data'), [
Text::make(__('Passport name'), 'passport_name')
->fullWidth()
->rules('required', 'string', 'max:255'),
Text::make(__('Passport name'), 'passport_name'),
Text::make(__('Passport surname'), 'passport_surname')
->fullWidth()
->rules('required', 'string', 'max:255'),
Text::make(__('Passport surname'), 'passport_surname'),
NovaInputmask::make(__('Phone'), 'phone')
->fullWidth()
->phonenumber('TM')
->rules('required', 'max:255')
->hideFromIndex(),
->phonenumber('TM'),
Text::make(__('Email'), 'email')
->fullWidth()
->rules('nullable', 'max:255', 'email')
->hideFromIndex(),
Text::make(__('Email'), 'email'),
Text::make(__('Current Residence'), 'address')
->fullWidth()
->rules('required', 'string', 'max:255')
->hideFromIndex(),
Text::make(__('Current Residence'), 'address'),
]),
new Panel(__('Payment'), [
SimpleRepeatable::make(__('Payment sender data'), 'sender_datas', [
Select::make(__('Passport serie'), 'passport_serie')
->displayUsingLabels()
->searchable()
->options(PassportRepo::values())
->rules('required')
->sortable(),
->options(PassportRepo::values()),
NovaInputmask::make(__('Passport number'), 'passport_number')
->mask('999999')
->rules('required', 'max:255'),
->mask('999999'),
Text::make(
name: sprintf('%s %s %s', __('Name'), __('Surname'), __('Patronic name')),
@@ -189,13 +152,16 @@ class SberPaymentOrderFieldsForDetail
/**
* Paid field
*/
public static function paidField($resource, $date = null)
public static function paidField(NovaSberPaymentOrder $resource, ?string $date = null): string
{
$paid = false;
$items = $resource->paymentItems;
/** @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) {

View File

@@ -30,9 +30,6 @@ use Nurmuhammet\NovaInputmask\NovaInputmask;
use Outl1ne\NovaDetachedFilters\NovaDetachedFilters;
use Outl1ne\NovaSimpleRepeatable\SimpleRepeatable;
/**
* @template TModel of \App\Modules\SberPaymentOrder\Models\SberPaymentOrder
*/
class NovaSberPaymentOrder extends Resource
{
use NovaSberPaymentOrderAuth;

View File

@@ -38,6 +38,8 @@ class VisaMasterPaymentOrderItem extends Model implements HasMedia
/**
* Parent order
*
* @return BelongsTo<VisaMasterPaymentOrder, VisaMasterPaymentOrderItem>
*/
public function parent(): BelongsTo
{