From 1aea76bbe6fc210a2063e13c0f3fb0d0b26afc13 Mon Sep 17 00:00:00 2001
From: Rasmus Fuhse <fuhse@data-quest.de>
Date: Thu, 31 Mar 2022 16:01:55 +0200
Subject: [PATCH] bugfix copying of room bookings

---
 controllers/copy.php | 40 ++++++++++++++++++++++++++++------------
 plugin.manifest      |  2 +-
 2 files changed, 29 insertions(+), 13 deletions(-)

diff --git a/controllers/copy.php b/controllers/copy.php
index b2b26e2..67dcff3 100755
--- a/controllers/copy.php
+++ b/controllers/copy.php
@@ -254,18 +254,33 @@ class CopyController extends PluginController
                                 }
 
                                 if (Request::get("resource_assignments")) {
-                                    $statement = DBManager::get()->prepare("
-                                        SELECT resource_id
-                                        FROM (
-                                            SELECT resource_id, COUNT(*) AS number
-                                            FROM termine
-                                                INNER JOIN resources_assign ON (resources_assign.assign_user_id = termine.termin_id)
-                                            WHERE termine.metadate_id = :metadate_id
-                                            GROUP BY resources_assign.resource_id
-                                        ) AS counter
-                                        ORDER BY number DESC
-                                        LIMIT 1
-                                    ");
+                                    if (StudipVersion::newerThan("4.4.99")) {
+                                        $statement = DBManager::get()->prepare("
+                                            SELECT resource_id
+                                            FROM (
+                                                SELECT resource_bookings.resource_id, COUNT(*) AS number
+                                                FROM termine
+                                                    INNER JOIN resource_bookings ON (resource_bookings.range_id = termine.termin_id)
+                                                WHERE termine.metadate_id = :metadate_id
+                                                GROUP BY resource_bookings.resource_id
+                                            ) AS counter
+                                            ORDER BY number DESC
+                                            LIMIT 1
+                                        ");
+                                    } else {
+                                        $statement = DBManager::get()->prepare("
+                                            SELECT resource_id
+                                            FROM (
+                                                SELECT resource_id, COUNT(*) AS number
+                                                FROM termine
+                                                    INNER JOIN resources_assign ON (resources_assign.assign_user_id = termine.termin_id)
+                                                WHERE termine.metadate_id = :metadate_id
+                                                GROUP BY resources_assign.resource_id
+                                            ) AS counter
+                                            ORDER BY number DESC
+                                            LIMIT 1
+                                        ");
+                                    }
                                     $statement->execute(array('metadate_id' => $cycledate->getId()));
                                     $resource_id = $statement->fetch(PDO::FETCH_COLUMN, 0);
                                     if ($resource_id) {
@@ -274,6 +289,7 @@ class CopyController extends PluginController
                                             $singledate->bookRoom($resource_id);
                                         }
                                     }
+
                                 }
                             }
                         }
diff --git a/plugin.manifest b/plugin.manifest
index c82045d..15b1051 100755
--- a/plugin.manifest
+++ b/plugin.manifest
@@ -1,6 +1,6 @@
 pluginname=CourseCopy
 pluginclassname=CourseCopy
-version=1.9
+version=1.9.1
 origin=data-quest
 studipMinVersion=4.0
 studipMaxVersion=5.1.99
-- 
GitLab