From 9c0da32841f591a6da9c9d91d87cec110d5e352e Mon Sep 17 00:00:00 2001 From: Cris Date: Mon, 6 Dec 2021 15:51:45 +0100 Subject: [PATCH] Adapted TEMPUS queries to get correct Zeitwunsch (of given Zeitwunschgueltigkeit) Now correct Zeitwunsch is displayed for - Wochenplan and Semesterplan of a lector - Wochenplan, when a LV is added, to which more lectors are assigned: Now query checks to get correct Zeitwunsch of each lector --- include/zeitwunsch.class.php | 39 +++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/include/zeitwunsch.class.php b/include/zeitwunsch.class.php index 9c60c3a7a..4e94ac059 100644 --- a/include/zeitwunsch.class.php +++ b/include/zeitwunsch.class.php @@ -197,15 +197,32 @@ class zeitwunsch extends basis_db } /** - * Alle Zeitwuensche einer Person laden + * Alle Zeitwuensche einer Person laden. + * Um auf einen Zeitwunsch einer bestimmten Zeit, also innerhalb einer bestimmten Zeitwunschgueltigkeit + * zu beschraenken, kann ein Datum mitgegeben werden. * @param uid - * @param datum + * @param datum UNIX timestamp, um Zeitwunsch mit richtiger Zeitwunschgueltigkeit zu ermitteln * @return boolean Ergebnis steht in Array $zeitwunsch wenn true */ public function loadPerson($uid,$datum=null) { + // Default datum: jetzt + if (is_null($datum)) + { + $datum = time(); + } + + $qry = " + SELECT * + FROM campus.tbl_zeitwunsch + JOIN campus.tbl_zeitwunsch_gueltigkeit zwg USING (zeitwunsch_gueltigkeit_id) + WHERE zwg.mitarbeiter_uid=". $this->db_add_param($uid). " + AND ". $this->db_add_param(date('Y-m-d', $datum)). " BETWEEN von AND bis; + "; + + // Zeitwuensche abfragen - if(!$this->db_query("SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid=".$this->db_add_param($uid))) + if(!$this->db_query($qry)) { $this->errormsg = $this->db_last_error(); return false; @@ -292,12 +309,16 @@ class zeitwunsch extends basis_db /** * Zeitwunsch der Personen in Lehreinheiten laden * @param $le_id LehreinheitID Array - * @param $datum + * @param $datum UNIX timestamp Datum, um Zeitwunsch mit richtiger Zeitwunschgueltigkeit zu ermitteln * @return true oder false */ - public function loadZwLE($le_id,$datum=null) + public function loadZwLE($le_id, $datum = null) { - //$this->init(); + // Default datum: jetzt + if (is_null($datum)) + { + $datum = time(); + } // SUB-Select fuer LVAs $sql_query_leid=''; $sql_query_le='SELECT DISTINCT mitarbeiter_uid FROM campus.vw_lehreinheit WHERE '; @@ -308,7 +329,11 @@ class zeitwunsch extends basis_db // Schlechteste Zeitwuensche holen $sql_query='SELECT tag,stunde,min(gewicht) AS gewicht - FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid IN ('.$sql_query_le.') GROUP BY tag,stunde'; + FROM campus.tbl_zeitwunsch + JOIN campus.tbl_zeitwunsch_gueltigkeit zwg USING (zeitwunsch_gueltigkeit_id) + WHERE zwg.mitarbeiter_uid IN ('.$sql_query_le.') + AND '. $this->db_add_param(date('Y-m-d', $datum)). ' BETWEEN von AND bis + GROUP BY tag,stunde;'; // Zeitwuensche abfragen if(!$this->db_query($sql_query))