From 7c7d1205d1ae4c1f72819c8da1ac17961ea21d68 Mon Sep 17 00:00:00 2001 From: tgloeggl <tgloeggl@uos.de> Date: Mon, 8 Nov 2021 14:40:40 +0100 Subject: [PATCH] refs #251, overlap check for (forced) booking not working --- lib/models/resources/ResourceBooking.class.php | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/lib/models/resources/ResourceBooking.class.php b/lib/models/resources/ResourceBooking.class.php index 0d1874b320e..e12ce922d95 100644 --- a/lib/models/resources/ResourceBooking.class.php +++ b/lib/models/resources/ResourceBooking.class.php @@ -730,12 +730,8 @@ class ResourceBooking extends SimpleORMap implements PrivacyObject, Studip\Calen if ($derived_resource->userHasPermission($this->booking_user, 'tutor', [$current_begin, $current_end])) { //Sufficient permissions to delete bookings //in the time frame. - $delete_sql = '(begin BETWEEN :begin AND :end - OR - end BETWEEN :begin AND :end) - AND NOT ((begin = :end) OR (end = :begin)) - AND - resource_id = :resource_id '; + $delete_sql = 'begin < :end AND end > :begin + AND resource_id = :resource_id '; $sql_params = [ 'begin' => $current_begin->getTimestamp(), 'end' => $current_end->getTimestamp(), @@ -767,12 +763,8 @@ class ResourceBooking extends SimpleORMap implements PrivacyObject, Studip\Calen } else { $derived_resource = $this->resource->getDerivedClassInstance(); if ($derived_resource->userHasPermission($this->booking_user, 'autor', [$real_begin, $end])) { - $delete_sql = '(begin BETWEEN :begin AND :end - OR - end BETWEEN :begin AND :end) - AND NOT ((begin = :end) OR (end = :begin)) - AND - resource_id = :resource_id '; + $delete_sql = 'begin < :end AND end > :begin + AND resource_id = :resource_id '; $sql_params = [ 'begin' => $real_begin->getTimestamp(), 'end' => $end->getTimestamp(), -- GitLab