- vacation type filter (#146)

* vacation type filter

* fix

* fix
This commit is contained in:
Adrian Hopek
2022-05-11 14:58:30 +02:00
committed by GitHub
parent 88b1543071
commit 74f33d6c0b
2 changed files with 91 additions and 10 deletions

View File

@@ -92,19 +92,16 @@ class VacationRequestController extends Controller
}
$yearPeriod = $yearPeriodRetriever->selected();
$status = $request->get("status");
$status = $request->get("status", "all");
$user = $request->get("user");
$type = $request->get("type");
$vacationRequests = VacationRequest::query()
->with(["user", "vacations"])
->whereBelongsTo($yearPeriod)
->when($user !== null, fn(Builder $query): Builder => $query->where("user_id", $user))
->when(
$status !== null,
fn(Builder $query): Builder => $query->states(
VacationRequestStatesRetriever::filterByStatusGroup($status, $request->user()),
),
)
->when($type !== null, fn(Builder $query): Builder => $query->where("type", $type))
->states(VacationRequestStatesRetriever::filterByStatusGroup($status, $request->user()))
->latest()
->paginate();
@@ -116,9 +113,11 @@ class VacationRequestController extends Controller
return inertia("VacationRequest/IndexForApprovers", [
"requests" => VacationRequestResource::collection($vacationRequests),
"users" => SimpleUserResource::collection($users),
"types" => VacationType::casesToSelect(),
"filters" => [
"status" => $status,
"user" => (int)$user,
"type" => $type,
],
]);
}