diff --git a/application/libraries/collision/checks/LectureCollisionCheck.php b/application/libraries/collision/checks/LectureCollisionCheck.php index fff04e521..88868c59c 100644 --- a/application/libraries/collision/checks/LectureCollisionCheck.php +++ b/application/libraries/collision/checks/LectureCollisionCheck.php @@ -212,8 +212,8 @@ class LectureCollisionCheck implements ICollisionCheck $this->_ci->ZeitsperreModel->db->where_in('mitarbeiter_uid', $uids); $result = $this->_ci->ZeitsperreModel->loadWhere(array( - 'vondatum <' => date('Y-m-d', strtotime($data->von)), - 'bisdatum >' => date('Y-m-d', strtotime($data->bis)), + 'vondatum <=' => date('Y-m-d', strtotime($data->bis)), + 'bisdatum >=' => date('Y-m-d', strtotime($data->von)), )); if (isError($result) || !hasData($result)) return []; diff --git a/application/libraries/collision/checks/StudentCollisionCheck.php b/application/libraries/collision/checks/StudentCollisionCheck.php index 64afb049a..e2d342298 100644 --- a/application/libraries/collision/checks/StudentCollisionCheck.php +++ b/application/libraries/collision/checks/StudentCollisionCheck.php @@ -32,7 +32,7 @@ class StudentCollisionCheck implements ICollisionCheck $qry1 = " SELECT DISTINCT tbl_benutzergruppe.uid - FROM lehre.tbl_kalender + FROM lehre.tbl_kalender JOIN lehre.tbl_kalender_lehreinheit USING(kalender_id) JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_kalender_lehreinheit.lehreinheit_id JOIN lehre.tbl_lehreinheitgruppe ON tbl_lehreinheitgruppe.lehreinheit_id = tbl_lehreinheit.lehreinheit_id @@ -48,7 +48,7 @@ class StudentCollisionCheck implements ICollisionCheck UNION ALL SELECT DISTINCT tbl_studentlehrverband.student_uid AS uid - FROM lehre.tbl_kalender + FROM lehre.tbl_kalender JOIN lehre.tbl_kalender_lehreinheit USING(kalender_id) JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_kalender_lehreinheit.lehreinheit_id JOIN lehre.tbl_lehreinheitgruppe ON tbl_lehreinheitgruppe.lehreinheit_id = tbl_lehreinheit.lehreinheit_id @@ -57,7 +57,7 @@ class StudentCollisionCheck implements ICollisionCheck AND tbl_studentlehrverband.semester = tbl_lehreinheitgruppe.semester AND tbl_studentlehrverband.studiensemester_kurzbz = tbl_lehreinheit.studiensemester_kurzbz AND (tbl_lehreinheitgruppe.verband = tbl_studentlehrverband.verband OR tbl_lehreinheitgruppe.verband IS NULL OR btrim(tbl_lehreinheitgruppe.verband::text) = '' OR tbl_studentlehrverband.verband IS NULL) - AND (tbl_lehreinheitgruppe.gruppe = tbl_studentlehrverband.gruppe OR tbl_lehreinheitgruppe.gruppe IS NULL OR btrim(tbl_lehreinheitgruppe.gruppe::text) = '' OR tbl_studentlehrverband.gruppe IS NULL) + AND (tbl_lehreinheitgruppe.gruppe = tbl_studentlehrverband.gruppe OR tbl_lehreinheitgruppe.gruppe IS NULL OR btrim(tbl_lehreinheitgruppe.gruppe::text) = '' OR tbl_studentlehrverband.gruppe IS NULL) WHERE tbl_kalender.kalender_id = ? AND tbl_studentlehrverband.student_uid NOT IN ($placeholders) @@ -87,14 +87,14 @@ class StudentCollisionCheck implements ICollisionCheck JOIN public.tbl_benutzergruppe ON tbl_benutzergruppe.gruppe_kurzbz = tbl_gruppe.gruppe_kurzbz AND tbl_benutzergruppe.studiensemester_kurzbz = tbl_lehreinheit.studiensemester_kurzbz WHERE tbl_kalender.von < ? - AND tbl_kalender.bis > ? - AND tbl_kalender.kalender_id != ? - AND tbl_kalender.status_kurzbz NOT IN ('archived', 'deleted', 'to_delete') - AND tbl_benutzergruppe.uid NOT IN ($placeholders) - AND NOT EXISTS ( - SELECT 1 FROM lehre.tbl_kalender vorgaenger - WHERE vorgaenger.vorgaenger_kalender_id = tbl_kalender.kalender_id - ) + AND tbl_kalender.bis > ? + AND tbl_kalender.kalender_id != ? + AND tbl_kalender.status_kurzbz NOT IN ('archived', 'deleted', 'to_delete') + AND tbl_benutzergruppe.uid NOT IN ($placeholders) + AND NOT EXISTS ( + SELECT 1 FROM lehre.tbl_kalender vorgaenger + WHERE vorgaenger.vorgaenger_kalender_id = tbl_kalender.kalender_id + ) UNION ALL @@ -108,16 +108,16 @@ class StudentCollisionCheck implements ICollisionCheck AND tbl_studentlehrverband.semester = tbl_lehreinheitgruppe.semester AND tbl_studentlehrverband.studiensemester_kurzbz = tbl_lehreinheit.studiensemester_kurzbz AND (tbl_lehreinheitgruppe.verband = tbl_studentlehrverband.verband OR tbl_lehreinheitgruppe.verband IS NULL OR btrim(tbl_lehreinheitgruppe.verband::text) = '' OR tbl_studentlehrverband.verband IS NULL) - AND (tbl_lehreinheitgruppe.gruppe = tbl_studentlehrverband.gruppe OR tbl_lehreinheitgruppe.gruppe IS NULL OR btrim(tbl_lehreinheitgruppe.gruppe::text) = '' OR tbl_studentlehrverband.gruppe IS NULL) + AND (tbl_lehreinheitgruppe.gruppe = tbl_studentlehrverband.gruppe OR tbl_lehreinheitgruppe.gruppe IS NULL OR btrim(tbl_lehreinheitgruppe.gruppe::text) = '' OR tbl_studentlehrverband.gruppe IS NULL) WHERE tbl_kalender.von < ? - AND tbl_kalender.bis > ? - AND tbl_kalender.kalender_id != ? - AND tbl_kalender.status_kurzbz NOT IN ('archived', 'deleted', 'to_delete') - AND tbl_studentlehrverband.student_uid NOT IN ($placeholders) - AND NOT EXISTS ( - SELECT 1 FROM lehre.tbl_kalender vorgaenger - WHERE vorgaenger.vorgaenger_kalender_id = tbl_kalender.kalender_id - ) + AND tbl_kalender.bis > ? + AND tbl_kalender.kalender_id != ? + AND tbl_kalender.status_kurzbz NOT IN ('archived', 'deleted', 'to_delete') + AND tbl_studentlehrverband.student_uid NOT IN ($placeholders) + AND NOT EXISTS ( + SELECT 1 FROM lehre.tbl_kalender vorgaenger + WHERE vorgaenger.vorgaenger_kalender_id = tbl_kalender.kalender_id + ) "; $result2 = $dbModel->execReadOnlyQuery($qry2, array_merge( @@ -200,7 +200,7 @@ class StudentCollisionCheck implements ICollisionCheck AND current_studentlehrverband.semester = current_lehreinheitgruppe.semester AND current_studentlehrverband.studiensemester_kurzbz = current_lehreinheit.studiensemester_kurzbz AND (current_lehreinheitgruppe.verband = current_studentlehrverband.verband OR current_lehreinheitgruppe.verband IS NULL OR btrim(current_lehreinheitgruppe.verband::text) = '' OR current_studentlehrverband.verband IS NULL) - AND (current_lehreinheitgruppe.gruppe = current_studentlehrverband.gruppe OR current_lehreinheitgruppe.gruppe IS NULL OR btrim(current_lehreinheitgruppe.gruppe::text) = '' OR current_studentlehrverband.gruppe IS NULL) + AND (current_lehreinheitgruppe.gruppe = current_studentlehrverband.gruppe OR current_lehreinheitgruppe.gruppe IS NULL OR btrim(current_lehreinheitgruppe.gruppe::text) = '' OR current_studentlehrverband.gruppe IS NULL) JOIN lehre.tbl_kalender other_kalender ON other_kalender.kalender_id != current_kalender.kalender_id @@ -220,7 +220,7 @@ class StudentCollisionCheck implements ICollisionCheck AND other_slv.studiensemester_kurzbz = other_lehreinheit.studiensemester_kurzbz AND other_slv.student_uid = current_studentlehrverband.student_uid AND (other_lehreinheitgruppe.verband = other_slv.verband OR other_lehreinheitgruppe.verband IS NULL OR btrim(other_lehreinheitgruppe.verband::text) = '' OR other_slv.verband IS NULL) - AND (other_lehreinheitgruppe.gruppe = other_slv.gruppe OR other_lehreinheitgruppe.gruppe IS NULL OR btrim(other_lehreinheitgruppe.gruppe::text) = '' OR other_slv.gruppe IS NULL) + AND (other_lehreinheitgruppe.gruppe = other_slv.gruppe OR other_lehreinheitgruppe.gruppe IS NULL OR btrim(other_lehreinheitgruppe.gruppe::text) = '' OR other_slv.gruppe IS NULL) WHERE current_kalender.kalender_id IN ($placeholders) "; diff --git a/application/libraries/collision/checks/VerbandCollisionCheck.php b/application/libraries/collision/checks/VerbandCollisionCheck.php index 658ac55dd..32eb8a333 100644 --- a/application/libraries/collision/checks/VerbandCollisionCheck.php +++ b/application/libraries/collision/checks/VerbandCollisionCheck.php @@ -25,12 +25,12 @@ class VerbandCollisionCheck implements ICollisionCheck if ($this->_ci->variablelib->getVar('ignore_kollision') === 'true') return []; - $kollision_student = $this->_ci->variablelib->getVar('kollision_student') === 'false'; + $kollision_student = $this->_ci->variablelib->getVar('kollision_student') === 'false'; $kollision_reservierung = $this->_ci->variablelib->getVar('ignore_reservierung') === 'false'; if (!$kollision_student && !$kollision_reservierung) return []; - $dbModel = new DB_Model(); + $dbModel = new DB_Model(); $collisions = []; if ($kollision_student) @@ -61,7 +61,7 @@ class VerbandCollisionCheck implements ICollisionCheck JOIN ( SELECT tbl_lehreinheitgruppe.studiengang_kz, tbl_lehreinheitgruppe.semester, tbl_lehreinheitgruppe.verband, tbl_lehreinheitgruppe.gruppe, - tbl_lehreinheitgruppe.gruppe_kurzbz, tbl_kalender_lehreinheit.kalender_id + tbl_lehreinheitgruppe.gruppe_kurzbz, tbl_kalender_lehreinheit.kalender_id FROM lehre.tbl_kalender_lehreinheit JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_kalender_lehreinheit.lehreinheit_id JOIN lehre.tbl_lehreinheitgruppe ON tbl_lehreinheitgruppe.lehreinheit_id = tbl_lehreinheit.lehreinheit_id @@ -78,7 +78,7 @@ class VerbandCollisionCheck implements ICollisionCheck JOIN ( SELECT tbl_lehreinheitgruppe.studiengang_kz, tbl_lehreinheitgruppe.semester, tbl_lehreinheitgruppe.verband, tbl_lehreinheitgruppe.gruppe, - tbl_lehreinheitgruppe.gruppe_kurzbz, tbl_kalender_lehreinheit.kalender_id + tbl_lehreinheitgruppe.gruppe_kurzbz, tbl_kalender_lehreinheit.kalender_id FROM lehre.tbl_kalender_lehreinheit JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_kalender_lehreinheit.lehreinheit_id JOIN lehre.tbl_lehreinheitgruppe ON tbl_lehreinheitgruppe.lehreinheit_id = tbl_lehreinheit.lehreinheit_id @@ -257,7 +257,7 @@ class VerbandCollisionCheck implements ICollisionCheck JOIN ( SELECT tbl_lehreinheitgruppe.studiengang_kz, tbl_lehreinheitgruppe.semester, tbl_lehreinheitgruppe.verband, tbl_lehreinheitgruppe.gruppe, - tbl_lehreinheitgruppe.gruppe_kurzbz, tbl_kalender_lehreinheit.kalender_id + tbl_lehreinheitgruppe.gruppe_kurzbz, tbl_kalender_lehreinheit.kalender_id FROM lehre.tbl_kalender_lehreinheit JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_kalender_lehreinheit.lehreinheit_id JOIN lehre.tbl_lehreinheitgruppe ON tbl_lehreinheitgruppe.lehreinheit_id = tbl_lehreinheit.lehreinheit_id @@ -277,7 +277,7 @@ class VerbandCollisionCheck implements ICollisionCheck JOIN ( SELECT tbl_lehreinheitgruppe.studiengang_kz, tbl_lehreinheitgruppe.semester, tbl_lehreinheitgruppe.verband, tbl_lehreinheitgruppe.gruppe, - tbl_lehreinheitgruppe.gruppe_kurzbz, tbl_kalender_lehreinheit.kalender_id + tbl_lehreinheitgruppe.gruppe_kurzbz, tbl_kalender_lehreinheit.kalender_id FROM lehre.tbl_kalender_lehreinheit JOIN lehre.tbl_lehreinheit ON tbl_lehreinheit.lehreinheit_id = tbl_kalender_lehreinheit.lehreinheit_id JOIN lehre.tbl_lehreinheitgruppe ON tbl_lehreinheitgruppe.lehreinheit_id = tbl_lehreinheit.lehreinheit_id