diff --git a/vilesci/bis/checkverwendung.php b/vilesci/bis/checkverwendung.php index 7ce005ad6..69d676cfc 100644 --- a/vilesci/bis/checkverwendung.php +++ b/vilesci/bis/checkverwendung.php @@ -20,21 +20,16 @@ * Rudolf Hangl < rudolf.hangl@technikum-wien.at > * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > */ +/** + * Überprüfung der Verwendungsdatensaetze im FASonline + * + */ +require_once('../../config/vilesci.config.inc.php'); +require_once('../../include/basis_db.class.php'); +require('../../include/studiensemester.class.php'); - -//* -//* Überprüfung der Verwendungsdatensaetze im FASonline -//* -//* - - require_once('../../config/vilesci.config.inc.php'); - require_once('../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Es konnte keine Verbindung zum Server aufgebaut werden.'); - - - require('../../include/studiensemester.class.php'); - +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); $error_log=''; $fehler=0; @@ -56,15 +51,16 @@ function myaddslashes($var) } ?> + - - BIS-Meldung - Überprüfung von Verwendungen - - - + + BIS-Meldung - Überprüfung von Verwendungen + + + -

BIS-Verwendungen werden überprüft

-
+

BIS-Verwendungen werden überprüft

+
db_query($qry)) @@ -369,6 +365,21 @@ if($resultall = $db->db_query($qryall)) echo "(ba1code: $rowall->ba1code, ba2code: $rowall->ba2code)"; } } +echo '
'; +//9 - inaktive mitarbeiter und bismelden ohne verwendung +$qryall='SELECT uid,nachname,vorname, count(bisverwendung_id) + FROM campus.vw_mitarbeiter LEFT OUTER JOIN bis.tbl_bisverwendung ON (uid=mitarbeiter_uid) + WHERE bismelden + GROUP BY uid,nachname,vorname HAVING count(bisverwendung_id)=0 ORDER by nachname,vorname;'; +if($resultall = $db->db_query($qryall)) +{ + $num_rows_all=$db->db_num_rows($resultall); + echo "

Bei $num_rows_all Mitarbeitern sind keine Verwendungen vorhanden - diese werden nicht BIS gemeldet

"; + while($rowall=$db->db_fetch_object($resultall)) + { + echo '
'.$rowall->nachname.' '.$rowall->vorname."($rowall->uid)"; + } +} ?> \ No newline at end of file diff --git a/vilesci/bis/personalmeldung.php b/vilesci/bis/personalmeldung.php index 6afe7c845..6c01da5bf 100644 --- a/vilesci/bis/personalmeldung.php +++ b/vilesci/bis/personalmeldung.php @@ -38,9 +38,11 @@ $erhalter=''; $zaehl=0; $eteam=array(); $studiensemester=new studiensemester(); -$ssem=$studiensemester->getaktorNext(); //aktuelles Semester -$psem=$studiensemester->getPrevious(); //voriges Semester -$bsem=$studiensemester->getBeforePrevious(); //vorjähriges Semester +if(isset($_GET['stsem'])) + $stsem = $_GET['stsem']; +else + $stsem=$studiensemester->getaktorNext(1); //aktuelles Semester + $datei=''; $mitarbeiterzahl=0; $echt=0; @@ -50,19 +52,16 @@ $nichtmelden = array(11,91,92,94,999,203,145,204, 308, 182, 222); $datumobj=new datum(); -if(mb_strstr($ssem,"WS")) +if(mb_strstr($stsem,"WS")) { - $bisdatum=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y"))); - $bisprevious=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y"))); + $studiensemester->load($stsem); + $jahr = $datumobj->formatDatum($studiensemester->start, 'Y'); + $bisdatum=date("Y-m-d", mktime(0, 0, 0, 11, 15, $jahr)); + $bisprevious=date("Y-m-d", mktime(0, 0, 0, 11, 15, $jahr-1)); } -/*elseif(mb_strstr($ssem,"SS")) -{ - $bisdatum=date("Y-m-d", mktime(0, 0, 0, 04, 15, date("Y"))); - $bisprevious=date("Y-m-d", mktime(0, 0, 0, 11, 15, date("Y")-1)); -}*/ else { - echo "Ungültiges Semester!"; + echo "Fehler: Studiensemester muss ein Wintersemester sein"; exit; } @@ -71,35 +70,24 @@ if($result = $db->db_query($qry)) { if($row = $db->db_fetch_object($result)) { - if(strlen(trim($row->erhalter_kz))==1) - { - $erhalter='00'.trim($row->erhalter_kz); - } - elseif(strlen(trim($row->erhalter_kz))==2) - { - $erhalter='0'.trim($row->erhalter_kz); - } - else - { - $erhalter=$row->erhalter_kz; - } + $erhalter = sprintf("%04s",trim($row->erhalter_kz)); } } -$qry="SELECT DISTINCT ON (UID) * FROM public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid) - JOIN public.tbl_person USING(person_id) - WHERE tbl_benutzer.aktiv AND bismelden AND personalnummer>1 AND mitarbeiter_uid!='_DummyLektor' +$qry=" + SELECT DISTINCT ON (UID) * + FROM + public.tbl_mitarbeiter + JOIN public.tbl_benutzer ON(mitarbeiter_uid=uid) + JOIN public.tbl_person USING(person_id) + JOIN bis.tbl_bisverwendung USING(mitarbeiter_uid) + WHERE + bismelden + AND personalnummer>0 + AND (tbl_bisverwendung.ende is NULL OR tbl_bisverwendung.ende>'$bisprevious') ORDER BY uid, nachname,vorname "; -/* - AND (ende>now() OR ende IS NULL) - bis.tbl_bisverwendung USING (mitarbeiter_uid) - bis.tbl_bisfunktion USING(bisverwendung_id) - bis.tbl_entwicklungsteam USING(mitarbeiter_uid) - public.tbl_benutzerfunktion -*/ - if($result = $db->db_query($qry)) { @@ -140,7 +128,7 @@ if($result = $db->db_query($qry)) ".date("dmY", $datumobj->mktime_fromdate($row->gebdatum))." ".strtoupper($row->geschlecht)." ".$row->ausbildungcode.""; - $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".$row->mitarbeiter_uid."' AND habilitation=true;"; + $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".addslashes($row->mitarbeiter_uid)."' AND habilitation=true;"; if($resultvw=$db->db_query($qryvw)) { if($db->db_num_rows($resultvw)>0) @@ -154,7 +142,7 @@ if($result = $db->db_query($qry)) N"; } } - $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".$row->mitarbeiter_uid."' AND (ende is null OR ende>'$bisprevious') AND beginn<'$bisdatum';"; + $qryvw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".addslashes($row->mitarbeiter_uid)."' AND (ende is null OR ende>'$bisprevious') AND (beginn<'$bisdatum' OR beginn is null);"; if($resultvw=$db->db_query($qryvw)) { if($db->db_num_rows($resultvw)>0) @@ -189,7 +177,7 @@ if($result = $db->db_query($qry)) { $frei++; } - $mitarbeiterzahl++; + $person_content.=" ".$rowvw->ba1code." @@ -197,7 +185,15 @@ if($result = $db->db_query($qry)) ".$rowvw->beschausmasscode." ".$rowvw->verwendung_code.""; //Studiengangsleiter - $qryslt="SELECT tbl_benutzerfunktion.*, tbl_studiengang.studiengang_kz FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz) WHERE uid='".$row->mitarbeiter_uid."' AND funktion_kurzbz='Leitung' AND studiengang_kz<10000;"; + $qryslt="SELECT + tbl_benutzerfunktion.*, tbl_studiengang.studiengang_kz + FROM public.tbl_benutzerfunktion JOIN public.tbl_studiengang USING(oe_kurzbz) + WHERE + uid='".addslashes($row->mitarbeiter_uid)."' + AND funktion_kurzbz='Leitung' + AND (datum_von<'$bisdatum' OR datum_von is null) + AND (datum_bis>'$bisprevious' OR datum_bis is NULL) + AND studiengang_kz<10000;"; if($resultslt=$db->db_query($qryslt)) { while($rowslt=$db->db_fetch_object($resultslt)) @@ -285,6 +281,7 @@ if($result = $db->db_query($qry)) $error_person = true; } } + $mitarbeiterzahl++; $person_content.=" "; if($error_log!='' || $error_log1!='') @@ -313,16 +310,17 @@ echo ' BIS - Meldung Mitarbeiter '; -echo "

BIS - Mitarbeiterdaten werden überprüft!


"; -echo "Anzahl Mitarbeiter: Gesamt: ".$mitarbeiterzahl." / echter Dienstvertrag: ".$echt." / freier Dienstvertrag: ".$frei."
"; -echo "

Nicht plausible BIS-Daten (für Meldung ".$ssem."):


"; +echo "

BIS - Mitarbeiterdaten werden überprüft (für Meldung ".$stsem." / $bisprevious - $bisdatum)


"; +echo "Anzahl Mitarbeiter: Gesamt: ".$mitarbeiterzahl." / echter Dienstvertrag: ".$echt." / freier Dienstvertrag: ".$frei."

"; +echo "

Nicht plausible BIS-Daten


"; echo nl2br($v."

"); //Tabelle mit Ergebnissen ausgeben $ddd='bisdaten/bismeldung_mitarbeiter.xml'; - $dateiausgabe=fopen($ddd,'w'); - fwrite($dateiausgabe,$datei); - fclose($dateiausgabe); +$dateiausgabe=fopen($ddd,'w'); +fwrite($dateiausgabe,$datei); +fclose($dateiausgabe); + echo "XML-Datei für Mitarbeiter-BIS-Meldung

"; ?> \ No newline at end of file