commit5
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-10-29 22:03:09 +02:00
parent 57f6b3cc36
commit 413c201d97
54 changed files with 2753 additions and 14 deletions
+10 -1
View File
@@ -25,8 +25,17 @@ class RequisitionController extends Controller
{
public function index(Request $request): Response
{
$filters = $request->validate(['search' => 'nullable|string|max:100', 'status' => ['nullable', Rule::in(['draft', 'pending', 'approved', 'rejected', 'cancelled'])]]);
$filters = $request->validate(['search' => 'nullable|string|max:100', 'status' => ['nullable', Rule::in(['draft', 'pending', 'approved', 'rejected', 'cancelled'])], 'view' => ['nullable', Rule::in(['all', 'mine', 'approvals', 'decided'])]]);
$query = Requisition::query()->visibleTo($request->user())->with(['requester:id,name', 'department:id,name', 'steps']);
if (($filters['view'] ?? 'all') === 'mine') {
$query->where('requester_id', $request->user()->id);
} elseif (($filters['view'] ?? 'all') === 'approvals') {
$eligible = (clone $query)->where('status', 'pending')->get()
->filter(fn (Requisition $requisition) => $requisition->canDecide($request->user()))->modelKeys();
$query->whereIn('id', $eligible);
} elseif (($filters['view'] ?? 'all') === 'decided') {
$query->whereHas('steps', fn ($steps) => $steps->where('approver_id', $request->user()->id)->whereIn('decision', ['approved', 'rejected']));
}
if (! empty($filters['search'])) {
$query->where('number', 'like', '%'.$filters['search'].'%');
}