diff --git a/include/benutzerfunktion.class.php b/include/benutzerfunktion.class.php index 0ad8bde1f..872c91106 100644 --- a/include/benutzerfunktion.class.php +++ b/include/benutzerfunktion.class.php @@ -16,8 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl . + * Andreas Oesterreicher , + * Rudolf Hangl , + Manuela Thamer . */ /** * Klasse benutzerfunktion (FAS-Online) @@ -111,7 +112,7 @@ class benutzerfunktion extends basis_db { $qry = "SELECT count(*) as anzahl FROM public.tbl_benutzerfunktion WHERE uid=".$this->db_add_param($uid)." AND funktion_kurzbz=".$this->db_add_param($benutzerfunktion); - + if ($gueltig = TRUE) $qry .= ' AND (datum_von IS NULL OR datum_von <= now()) AND (datum_bis IS NULL OR datum_bis >= now()) '; @@ -137,13 +138,13 @@ class benutzerfunktion extends basis_db */ public function getBenutzerFunktion($uid, $funktion_kurzbz, $oe_kurzbz) { - $qry = "SELECT + $qry = "SELECT bfunk.*, stg.studiengang_kz - FROM + FROM public.tbl_benutzerfunktion AS bfunk INNER JOIN public.tbl_studiengang AS stg ON(stg.oe_kurzbz = bfunk.oe_kurzbz) - WHERE - bfunk.uid=".$this->db_add_param($uid)." + WHERE + bfunk.uid=".$this->db_add_param($uid)." AND bfunk.funktion_kurzbz=".$this->db_add_param($funktion_kurzbz)." AND bfunk.oe_kurzbz=".$this->db_add_param($oe_kurzbz); @@ -534,6 +535,53 @@ class benutzerfunktion extends basis_db } } - + /** + * Lädt die letzte Benutzerfunktion zu einer UID + * @param type $uid UID des Mitarbeiters. + * @param type $funktion_kurzbz OPTIONAL Kurzbezeichnung der Funktion. + * @return bool true wenn ok, sonst false + */ + public function getLastBenutzerFunktionByUid($uid, $funktion_kurzbz = null) + { + $qry = "SELECT * FROM public.tbl_benutzerfunktion + WHERE uid=".$this->db_add_param($uid); + if (!is_null($funktion_kurzbz)) + { + $qry .= " AND funktion_kurzbz=".$this->db_add_param($funktion_kurzbz); + } + $qry .= "ORDER BY datum_von DESC NULLS LAST LIMIT 1"; + $qry .= ";"; + + if ($result = $this->db_query($qry)) + { + while ($row = $this->db_fetch_object($result)) + { + $obj = new benutzerfunktion(); + + $obj->benutzerfunktion_id = $row->benutzerfunktion_id; + $obj->fachbereich_kurzbz = $row->fachbereich_kurzbz; + $obj->uid = $row->uid; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->funktion_kurzbz = $row->funktion_kurzbz; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->semester = $row->semester; + $obj->datum_von = $row->datum_von; + $obj->datum_bis = $row->datum_bis; + $obj->bezeichnung = $row->bezeichnung; + $obj->wochenstunden = $row->wochenstunden; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Benutzerfunktion'; + return false; + } + } } ?> diff --git a/vilesci/bis/personal_generateverwendung.php b/vilesci/bis/personal_generateverwendung.php index 6f06140f3..dd5963a4d 100644 --- a/vilesci/bis/personal_generateverwendung.php +++ b/vilesci/bis/personal_generateverwendung.php @@ -16,6 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Manuela Thamer < manuela.thamer@technikum-wien.at > */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); @@ -48,14 +49,290 @@ $studiensemester = new studiensemester(); $studiensemester->getAll(); $stsem_arr = array(); + foreach($studiensemester->studiensemester as $row_stsem) { $stsem_arr[$row_stsem->studiensemester_kurzbz]['start']=$row_stsem->start; $stsem_arr[$row_stsem->studiensemester_kurzbz]['ende']=$row_stsem->ende; } + if (!$rechte->isBerechtigt('mitarbeiter/stammdaten', null, 'suid')) die ('Sie haben keine Berechtigung für diese Seite'); +function buildSQL($maUid=null) +{ + $condition = ($maUid !== null) ? " AND ma.uid = '" . $maUid . "' " : ''; + $qry = "SELECT ma.* FROM + ( + SELECT + vorname, nachname, uid, personalnummer, insertamum, anmerkung, aktiv, + ( + SELECT studiensemester_kurzbz FROM ( + SELECT + studiensemester_kurzbz, tbl_studiensemester.start + FROM + lehre.tbl_lehreinheitmitarbeiter + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE + tbl_lehreinheitmitarbeiter.mitarbeiter_uid = vw_mitarbeiter.uid + UNION + SELECT + studiensemester_kurzbz, tbl_studiensemester.start + FROM + lehre.tbl_projektbetreuer + JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE + tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id + ) a + ORDER BY start DESC + LIMIT 1 + ) as letzter_lehrauftrag + FROM + campus.vw_mitarbeiter + WHERE + fixangestellt = false + AND lektor = true + AND bismelden = true + AND personalnummer > 0 + AND EXISTS( + SELECT + 1 + FROM + lehre.tbl_lehreinheitmitarbeiter + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + tbl_lehreinheitmitarbeiter.mitarbeiter_uid = vw_mitarbeiter.uid + AND tbl_lehreinheit.studiensemester_kurzbz IN( + SELECT + studiensemester_kurzbz + FROM + public.tbl_studiensemester + WHERE start <= now() + ORDER BY start DESC + OFFSET 1 + LIMIT 2) + UNION + SELECT + 1 + FROM + lehre.tbl_projektbetreuer + JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE + tbl_lehreinheit.studiensemester_kurzbz IN(SELECT + studiensemester_kurzbz + FROM + public.tbl_studiensemester + WHERE start <= now() + ORDER BY start DESC + OFFSET 1 + LIMIT 2) + AND tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id + ) + AND NOT EXISTS( + SELECT 1 FROM bis.tbl_bisverwendung + WHERE mitarbeiter_uid=vw_mitarbeiter.uid + AND (ende is null OR ende>=now()) + ) + ) ma + LEFT JOIN public.tbl_studiensemester ON(studiensemester_kurzbz=ma.letzter_lehrauftrag)$condition + WHERE + tbl_studiensemester.start >= (SELECT ende FROM bis.tbl_bisverwendung + WHERE mitarbeiter_uid=ma.uid + ORDER BY ende DESC LIMIT 1)"; + return $qry; +} + +function verlaengereOeFunktion($maUid, $stsem_arr) +{ + $uid = get_uid(); + $lastLA = ''; + $outputOeFunktion = 'true'; + $qry = buildSQL($maUid); + + if (!$db = new basis_db()) + die ('Es konnte keine Verbindung zum Server aufgebaut werden.'); + + if ($result = $db->db_query($qry)) + { + while ($row = $db->db_fetch_object($result)) + { + $lastLA = $row->letzter_lehrauftrag; + } + + } + + //bisverwendung + $bisverwendung = new bisverwendung(); + $bisverwendung->getLastVerwendung($maUid); + + + + if(isset($stsem_arr[$lastLA]) && $stsem_arr[$lastLA]['start'] > $bisverwendung->ende) + { + $dt_verwendungsendeplus10 = new DateTime($bisverwendung->ende); + $dt_now = new DateTime(); + $dt_verwendungsendeplus10->add(new DateInterval('P10M')); + + //letzte Benutzerfunktion + $lastFkt = new benutzerfunktion(); + $lastFkt->getLastBenutzerFunktionByUid($maUid, 'oezuordnung'); + + + foreach($lastFkt->result as $row2) + { + $vonBf = $row2->datum_von; + $bisBf = $row2->datum_bis; + $bisBF10 = new DateTime($bisBf); + $bisBF10-> add(new DateInterval('P10M')); + $bfId = $row2->benutzerfunktion_id; + $bfOe_kurzbz = $row2->oe_kurzbz; + $bfFachbereich_kurzbz = $row2->fachbereich_kurzbz; + $bfKurzbz = $row2->funktion_kurzbz; + $bfInsertamum = $row2->insertamum; + $bfInsertvon = $row2->insertvon; + $bfUpdateamum = $row2->updateamum; + $bfBezeichnung = $row2->bezeichnung; + $bfSem = $row2->semester; + $bfWochenstunden = $row2->wochenstunden; + } + + if ($bisBf != null) + { + $lastFkt->datum_bis = $stsem_arr[$lastLA]['ende']; + $lastFkt->updateamum = date('Y-m-d H:i:s'); + $lastFkt->updatevon = $uid; + $lastFkt->benutzerfunktion_id = $bfId; + $lastFkt->fachbereich_kurzbz = $bfFachbereich_kurzbz; + $lastFkt->funktion_kurzbz = $bfKurzbz; + $lastFkt->uid = $row2->uid; + $lastFkt->oe_kurzbz = $bfOe_kurzbz; + $lastFkt->insertamum = $bfInsertamum; + $lastFkt->insertvon = $bfInsertvon; + $lastFkt->datum_von = $vonBf; + $lastFkt->bezeichnung = $bfBezeichnung; + $lastFkt->semester = $bfSem; + $lastFkt->wochenstunden = $bfWochenstunden; + + if ($bisBF10 > $dt_now) + { + if ($lastFkt->save(false)) + { + $outputOeFunktion ='Benutzerfunktion verlängert'; + } + else + { + $outputOeFunktion = $lastFkt->errormsg; + } + } + else + { + $lastFkt->datum_von = $stsem_arr[$lastLA]['start']; + $lastFkt->insertamum = date('Y-m-d H:i:s'); + $lastFkt->insertvon = $uid; + if ($lastFkt->save(true)) + { + $outputOeFunktion = 'Benutzerfunktion neu angelegt'; + } + else + { + $outputOeFunktion = $lastFkt->errormsg; + } + } + } + } + + return $outputOeFunktion; +} + +function verlaengereBis($maUid, $stsem_arr) +{ + $uid = get_uid(); + + $qry = buildSQL($maUid); + + if (!$db = new basis_db()) + die ('Es konnte keine Verbindung zum Server aufgebaut werden.'); + + if ($result = $db->db_query($qry)) + { + while ($row = $db->db_fetch_object($result)) + { + $lastLA = $row->letzter_lehrauftrag; + } + + } + + $bisverwendung = new bisverwendung(); + $bisverwendung->getLastVerwendung($maUid); + + if(isset($stsem_arr[ $lastLA]) + && $stsem_arr[$lastLA]['start'] > $bisverwendung->ende) + { + + // wenn das Stsem des letzten Lehrauftrags größer ist als die Verwendung + // Wenn die letzte Verwendung weniger als 10 Monate alt ist, wird die bestehende + // Verwendung aktualisiert auf das neue Datum + // Ansonsten wird eine neue Verwendung erstellt + $dt_verwendungsendeplus10 = new DateTime($bisverwendung->ende); + $dt_now = new DateTime(); + $dt_verwendungsendeplus10->add(new DateInterval('P10M')); + + if ($dt_verwendungsendeplus10 > $dt_now) + { + $bisverwendung->ende = $stsem_arr[$lastLA]['ende']; + $bisverwendung->updateamum = date('Y-m-d H:i:s'); + $bisverwendung->updatevon = $uid; + + $retOe = verlaengereOeFunktion($maUid, $stsem_arr); + + if ($bisverwendung->save(false)) + { + return "bis verlaengert " . $retOe; + } + else + { + return ('Fehler beim Verlängern Bisverwendung:'.$bisverwendung->errormsg); + } + } + else + { + $bisverwendung->beginn = $stsem_arr[$lastLA]['start']; + $bisverwendung->ende = $stsem_arr[$lastLA]['ende']; + $bisverwendung->updateamum = date('Y-m-d H:i:s'); + $bisverwendung->updatevon = $uid; + $bisverwendung->insertamum = date('Y-m-d H:i:s'); + $bisverwendung->insertvon = $uid; + + $retOe = verlaengereOeFunktion($maUid, $stsem_arr); + + if ($bisverwendung->save(true)) + { + return "bis erstellt " . $retOe; + } + else + { + return ('Fehler beim Erstellen Bisverwendung:'.$bisverwendung->errormsg); + } + } + } +} + + + +if (isset($_POST['action']) && $_POST['action']=='bisverlaengern') +{ + // $retstr = deactivateBenutzer($maUid,$datumEndeAktiv); + // exit($retstr); + + $retstr = verlaengereBis($_POST['uid'], $stsem_arr); + exit ($retstr); + +} + echo ' @@ -73,10 +350,57 @@ echo ' { $( ".datepicker_datum" ).datepicker({ changeMonth: true, - hangeYear: true, + changeYear: true, dateFormat: "yy-mm-dd", }); }); + function verlaengereBis(uid) + { + $.ajax({ + type:"POST", + url:"personal_generateverwendung.php", + data:{ "action": "bisverlaengern", "uid": uid }, + success: function(data) + { + if(data=="true") + { + $("#verlaengerungslink_"+uid).hide(); + $("#infobox_"+uid).text("OK"); + $("#outputTest_"+uid).text("OK ich verlängere dich"); + } + else if(data=="bis verlaengert") + { + $("#verlaengerungslink_"+uid).hide(); + $("#infobox_"+uid).text("OK, Bisverwendung verlängert"); + } + else if(data=="bis verlaengert Benutzerfunktion verlängert") + { + $("#verlaengerungslink_"+uid).hide(); + $("#infobox_"+uid).text("OK, Bisverwendung und Benutzerfunktion verlängert"); + } + else if(data=="bis erstellt Benutzerfunktion verlängert") + { + $("#verlaengerungslink_"+uid).hide(); + $("#infobox_"+uid).text("OK, Bisverwendung erstellt, Benutzerfunktion verlängert"); + } + else if(data=="bis verlaengert Benutzerfunktion neu angelegt") + { + $("#verlaengerungslink_"+uid).hide(); + $("#infobox_"+uid).text("OK, Bisverwendung verlängert, Benutzerfunktion neu angelegt"); + } + else if(data=="bis erstellt Benutzerfunktion neu angelegt") + { + $("#verlaengerungslink_"+uid).hide(); + $("#infobox_"+uid).text("OK, Bisverwendung und Benutzerfunktion neu angelegt"); + } + else + { + $("#infobox_"+uid).text("ERROR:"+data); + } + }, + error: function() { alert("error"); } + }); + } @@ -98,87 +422,7 @@ wird das Ende des Semesters letzten Lehrauftrages herangezogen. }); }); '; -$qry = "SELECT ma.* FROM - ( - SELECT - vorname, nachname, uid, personalnummer, insertamum, anmerkung, aktiv, - ( - SELECT studiensemester_kurzbz FROM ( - SELECT - studiensemester_kurzbz, tbl_studiensemester.start - FROM - lehre.tbl_lehreinheitmitarbeiter - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE - tbl_lehreinheitmitarbeiter.mitarbeiter_uid = vw_mitarbeiter.uid - UNION - SELECT - studiensemester_kurzbz, tbl_studiensemester.start - FROM - lehre.tbl_projektbetreuer - JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) - WHERE - tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id - ) a - ORDER BY start DESC - LIMIT 1 - ) as letzter_lehrauftrag - FROM - campus.vw_mitarbeiter - WHERE - fixangestellt = false - AND lektor = true - AND bismelden = true - AND personalnummer > 0 - AND EXISTS( - SELECT - 1 - FROM - lehre.tbl_lehreinheitmitarbeiter - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - tbl_lehreinheitmitarbeiter.mitarbeiter_uid = vw_mitarbeiter.uid - AND tbl_lehreinheit.studiensemester_kurzbz IN( - SELECT - studiensemester_kurzbz - FROM - public.tbl_studiensemester - WHERE start <= now() - ORDER BY start DESC - OFFSET 1 - LIMIT 2) - UNION - SELECT - 1 - FROM - lehre.tbl_projektbetreuer - JOIN lehre.tbl_projektarbeit USING(projektarbeit_id) - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - tbl_lehreinheit.studiensemester_kurzbz IN(SELECT - studiensemester_kurzbz - FROM - public.tbl_studiensemester - WHERE start <= now() - ORDER BY start DESC - OFFSET 1 - LIMIT 2) - AND tbl_projektbetreuer.person_id=vw_mitarbeiter.person_id - ) - AND NOT EXISTS( - SELECT 1 FROM bis.tbl_bisverwendung - WHERE mitarbeiter_uid=vw_mitarbeiter.uid - AND (ende is null OR ende>=now()) - ) - ) ma - LEFT JOIN public.tbl_studiensemester ON(studiensemester_kurzbz=ma.letzter_lehrauftrag) - WHERE - tbl_studiensemester.start >= (SELECT ende FROM bis.tbl_bisverwendung - WHERE mitarbeiter_uid=ma.uid - ORDER BY ende DESC LIMIT 1)"; +$qry = buildSQL(); if ($result = $db->db_query($qry)) { echo '

Anzahl:'.$db->db_num_rows($result); @@ -240,6 +484,7 @@ if ($result = $db->db_query($qry)) echo ' - '.($bisverwendung->ende != ''?$datum_obj->formatDatum($bisverwendung->ende,'d.m.Y'):' jetzt ').''; echo ''.($row->anmerkung != ''?'':'').''; + if(isset($stsem_arr[$row->letzter_lehrauftrag]) && $stsem_arr[$row->letzter_lehrauftrag]['start'] > $bisverwendung->ende) { @@ -258,11 +503,13 @@ if ($result = $db->db_query($qry)) $bisverwendung->ende = $stsem_arr[$row->letzter_lehrauftrag]['ende']; $bisverwendung->updateamum = date('Y-m-d H:i:s'); $bisverwendung->updatevon = $uid; + $retOe = verlaengereOeFunktion($row->uid, $stsem_arr); + if(isset($_POST['action']) && $_POST['action']=='generateall') { if ($bisverwendung->save(false)) { - echo 'Verwendung verlängert'; + echo 'Verwendung verlängert ' . $retOe . ''; } else { @@ -270,7 +517,13 @@ if ($result = $db->db_query($qry)) } } else - echo 'Verlängerung bis '.$bisverwendung->ende.''; + echo 'Verlängerung bis '.$bisverwendung->ende.'
+ + verlängern + + + + '; } else { @@ -280,19 +533,36 @@ if ($result = $db->db_query($qry)) $bisverwendung->updatevon = $uid; $bisverwendung->insertamum = date('Y-m-d H:i:s'); $bisverwendung->insertvon = $uid; + $retOe = verlaengereOeFunktion($row->uid, $stsem_arr); + if(isset($_POST['action']) && $_POST['action']=='generateall') { if ($bisverwendung->save(true)) { - echo 'Neue Verwendung erstellt'; + echo 'Neue Verwendung erstellt ' . $retOe . ''; + + } else { echo 'Failed:'.$bisverwendung->errormsg.''; } + // echo 'Neue Verwendung wird erstellt '.$bisverwendung->beginn.' bis '.$bisverwendung->ende.'
+ + // '; + } else - echo 'Neue Verwendung wird erstellt '.$bisverwendung->beginn.' bis '.$bisverwendung->ende.''; + echo 'Neue Verwendung wird erstellt '.$bisverwendung->beginn.' bis '.$bisverwendung->ende.'
'; + + + echo ' + + verlängern + + + + '; } } else diff --git a/vilesci/bis/personal_lektorenohnelehrauftrag.php b/vilesci/bis/personal_lektorenohnelehrauftrag.php index 1cc1fbe0f..02cd8c793 100644 --- a/vilesci/bis/personal_lektorenohnelehrauftrag.php +++ b/vilesci/bis/personal_lektorenohnelehrauftrag.php @@ -16,6 +16,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at > + * Manuela Thamer < manuela.thamer@technikum-wien.at > */ require_once('../../config/vilesci.config.inc.php'); require_once('../../include/functions.inc.php'); @@ -30,7 +31,7 @@ require_once('../../include/bisverwendung.class.php'); require_once('../../include/benutzer.class.php'); if (!$db = new basis_db()) - die ('Es konnte keine Verbindung zum Server aufgebaut werden.'); + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); $uid = get_uid(); $datum_obj = new datum(); @@ -45,12 +46,19 @@ $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); if (!$rechte->isBerechtigt('mitarbeiter/stammdaten', null, 'suid')) - die ('Sie haben keine Berechtigung für diese Seite'); + die('Sie haben keine Berechtigung für diese Seite'); -if (isset($_POST['action']) && $_POST['action'] == 'deaktivieren') +/** + * Setzt die Benutzerfunktion zu einer UID zu einem bestimmten Datum inaktiv + * @param string $maUid UID des Mitarbeiters. + * @param Datum $datumEndeAktiv Deaktivierungsdatum. + * @return 'true', 'OK, Bisverwendung angepasst' oder error + */ +function deactivateBenutzer($maUid, $datumEndeAktiv) { $benutzer = new benutzer(); - if ($benutzer->load($_POST['uid'])) + $uid = get_uid(); + if ($benutzer->load($maUid)) { $benutzer->bnaktiv = false; $benutzer->updateamum = date('Y-m-d H:i:s'); @@ -58,30 +66,48 @@ if (isset($_POST['action']) && $_POST['action'] == 'deaktivieren') if ($benutzer->save(false, false)) { $bisverwendung = new bisverwendung(); - if ($bisverwendung->getLastVerwendung($_POST['uid'])) + if ($bisverwendung->getLastVerwendung($maUid)) { if ($bisverwendung->ende == '') { - $bisverwendung->ende = $_POST['datum']; + $bisverwendung->ende = $datumEndeAktiv; $bisverwendung->updateamum = date('Y-m-d H:i:s'); $bisverwendung->updatevon = $uid; if ($bisverwendung->save(false)) - exit ('true'); + return ('OK, Bisverwendung angepasst'); } else { - exit ('true'); + return ('true'); } } else - exit ('Fehler beim Laden der Verwendung:'.$bisverwendung->errormsg); + return ('Fehler beim Laden der Verwendung: '.$bisverwendung->errormsg); } else - exit ('Fehler beim Deaktivieren:'.$benutzer->errormsg); + return ('Fehler beim Deaktivieren: '.$benutzer->errormsg); } else - exit ('Fehler beim Laden des Benutzers'); + $output1 = 'Fehler beim Laden des Benutzers'; + return ('Fehler beim Laden des Benutzers'); +} + +/** + * Setzt die Benutzerfunktion zu einer UID zu einem bestimmten Datum inaktiv, Einzeldeaktivierung mittels Link + * @param string $maUid UID des Mitarbeiters. + * @param Datum $datumEndeAktiv Deaktivierungsdatum. + * @return exit string $retstr 'true', 'OK, Bisverwendung angepasst' oder error + */ +function deactivateBenutzerAJAX($maUid, $datumEndeAktiv) +{ + $retstr = deactivateBenutzer($maUid, $datumEndeAktiv); + exit($retstr); +} + +if (isset($_POST['action']) && $_POST['action'] == 'deaktivieren') +{ + deactivateBenutzerAJAX($_POST['uid'], $_POST['datum']); } echo ' @@ -101,7 +127,7 @@ echo ' { $( ".datepicker_datum" ).datepicker({ changeMonth: true, - hangeYear: true, + changeYear: true, dateFormat: "yy-mm-dd", }); }); @@ -122,6 +148,7 @@ die Verwendung zum angegebenen Datum zu beenden. widgets: ["zebra"] }); }); + function deaktiviere(uid) { var datum = $("#deaktivierungsdatum").val(); @@ -137,6 +164,11 @@ die Verwendung zum angegebenen Datum zu beenden. $("#deaktivierungslink_"+uid).hide(); $("#infobox_"+uid).text("OK"); } + else if(data="OK, Bisverwendung angepasst") + { + $("#deaktivierungslink_"+uid).hide(); + $("#infobox_"+uid).text("OK, Bisverwendung angepasst"); + } else { $("#infobox_"+uid).text("ERROR:"+data); @@ -145,6 +177,7 @@ die Verwendung zum angegebenen Datum zu beenden. error: function() { alert("error"); } }); } + '; $qry = "SELECT vorname, nachname, uid, personalnummer, insertamum,anmerkung, @@ -218,9 +251,20 @@ if ($result = $db->db_query($qry)) { echo '

Anzahl:'.$db->db_num_rows($result); echo ' +
Beendingungsdatum der Verwendung: - + +


+ +
+ + + +
+
+

@@ -239,6 +283,8 @@ if ($result = $db->db_query($qry)) '; + + $countMa = 0; while ($row = $db->db_fetch_object($result)) { echo ' @@ -247,7 +293,7 @@ if ($result = $db->db_query($qry)) - + '; $bisverwendung = new bisverwendung(); $bisverwendung->getLastVerwendung($row->uid); - echo ''; + + echo ''; echo ''; - echo ' - - '; + + $countMa++; + if (isset($_POST['action']) && $_POST['action'] == 'deactivateAll') + { + $retstr = (($retstr = deactivateBenutzer($row->uid, $_POST['datumEndeAktiv'])) === 'true') + ? 'OK' + : $retstr; + echo ' + '; + } + else + { + echo ' + '; + } + echo ' '; } + echo '
'.$db->convert_html_chars($row->vorname).' '.$db->convert_html_chars($row->uid).' '.$db->convert_html_chars($row->personalnummer).''.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum,'d.m.Y')).''.$db->convert_html_chars($datum_obj->formatDatum($row->insertamum, 'd.m.Y')).' '.$db->convert_html_chars($row->letzter_lehrauftrag).' '; @@ -264,18 +310,37 @@ if ($result = $db->db_query($qry)) echo '
'.($bisverwendung->beginn != ''?$datum_obj->formatDatum($bisverwendung->beginn,'d.m.Y'):' jetzt '); - echo ' - '.($bisverwendung->ende != ''?$datum_obj->formatDatum($bisverwendung->ende,'d.m.Y'):' jetzt ').''.($bisverwendung->beginn != ''?$datum_obj->formatDatum($bisverwendung->beginn, 'd.m.Y'):' jetzt '); + echo ' - '.($bisverwendung->ende != ''?$datum_obj->formatDatum($bisverwendung->ende, 'd.m.Y'):' jetzt ').''.($row->anmerkung != ''?'':'').' - - deaktivieren - - -
+ '. $retstr. ' + + + + deaktivieren + + + +
'; }