From cef5f42d9e98c0ee253ba29de23470f9d18eecd2 Mon Sep 17 00:00:00 2001
From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de>
Date: Thu, 28 Jul 2022 12:36:33 +0000
Subject: [PATCH] replace SQL with standard query condition used in Stud.IP
 4.x, fixes #249

Closes #249

Merge request studip/studip!842
---
 db/migrations/1.310_add_seminare_semester_table.php | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/db/migrations/1.310_add_seminare_semester_table.php b/db/migrations/1.310_add_seminare_semester_table.php
index 7986dcc6593..8ad19d78bb0 100644
--- a/db/migrations/1.310_add_seminare_semester_table.php
+++ b/db/migrations/1.310_add_seminare_semester_table.php
@@ -19,19 +19,15 @@ class AddSeminareSemesterTable extends Migration
             );"
         );
 
-        //This select looks unorthodox but I am trying to catch even broken
-        //database entries for when start_time and duration_time don't exactly
-        //match the begin or end of the semester.
         DBManager::get()->exec("
             INSERT IGNORE INTO `semester_courses`
             (`semester_id`, `course_id`, `mkdate`, `chdate`)
             SELECT `semester_data`.`semester_id`, `seminare`.`Seminar_id`, `seminare`.`mkdate`, `seminare`.`chdate`
             FROM `seminare`
-            INNER JOIN `semester_data` ON (`seminare`.`start_time` < `semester_data`.`ende`
-                     AND (
-                         `seminare`.`start_time` >= `semester_data`.`beginn` AND `seminare`.`duration_time` >= '0'
-                     )
-                )
+            INNER JOIN `semester_data` ON 
+                `seminare`.`start_time` <= `semester_data`.`beginn` AND
+                `semester_data`.`beginn` <= `seminare`.`start_time` + `seminare`.`duration_time` AND
+                `seminare`.`duration_time` >= 0
         ");
     }
 
-- 
GitLab