This commit is contained in:
2025-03-03 10:08:03 +05:00
parent f5083821bc
commit dd72395558
4 changed files with 66 additions and 6 deletions

View File

@@ -0,0 +1,32 @@
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
class CheckPasswordMustBeChanged
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handle(Request $request, Closure $next): Response
{
if (! auth()->check()) {
return redirect('/login');
}
if ($request->user()->isSystemUser()) {
return $next($request);
}
if (boolval($request->user()->password_must_be_changed)) {
return to_route('sms-verification');
}
return $next($request);
}
}

View File

@@ -5,6 +5,7 @@ namespace App\Modules\VisaMasterPaymentOrder\Nova\Resources\Concerns;
use App\Modules\VisaMasterPaymentOrder\Models\VisaMasterPaymentOrder;
use App\Modules\VisaMasterPaymentOrder\Nova\Resources\NovaVisaMasterPaymentOrderItem;
use App\Nova\Resources\Branch\Branch;
use App\Nova\User;
use App\Repos\Order\OrderRepo;
use App\Repos\System\Settings\Legal\PassportRepo;
use App\Repos\System\Settings\Location\RegionRepo;
@@ -34,9 +35,7 @@ class VisaMasterPaymentOrderFieldsForDetail
ID::make()
->hideFromDetail(),
Hidden::make('user_id')
->default(auth()->id())
->hideWhenUpdating(),
BelongsTo::make(__('User'), 'user', User::class),
Text::make(__('ID'), 'unique_id')
->exceptOnForms(),
@@ -60,12 +59,13 @@ class VisaMasterPaymentOrderFieldsForDetail
->withIcons()
->icons(OrderRepo::statusIcons()),
Text::make(sprintf('%s (%s)', __('Paid'), __('This month')), function () use ($resource) {
return static::paidField($resource, $resource->filter_month);
}),
Text::make(__('Note'), 'notes')
->fullWidth()
->canSeeWhen('systemUser', $resource),
]),
new Panel(__('Payment'), [
]),
new Panel(__('Application type'), [
Select::make(__('Application type'), 'type')
@@ -195,4 +195,25 @@ class VisaMasterPaymentOrderFieldsForDetail
HasMany::make(__('Payment items'), 'paymentItems', NovaVisaMasterPaymentOrderItem::class),
];
}
/**
* Paid field
*/
public static function paidField($resource, $date = null)
{
$paid = false;
$items = $resource->paymentItems;
$month = $date ?: date('m');
foreach ($items as $item) {
if (boolval($item->paid)) {
if ($item->created_at->format('m') == $month) {
$paid = true;
}
}
}
return $paid ? 'Tölenen' : 'Tölenmedik';
}
}

View File

@@ -1,5 +1,6 @@
<?php
use App\Http\Middleware\CheckPasswordMustBeChanged;
use App\Http\Middleware\CheckPhoneVerification;
use App\Http\Middleware\SetLocale;
use Laravel\Nova\Actions\ActionResource;
@@ -107,6 +108,7 @@ return [
DispatchServingNovaEvent::class,
BootTools::class,
CheckPhoneVerification::class,
CheckPasswordMustBeChanged::class,
],
'api_middleware' => [

View File

@@ -5,6 +5,7 @@ use App\Http\Controllers\Auth\RegisterController;
use App\Http\Controllers\Auth\ResetPasswordController;
use App\Http\Controllers\LocaleController;
use App\Http\Controllers\OnlinePaymentController;
use App\Http\Middleware\CheckPasswordMustBeChanged;
use Illuminate\Support\Facades\Route;
/*
@@ -36,6 +37,10 @@ Route::middleware(['auth', 'unVerified'])->group(function () {
Route::post('sms-verification', [RegisterController::class, 'verifySmsCode']);
});
Route::middleware(['auth', CheckPasswordMustBeChanged::class])->group(function () {
});
Route::get('online-payment-store', [OnlinePaymentController::class, 'store'])
->name('online-payment-store');