diff --git a/app/Nova/Actions/MakePaymentNovaVisaMaster.php b/app/Nova/Actions/MakePaymentNovaVisaMaster.php index d1be36f..1581e4b 100644 --- a/app/Nova/Actions/MakePaymentNovaVisaMaster.php +++ b/app/Nova/Actions/MakePaymentNovaVisaMaster.php @@ -10,6 +10,7 @@ use App\Modules\VisaMasterSettings\Models\VisaMasterSettings; use App\Repos\Payment\OnlinePaymentRepo; use Illuminate\Bus\Queueable; use Illuminate\Queue\InteractsWithQueue; +use Illuminate\Support\Carbon; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Blade; use Illuminate\Support\Facades\Http; @@ -279,40 +280,36 @@ class MakePaymentNovaVisaMaster extends Action * * @param \Illuminate\Support\Carbon $today */ - public function canAcceptPayment(\Illuminate\Support\Carbon $today): bool + public function canAcceptPayment(Carbon $today): bool { - $year = $today->format('Y'); - $month = $today->format('m'); - $lastDay = lastDayOfMonth(year: $year, month: $month); + $lastDay = $today->copy()->endOfMonth(); + $lastDayOfWeek = $lastDay->format('l'); - // Condition 1: Check if today is the last day of the month - if ($today->format('Y-m-d') === $lastDay->format('Y-m-d')) { + $oneDayBefore = $lastDay->copy()->subDay(); // Saturday + $twoDaysBefore = $lastDay->copy()->subDays(2); // Friday + + // Condition 1: Today is the last day + if ($today->isSameDay($lastDay)) { info('check 1'); return false; } - // Determine the day of the week for the last day of the month - $lastDayOfWeek = $lastDay->format('l'); // e.g., 'Sunday', 'Saturday' + // Condition 2: Last day is Sunday → forbid Friday & Saturday + if ($lastDayOfWeek === 'Sunday' && ($today->isSameDay($oneDayBefore) || $today->isSameDay($twoDaysBefore))) { + info('check 2'); - // Condition 2: If the last day is Sunday, disallow Friday, Saturday, Sunday - if ($lastDayOfWeek === 'Sunday') { - $forbiddenDays = ['Friday', 'Saturday', 'Sunday']; - if (in_array($today->format('l'), $forbiddenDays)) { - info('check 2'); - - return false; - } + return false; } - // Condition 3: If the last day is Saturday, disallow Friday - if ($lastDayOfWeek === 'Saturday' && $today->format('l') === 'Friday') { + // Condition 3: Last day is Saturday → forbid Friday + if ($lastDayOfWeek === 'Saturday' && $today->isSameDay($oneDayBefore)) { info('check 3'); return false; } - // If none of the conditions match, allow payment + // Default: allow payment return true; } } diff --git a/app/Nova/Resources/Order/Card/Requisite/CardRequisite.php b/app/Nova/Resources/Order/Card/Requisite/CardRequisite.php index fae6213..e6003ee 100644 --- a/app/Nova/Resources/Order/Card/Requisite/CardRequisite.php +++ b/app/Nova/Resources/Order/Card/Requisite/CardRequisite.php @@ -13,7 +13,6 @@ use App\Nova\Resources\Order\Card\Requisite\Concerns\CardRequisiteFieldsForIndex use App\Repos\Order\Card\CardOrderRepo; use App\Repos\Order\Card\CardTypeRepo; use App\Repos\Order\OrderRepo; -use App\Repos\Payment\OnlinePaymentRepo; use App\Repos\System\Nova\NovaRepo; use App\Repos\System\Settings\Legal\PassportRepo; use App\Repos\System\Settings\Location\RegionRepo; @@ -31,7 +30,6 @@ use Laravel\Nova\Fields\Select; use Laravel\Nova\Fields\Text; use Laravel\Nova\Http\Requests\NovaRequest; use Laravel\Nova\Panel; -use Laravel\Nova\URL; use Nurmuhammet\NovaInputmask\NovaInputmask; class CardRequisite extends Resource @@ -159,20 +157,6 @@ class CardRequisite extends Resource $model->update(['unique_id' => CardOrderRepo::fillUniqueId($model)]); } - /** - * Return the location to redirect the user after creation. - * - * @param \Laravel\Nova\Resource $resource - */ - public static function redirectAfterCreate(NovaRequest $request, $resource): URL|string - { - $payment = (new OnlinePaymentRepo)->payCardOrder($resource); - - return $payment['status'] === 'success' - ? URL::remote($payment['url']) - : sprintf('resources/%s/%s', static::uriKey(), $resource->getKey()); - } - /** * Get the fields for index. *