test drive

This commit is contained in:
2025-04-21 10:39:02 +05:00
parent 885dc939c6
commit 016ffd7614
10 changed files with 158 additions and 36 deletions

View File

@@ -4,6 +4,7 @@ namespace App\Nova\Resources\Order\Card;
use App\Models\Branch\Branch;
use App\Models\Order\Card\CardOrder as CardOrderModel;
use App\Modules\CardOrder\Nova\Actions\RetryNovaCardOrderPayment;
use App\Nova\Filters\RegionFilter;
use App\Nova\Filters\StatusFilter;
use App\Nova\Forms\NovaForm;
@@ -23,10 +24,7 @@ use App\Rules\DowranAgaAllowed;
use App\Rules\OnlyLetters;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Gate;
use Laravel\Nova\Actions\Action;
use Laravel\Nova\Fields\ActionFields;
use Laravel\Nova\Fields\Date;
use Laravel\Nova\Fields\Hidden;
use Laravel\Nova\Fields\ID;
@@ -40,6 +38,9 @@ use Laravel\Nova\URL;
use Nurmuhammet\NovaCustomHtml\NovaCustomHtml;
use Nurmuhammet\NovaInputmask\NovaInputmask;
/**
* @mixin CardOrderModel
*/
class CardOrder extends Resource
{
/**
@@ -117,17 +118,18 @@ class CardOrder extends Resource
*/
public static function indexQuery(NovaRequest $request, mixed $query): Builder
{
/** @var \App\Models\User */
$user = $request->user();
if ($user->isAdmin()) {
return $query;
}
if ($user->isOperator()) {
if ($user->isOperator() && count($user->branches()->pluck('branches.id')) < 1) {
return $query->whereIn('branch_id', $user->branches()->pluck('branches.id'));
}
return $query->where('user_id', $request->user()->id);
return $query->where('user_id', $user->id);
}
/**
@@ -155,20 +157,6 @@ class CardOrder extends Resource
: sprintf('resources/%s/%s', static::uriKey(), $resource->getKey());
}
/**
* Return the location to redirect the user after update.
*
* @param \Laravel\Nova\Resource $resource
*/
// public static function redirectAfterUpdate(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.
*
@@ -389,19 +377,10 @@ class CardOrder extends Resource
public function actions(NovaRequest $request): array
{
return [
Action::using('Tölegi täzeden geçir', function (ActionFields $fields, Collection $models) {
$resource = $models->first();
$payment = (new OnlinePaymentRepo)->payCardOrder($resource);
return $payment['status'] === 'success'
? URL::remote($payment['url'])
: sprintf('resources/%s/%s', static::uriKey(), $resource->getKey());
})->icon('credit-card')
RetryNovaCardOrderPayment::make()
->icon('credit-card')
->sole()
->canSee(function ($request) {
return $request->user()->isAdmin();
}),
->canSee(RetryNovaCardOrderPayment::permissions($this)),
];
}
}