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';
+ }
+}