From eb639c1b55c7b3d6bb5823929cbe689d5e50060a Mon Sep 17 00:00:00 2001 From: oesi Date: Thu, 17 Sep 2015 07:56:42 +0200 Subject: [PATCH] =?UTF-8?q?Zus=C3=A4tzliche=20Filter=20f=C3=BCr=20Mitarbei?= =?UTF-8?q?tervertr=C3=A4ge=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/fasoverlay.xul.php | 57 ++++++------------- content/mitarbeiter/mitarbeiteroverlay.js.php | 12 ++++ include/mitarbeiter.class.php | 38 ++++++++++++- rdf/personal.rdf.php | 27 +++++++-- system/checksystem.php | 28 +++++++++ 5 files changed, 117 insertions(+), 45 deletions(-) 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(