From 46bcded3dfbb180fe94341d7ed2f2d31bd48273a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Till=20Gl=C3=B6ggler?= <till@gundk.it> Date: Fri, 8 Oct 2021 12:49:47 +0200 Subject: [PATCH] fixes #281, improve query, consider aperiodic case as well --- app/controllers/resources/room_request.php | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php index 0c1b6eec286..0986dbce97c 100644 --- a/app/controllers/resources/room_request.php +++ b/app/controllers/resources/room_request.php @@ -210,15 +210,31 @@ class Resources_RoomRequestController extends AuthenticatedController if ($this->filter['request_periods'] == 'periodic') { // get rid of requests for single dates AND requests for multiple single dates + // also check if there exists cycle dates in case it is a request for the whole seminar $sql .= " AND resource_requests.termin_id = '' AND NOT EXISTS ( SELECT * FROM resource_request_appointments WHERE resource_request_appointments.request_id = resource_requests.id + ) + AND EXISTS ( + SELECT * FROM seminar_cycle_dates + WHERE seminar_cycle_dates.seminar_id = resource_requests.course_id )"; } if ($this->filter['request_periods'] == 'aperiodic') { - $sql .= " AND resource_requests.termin_id <> '' "; + $sql .= " AND ( + resource_requests.termin_id <> '' + OR EXISTS + ( + SELECT * FROM resource_request_appointments + WHERE resource_request_appointments.request_id = resource_requests.id + ) + OR NOT EXISTS ( + SELECT * FROM seminar_cycle_dates + WHERE seminar_cycle_dates.seminar_id = resource_requests.course_id + ) + )"; } -- GitLab