From 97a020460d3b57f0af9ce311860f1ede6baa2be9 Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 10 Jan 2024 14:31:26 +0100 Subject: [PATCH] Adapted: getVorgesetzteByDate to retrieve only the latest Vorgesetzte by a specific date Added order by and limit to get only one and the most actual Vorgesetzte by given date. Changed name. Before it was getVorgesetzteMonatTimesheet, but it is also used independently from timesheet. --- include/mitarbeiter.class.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index 00b5c4d51..9bcdc352b 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1122,9 +1122,12 @@ class mitarbeiter extends benutzer /** * Gibt ein Array mit den UIDs der Vorgesetzten zum Zeitpunkt des korrespondierenden Timesheets zurück + * @param $uid + * @param $date + * @param null $limit LIMIT = 1 liefert bei mehreren Vorgesetzten den letzten (aktuellsten) zurück. * @return uid */ - public function getVorgesetzteMonatTimesheet($uid, $timesheetDate) + public function getVorgesetzteByDate($uid, $date, $limit = null) { $return=false; @@ -1134,15 +1137,21 @@ class mitarbeiter extends benutzer public.tbl_benutzerfunktion WHERE funktion_kurzbz='Leitung' AND - (datum_von is null OR datum_von<=".$this->db_add_param($timesheetDate).") AND - (datum_bis is null OR datum_bis>=".$this->db_add_param($timesheetDate).") AND + (datum_von is null OR datum_von<=".$this->db_add_param($date).") AND + (datum_bis is null OR datum_bis>=".$this->db_add_param($date).") AND oe_kurzbz in (SELECT oe_kurzbz FROM public.tbl_benutzerfunktion WHERE funktion_kurzbz='oezuordnung' AND uid=".$this->db_add_param($uid)." AND - (datum_von is null OR (datum_von<= ".$this->db_add_param($timesheetDate).")) AND - (datum_bis is null OR (datum_bis>=".$this->db_add_param($timesheetDate).")) - );"; + (datum_von is null OR (datum_von<= ".$this->db_add_param($date).")) AND + (datum_bis is null OR (datum_bis>=".$this->db_add_param($date).")) + ) + ORDER BY datum_von DESC "; + + if (is_numeric($limit)) + { + $qry .= 'LIMIT '. $this->db_add_param($limit); + } if($this->db_query($qry)) {