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