diff --git a/content/fasoverlay.xul.php b/content/fasoverlay.xul.php
index 458760b2d..8efb9755d 100644
--- a/content/fasoverlay.xul.php
+++ b/content/fasoverlay.xul.php
@@ -105,45 +105,6 @@ echo '
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
';
diff --git a/content/mitarbeiter/mitarbeiteroverlay.js.php b/content/mitarbeiter/mitarbeiteroverlay.js.php
index 9ea4701db..400b9c3b6 100644
--- a/content/mitarbeiter/mitarbeiteroverlay.js.php
+++ b/content/mitarbeiter/mitarbeiteroverlay.js.php
@@ -306,6 +306,18 @@ function onMitarbeiterSelect()
{
attributes+="&VertragNochNichtRetour";
}
+ if(filter=="VertragHabilitiert")
+ {
+ attributes+="&VertragHabilitiert";
+ }
+ if(filter=="VertragNichtHabilitiert")
+ {
+ attributes+="&VertragNichtHabilitiert";
+ }
+ if(filter=="VertragNichtGedruckt")
+ {
+ attributes+="&VertragNichtGedruckt";
+ }
document.getElementById('mitarbeiter-toolbar-neu').disabled=false;
//Timestamp anhaengen da beim Laden von Zwischengespeicherten Dateien kein
//Observer Event ausgeloest wird.
diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php
index 68d86593d..d13e5ed51 100644
--- a/include/mitarbeiter.class.php
+++ b/include/mitarbeiter.class.php
@@ -643,7 +643,7 @@ class mitarbeiter extends benutzer
* @param $verwendung wenn true werden alle geladen die eine BIS-Verwendung eingetragen haben
* @return boolean
*/
- public function getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $verwendung, $vertragnochnichtretour=null)
+ public function getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $verwendung, $vertrag=null)
{
$qry = "SELECT distinct on(mitarbeiter_uid) *, tbl_benutzer.aktiv as aktiv, tbl_mitarbeiter.insertamum, tbl_mitarbeiter.insertvon, tbl_mitarbeiter.updateamum, tbl_mitarbeiter.updatevon FROM ((public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid)) JOIN public.tbl_person USING(person_id)) LEFT JOIN public.tbl_benutzerfunktion USING(uid) LEFT JOIN campus.tbl_resturlaub USING(mitarbeiter_uid) WHERE true";
@@ -677,7 +677,7 @@ class mitarbeiter extends benutzer
{
$qry.=" AND NOT EXISTS(SELECT * FROM bis.tbl_bisverwendung WHERE (ende>now() or ende is null) AND tbl_bisverwendung.mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid)";
}
- if($vertragnochnichtretour=='true')
+ if($vertrag=='VertragNochNichtRetour')
{
$qry.=" AND EXISTS(SELECT * FROM lehre.tbl_vertrag
WHERE person_id=tbl_benutzer.person_id
@@ -685,8 +685,42 @@ class mitarbeiter extends benutzer
AND NOT EXISTS(SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')
)";
}
+ elseif($vertrag=='VertragHabilitiert')
+ {
+ $qry.=" AND EXISTS(SELECT * FROM lehre.tbl_vertrag
+ WHERE person_id=tbl_benutzer.person_id
+ AND NOT EXISTS(SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')
+ )
+ AND EXISTS(SELECT * FROM bis.tbl_bisverwendung
+ WHERE mitarbeiter_uid=tbl_benutzer.uid
+ AND habilitation=true
+ )
+ ";
+ }
+ elseif($vertrag=='VertragNichtHabilitiert')
+ {
+ $qry.=" AND EXISTS(SELECT * FROM lehre.tbl_vertrag
+ WHERE person_id=tbl_benutzer.person_id
+ AND NOT EXISTS(SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')
+ )
+ AND NOT EXISTS(SELECT * FROM bis.tbl_bisverwendung
+ WHERE mitarbeiter_uid=tbl_benutzer.uid
+ AND habilitation=true
+ )
+ ";
+ }
+ elseif($vertrag=='VertragNichtGedruckt')
+ {
+ $qry.=" AND EXISTS(SELECT * FROM lehre.tbl_vertrag
+ WHERE person_id=tbl_benutzer.person_id
+ AND NOT EXISTS(SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='gedruckt')
+ AND NOT EXISTS(SELECT 1 FROM lehre.tbl_vertrag_vertragsstatus WHERE vertrag_id=tbl_vertrag.vertrag_id AND vertragsstatus_kurzbz='abgerechnet')
+ )";
+ }
+
$qry.=';';
+
if($this->db_query($qry))
{
while($row = $this->db_fetch_object())
diff --git a/rdf/personal.rdf.php b/rdf/personal.rdf.php
index 5d69ec09d..5a43bc7f3 100644
--- a/rdf/personal.rdf.php
+++ b/rdf/personal.rdf.php
@@ -76,14 +76,33 @@ if (isset($_GET['verwendung']))
else
$verwendung=null;
+$vertrag=null;
+
if (isset($_GET['VertragNochNichtRetour']))
{
// Vertraege muessen nur von externen Lektoren retourniert werden
$fix='false';
- $vertragnochnichtretour = 'true';
+ $vertrag = 'VertragNochNichtRetour';
}
-else
- $vertragnochnichtretour=null;
+
+if (isset($_GET['VertragHabilitiert']))
+{
+ $fix='false';
+ $vertrag = 'VertragHabilitiert';
+}
+
+if (isset($_GET['VertragNichtHabilitiert']))
+{
+ $fix='false';
+ $vertrag = 'VertragNichtHabilitiert';
+}
+
+if (isset($_GET['VertragNichtGedruckt']))
+{
+ $fix='false';
+ $vertrag = 'VertragNichtGedruckt';
+}
+
if(isset($_GET['filter']))
@@ -111,7 +130,7 @@ if($uid==null)
if($filter!='')
$mitarbeiterDAO->searchPersonal($filter);
else
- $mitarbeiterDAO->getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $verwendung, $vertragnochnichtretour);
+ $mitarbeiterDAO->getPersonal($fix, $stgl, $fbl, $aktiv, $karenziert, $verwendung, $vertrag);
foreach ($mitarbeiterDAO->result as $mitarbeiter)
draw_row($mitarbeiter);
diff --git a/system/checksystem.php b/system/checksystem.php
index ed363fdaf..1f5718b88 100644
--- a/system/checksystem.php
+++ b/system/checksystem.php
@@ -3449,6 +3449,34 @@ if(!$result = @$db->db_query("SELECT lehrveranstaltung_id FROM lehre.tbl_vertrag
echo 'Vertrag: Spalte lehrveranstaltung_id hinzugefügt';
}
+// Vertragsstatus gedruckt
+if($result = $db->db_query("SELECT 1 FROM lehre.tbl_vertragsstatus WHERE vertragsstatus_kurzbz='gedruckt'"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+ $qry = "INSERT INTO lehre.tbl_vertragsstatus(vertragsstatus_kurzbz, bezeichnung) VALUES('gedruckt','Gedruckt');";
+
+ if(!$db->db_query($qry))
+ echo 'Vertragsstatus: '.$db->db_last_error().'
';
+ else
+ echo 'Vertragsstatus gedruckt hinzugefuegt';
+ }
+}
+
+// Vertragsstatus gedruckt
+if($result = $db->db_query("SELECT 1 FROM public.tbl_funktion WHERE funktion_kurzbz='awbefreit'"))
+{
+ if($db->db_num_rows($result)==0)
+ {
+ $qry = "INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('awbefreit','Anwesenheitsbefreit',true,false,false);";
+
+ if(!$db->db_query($qry))
+ echo 'Benutzerfunktion: '.$db->db_last_error().'
';
+ else
+ echo 'Benutzerfunktion awbefreit hinzugefuegt';
+ }
+}
+
echo '
';
$tabellen=array(