From e3f10069ef0216d9488bbc8df33ab1d62fdebf75 Mon Sep 17 00:00:00 2001 From: Cris Date: Wed, 10 Jan 2024 14:42:13 +0100 Subject: [PATCH] =?UTF-8?q?Adapted=20getUntergebene=20to=20allow=20to=20in?= =?UTF-8?q?clude=20also=20Mitarbeiter,=20who=20ended=20Dienstverh=C3=A4ltn?= =?UTF-8?q?is/changed=20OE=20last=20month?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These allows Vorgesetzte to still access their data, for example to be able to accept their November-Monatsliste (last working month) in December (month to accept the November-Monatsliste) --- include/mitarbeiter.class.php | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index 9bcdc352b..8baa86b02 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1220,16 +1220,16 @@ class mitarbeiter extends benutzer return $return; } - - /** * Gibt ein Array mit den UIDs der aktiv beschäftigten Untergebenen zurueck * @param string $uid UID. * @param boolean $include_OE_childs Wenn true, dann werden auch alle aktiv * beschäftigten Untergebenen der Kind-OEs des Leiters zurückgegeben. + * @param bool $fixangestellte_only + * @param bool $include_ImLetztenMonatBeendete Inkludiert Mitarbeiter, deren Benutzerfunktion im letzten Monat bereits endete * @return boolean */ - public function getUntergebene($uid=null, $include_OE_childs = false, $fixangestellte_only = true) + public function getUntergebene($uid=null, $include_OE_childs = false, $fixangestellte_only = true, $include_ImLetztenMonatBeendete = false) { if (is_null($uid)) $uid=$this->uid; @@ -1336,11 +1336,18 @@ class mitarbeiter extends benutzer $qry.= ") AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) - AND - (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis>=now()) - AND - tbl_benutzer.aktiv = 'true'"; + (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now())"; + if ($include_ImLetztenMonatBeendete) + { + // hier kein check auf aktiv = 'true', da hier auch DV abgefragt werden, die im letzten Monat beendet wurden + $qry .= " AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis >= (DATE_TRUNC('MONTH', NOW()) - INTERVAL '1 month'))"; + } + else { + + $qry .= " AND (tbl_benutzerfunktion.datum_bis is null OR tbl_benutzerfunktion.datum_bis >= now())"; + $qry .= " AND tbl_benutzer.aktiv = 'true'"; + } + if ($fixangestellte_only) $qry .= " AND tbl_mitarbeiter.fixangestellt"; $qry .= ";";