From b5024b86ea29940c8891dd55ca4592aee140ae4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 5 Feb 2024 18:54:33 +0100 Subject: [PATCH] OEZuordnung wird priorisiert ermittelt bei Karenzen --- include/mitarbeiter.class.php | 35 ++++++++++++++----- system/dbupdate_3.4.php | 1 + .../36275_zeitaufzeichnung_karenz.php | 16 +++++++++ 3 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 system/dbupdate_3.4/36275_zeitaufzeichnung_karenz.php diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index b7d56bd3d..88ba217b8 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -1139,13 +1139,30 @@ class mitarbeiter extends benutzer funktion_kurzbz='Leitung' 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($date).")) AND - (datum_bis is null OR (datum_bis>=".$this->db_add_param($date).")) - ) + 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($date).")) AND + (datum_bis is null OR (datum_bis>=".$this->db_add_param($date).")) + ORDER BY + ( + SELECT + 1 + FROM + hr.tbl_vertragsbestandteil_funktion + JOIN hr.tbl_vertragsbestandteil vbsfkt USING(vertragsbestandteil_id) + JOIN hr.tbl_vertragsbestandteil vbskarenz USING(dienstverhaeltnis_id) + WHERE + tbl_vertragsbestandteil_funktion.benutzerfunktion_id=tbl_benutzerfunktion.benutzerfunktion_id + AND vbskarenz.vertragsbestandteiltyp_kurzbz='karenz' + AND (vbskarenz.von <= ".$this->db_add_param($date)." OR vbskarenz.von is null) + AND (vbskarenz.bis >= ".$this->db_add_param($date)." OR vbskarenz.bis is null) + ) NULLS FIRST LIMIT 1 + ) ORDER BY datum_von DESC "; if (is_numeric($limit)) @@ -1754,7 +1771,7 @@ class mitarbeiter extends benutzer { if (is_null($uid)) $uid = $this->uid; - + $qry = " SELECT o.oe_kurzbz AS standardkostenstelle, o.bezeichnung FROM public.tbl_benutzerfunktion bf @@ -1771,7 +1788,7 @@ class mitarbeiter extends benutzer $obj = new StdClass(); $obj->oekurzbz = $row->standardkostenstelle; $obj->bezeichnung = $row->bezeichnung; - + $this->result []= $obj; } return true; diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index c8669de28..717cc58f3 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -49,6 +49,7 @@ require_once('dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruend require_once('dbupdate_3.4/29529_infocenter_anpassungen.php'); require_once('dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php'); require_once('dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php'); +require_once('dbupdate_3.4/36275_zeitaufzeichnung_karenz.php'); // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen diff --git a/system/dbupdate_3.4/36275_zeitaufzeichnung_karenz.php b/system/dbupdate_3.4/36275_zeitaufzeichnung_karenz.php new file mode 100644 index 000000000..ecdbe31f5 --- /dev/null +++ b/system/dbupdate_3.4/36275_zeitaufzeichnung_karenz.php @@ -0,0 +1,16 @@ +db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_vertragsbestandteil_funktion' AND table_schema='hr' AND grantee='web' AND privilege_type='SELECT'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "GRANT SELECT ON hr.tbl_vertragsbestandteil_funktion TO web;"; + + if (! $db->db_query($qry)) + echo 'Vertragsbestandteil Funktion Rechte: ' . $db->db_last_error() . '
'; + else + echo 'Leserechte für Web User auf vertragsbetandteil_funktion hinzugefuegt'; + } +}