diff --git a/app/controllers/resources/room_request.php b/app/controllers/resources/room_request.php index 0c1b6eec286cf9755f57fc33dd1284b46a7cac55..0986dbce97cea8761c382526a1d1dd4753b78bf1 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 + ) + )"; }