diff --git a/app/Nova/Resources/Order/Card/CardTransaction/CardTransaction.php b/app/Nova/Resources/Order/Card/CardTransaction/CardTransaction.php index e817880..fe6776a 100644 --- a/app/Nova/Resources/Order/Card/CardTransaction/CardTransaction.php +++ b/app/Nova/Resources/Order/Card/CardTransaction/CardTransaction.php @@ -7,6 +7,7 @@ use App\Nova\Resource; use App\Nova\Resources\Order\Card\CardTransaction\Actions\DownloadCardTransaction; use App\Repos\System\Settings\Legal\PassportRepo; use Illuminate\Http\Request; +use Illuminate\Database\Eloquent\Builder; use Laravel\Nova\Fields\Hidden; use Laravel\Nova\Fields\ID; use Laravel\Nova\Fields\Select; @@ -54,6 +55,28 @@ class CardTransaction extends Resource return __('Card transaction'); } + /** + * Build an "index" query for the given resource. + * + * @param \Illuminate\Database\Eloquent\Builder<\App\Models\Order\Card\CardTransaction\CardTransaction> $query + * @return \Illuminate\Database\Eloquent\Builder<\App\Models\Order\Card\CardTransaction\CardTransaction> + */ + public static function indexQuery(NovaRequest $request, $query): Builder + { + /** @var \App\Models\User */ + $user = $request->user(); + + if ($user->isAdmin()) { + return $query; + } + + 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', $user->id); + } + /** * Get the fields displayed by the resource. *