From 4e50f6eea2df3105523ba621dc028005946c8fc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 6 Nov 2019 15:55:13 +0100 Subject: [PATCH] =?UTF-8?q?Assistenzfunktion=20wird=20nicht=20mehr=20autom?= =?UTF-8?q?atisch=20als=20disziplin=C3=A4re=20Zuordnung=20zur=20jeweiligen?= =?UTF-8?q?=20Abteilung=20gewertet.=20Zur=20Ermittlung=20der=20Untergebene?= =?UTF-8?q?n=20wird=20nur=20noch=20die=20oezuordnung=20verwendet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/mitarbeiter.class.php | 57 +++++++++++++++++------------------ 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index 2457c806a..fc86b796d 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1118,17 +1118,17 @@ class mitarbeiter extends benutzer $oe.=$this->db_add_param($row->oe_kurzbz); } } - + // Kinder-Organisationseinheiten holen if ($include_OE_childs == true) { if (!empty($oe)) { $child_oe_arr = array(); // array of string child oes - + $qry = ' - WITH RECURSIVE - oes (oe_kurzbz, oe_parent_kurzbz) AS + WITH RECURSIVE + oes (oe_kurzbz, oe_parent_kurzbz) AS ( SELECT oe_kurzbz, @@ -1140,11 +1140,11 @@ class mitarbeiter extends benutzer UNION ALL - SELECT + SELECT o.oe_kurzbz, o.oe_parent_kurzbz FROM - public.tbl_organisationseinheit o, oes + public.tbl_organisationseinheit o, oes WHERE o.oe_parent_kurzbz = oes.oe_kurzbz ) @@ -1156,39 +1156,39 @@ class mitarbeiter extends benutzer oe_kurzbz'; if($this->db_query($qry)) - { + { while($row = $this->db_fetch_object()) { $child_oe_arr []= $this->db_add_param($row->oe_kurzbz); } } - + // eliminate duplicates $child_oe_arr = array_unique($child_oe_arr); - + // check if leader has child oes by comparing the original // string of oes with string of child oes. if ($oe == implode(',', $child_oe_arr)) { $this->result ['isIndirectSupervisor']= false; - } + } else { $this->result ['isIndirectSupervisor']= true; } - + // overwrite $oe with child oes for further query $oe = implode(',', $child_oe_arr); - } + } } - + //Alle Personen holen die dieser Organisationseinheit untergeordnet sind $qry = " - SELECT distinct - uid - FROM - public.tbl_benutzerfunktion + SELECT distinct + uid + FROM + public.tbl_benutzerfunktion JOIN public.tbl_benutzer USING (uid) @@ -1199,12 +1199,9 @@ class mitarbeiter extends benutzer $qry.=")) "; - if($oe!='') - $qry.=" OR (funktion_kurzbz='ass' AND oe_kurzbz in($oe))"; - - $qry.= ") - AND - (tbl_benutzerfunktion.datum_von is null OR tbl_benutzerfunktion.datum_von<=now()) + $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 @@ -1491,15 +1488,15 @@ class mitarbeiter extends benutzer return false; } } - + /** Check if uid is a supervisor - * + * * @param string $uid * @param string $employee_uid * @return boolean True if $uid is direct leader of $employee_uid. */ function check_isVorgesetzter($uid, $employee_uid) - { + { $this->getUntergebene($uid); $untergebenen_arr = $this->untergebene; @@ -1515,14 +1512,14 @@ class mitarbeiter extends benutzer } } /** Check if uid is a supervisor on higher oe level - * + * * @param string $uid * @param string $employee_uid * @return boolean True if $uid is indirect supervisor (leader on higher oe-level) - * of $employee_uid. - * :NOTE: as all children oes also include the direct oe, the return value is also true when + * of $employee_uid. + * :NOTE: as all children oes also include the direct oe, the return value is also true when * uid is ONLY direct leader. To distinguish you might check in the calling script: - * isVorgesetzter_indirekt && isVorgesetzter --> direct leader + * isVorgesetzter_indirekt && isVorgesetzter --> direct leader * isVorgesetzter_indirekt && !isVorgesetzter --> only super leader on higher level */ function check_isVorgesetzter_indirekt($uid, $employee_uid)