diff --git a/vilesci/bis/personal_generateverwendung.php b/vilesci/bis/personal_generateverwendung.php index dd5963a4d..7ba5a14b1 100644 --- a/vilesci/bis/personal_generateverwendung.php +++ b/vilesci/bis/personal_generateverwendung.php @@ -31,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(); @@ -50,18 +50,23 @@ $studiensemester->getAll(); $stsem_arr = array(); -foreach($studiensemester->studiensemester as $row_stsem) +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; + $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'); + die('Sie haben keine Berechtigung für diese Seite'); -function buildSQL($maUid=null) +/** + * baut die Query + * @param string $maUid UID des Mitarbeiters. + * @return string $qry + */ +function buildSQL($maUid = null) { - $condition = ($maUid !== null) ? " AND ma.uid = '" . $maUid . "' " : ''; + $condition = ($maUid !== null) ? " AND ma.uid = '". $maUid. "' " : ''; $qry = "SELECT ma.* FROM ( SELECT @@ -146,6 +151,12 @@ function buildSQL($maUid=null) return $qry; } +/** + * verlängert die Benutzerfunktion für den betreffenden MA + * @param string $maUid UID des Mitarbeiters. + * @param string $stsem_arr Array der Studiensemester. + * @return String $outputOeFunktion + */ function verlaengereOeFunktion($maUid, $stsem_arr) { $uid = get_uid(); @@ -154,7 +165,7 @@ function verlaengereOeFunktion($maUid, $stsem_arr) $qry = buildSQL($maUid); if (!$db = new basis_db()) - die ('Es konnte keine Verbindung zum Server aufgebaut werden.'); + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); if ($result = $db->db_query($qry)) { @@ -162,16 +173,13 @@ function verlaengereOeFunktion($maUid, $stsem_arr) { $lastLA = $row->letzter_lehrauftrag; } - } //bisverwendung $bisverwendung = new bisverwendung(); $bisverwendung->getLastVerwendung($maUid); - - - if(isset($stsem_arr[$lastLA]) && $stsem_arr[$lastLA]['start'] > $bisverwendung->ende) + if (isset($stsem_arr[$lastLA]) && $stsem_arr[$lastLA]['start'] > $bisverwendung->ende) { $dt_verwendungsendeplus10 = new DateTime($bisverwendung->ende); $dt_now = new DateTime(); @@ -182,72 +190,78 @@ function verlaengereOeFunktion($maUid, $stsem_arr) $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; - } + 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 ($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 ($bisBF10 > $dt_now) + { + if ($lastFkt->save(false)) { - if ($lastFkt->save(false)) - { - $outputOeFunktion ='Benutzerfunktion verlängert'; - } - else - { - $outputOeFunktion = $lastFkt->errormsg; - } + $outputOeFunktion = 'Benutzerfunktion verlängert'; } 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; - } + $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; } +/** + * verlängert die Bisverwendung bzw. legt eine neue Bisverwendung an + * @param string $maUid UID des Mitarbeiters. + * @param string $stsem_arr Array der Studiensemester. + * @return String Returnstring + */ function verlaengereBis($maUid, $stsem_arr) { $uid = get_uid(); @@ -255,7 +269,7 @@ function verlaengereBis($maUid, $stsem_arr) $qry = buildSQL($maUid); if (!$db = new basis_db()) - die ('Es konnte keine Verbindung zum Server aufgebaut werden.'); + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); if ($result = $db->db_query($qry)) { @@ -263,74 +277,67 @@ function verlaengereBis($maUid, $stsem_arr) { $lastLA = $row->letzter_lehrauftrag; } - } $bisverwendung = new bisverwendung(); $bisverwendung->getLastVerwendung($maUid); - if(isset($stsem_arr[ $lastLA]) - && $stsem_arr[$lastLA]['start'] > $bisverwendung->ende) + 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; - // 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')); + $retOe = verlaengereOeFunktion($maUid, $stsem_arr); - 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 ($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') +if (isset($_POST['action']) && $_POST['action'] == 'bisverlaengern') { - // $retstr = deactivateBenutzer($maUid,$datumEndeAktiv); - // exit($retstr); - $retstr = verlaengereBis($_POST['uid'], $stsem_arr); - exit ($retstr); - + exit($retstr); } echo ' @@ -463,7 +470,7 @@ if ($result = $db->db_query($qry))
':'').'