diff --git a/system/sync/fas/bis_datencheck.php b/system/sync/fas/bis_datencheck.php new file mode 100644 index 000000000..18fd027c3 --- /dev/null +++ b/system/sync/fas/bis_datencheck.php @@ -0,0 +1,291 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + + +require_once('../../../vilesci/config.inc.php'); +require_once('../sync_config.inc.php'); + +$conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschlagen"); +$conn_fas=pg_connect(CONN_STRING_FAS) or die("Connection zur FAS Datenbank fehlgeschlagen"); + + +$error_log=''; +$error_log_all=""; +$stgart=array(); +$fehler=array(); + +function myaddslashes($var) +{ + return ($var!=''?"'".addslashes($var)."'":'null'); +} + +?> + + + +Datenüberprüfung für BIS-Meldung + + + +studiensemester_kurzbz]=$row->start; + $ende[$row->studiensemester_kurzbz]=$row->ende; + } +} +$qry="SELECT * FROM public.tbl_studiengang"; +if($result = pg_query($conn, $qry)) +{ + while($row = pg_fetch_object($result)) + { + $stgart[$row->studiengang_kz]=$row->typ; + $email[$row->studiengang_kz]=$row->email; + } +} + +$qry="SELECT *, tbl_abschlusspruefung.datum AS abdatum FROM public.tbl_student + JOIN public.tbl_benutzer ON(student_uid=uid) + JOIN public.tbl_person USING (person_id) + JOIN public.tbl_prestudent USING (prestudent_id) + JOIN public.tbl_prestudentrolle ON(tbl_prestudent.prestudent_id=tbl_prestudentrolle.prestudent_id) + JOIN public.tbl_adresse ON(tbl_person.person_id=tbl_adresse.person_id) + LEFT JOIN lehre.tbl_abschlusspruefung USING(student_uid) + WHERE heimatadresse IS TRUE + AND (studiensemester_kurzbz='WS2007') + AND (rolle_kurzbz='Student' OR rolle_kurzbz='Incoming' OR rolle_kurzbz='Outgiong' + OR rolle_kurzbz='Praktikant' OR rolle_kurzbz='Diplomand' OR rolle_kurzbz='Absolvent') + ORDER BY tbl_student.studiengang_kz, student_uid, nachname, vorname + "; +// + +//uid='tw01e036' AND + +//$qry="SELECT DISTINCT ON(mitarbeiter_uid) mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter ;"; + +if($result = pg_query($conn, $qry)) +{ + while($row = pg_fetch_object($result)) + { + if($row->gebdatum<'1920-01-01') + { + $error_log.="Geburtsdatum ('".$row->gebdatum."')"; + } + if($row->geschlecht!='m' && $row->geschlecht!='w') + { + if($error_log!='') + { + $error_log.=", Geschlecht ('".$row->gebdatum."')"; + } + else + { + $error_log.="Geschlecht ('".$row->gebdatum."')"; + } + } + if($row->vorname=='' || $row->vorname==null) + { + if($error_log!='') + { + $error_log.=", Vorname ('".$row->vorname."')"; + } + else + { + $error_log.="Vorname ('".$row->vorname."')"; + } + } + if($row->nachname=='' || $row->nachname==null) + { + if($error_log!='') + { + $error_log.=", Nachname ('".$row->nachname."')"; + } + else + { + $error_log.="Nachname ('".$row->nachname."')"; + } + } + if(($row->svnr=='' || $row->svnr==null)&&($row->ersatzkennzeichen=='' || $row->ersatzkennzeichen==null)) + { + if($error_log!='') + { + $error_log.=", SVNR ('".$row->svnr."') bzw. Erskz ('".$row->ersatzkennzeichen."')"; + } + else + { + $error_log.="SVNR ('".$row->svnr."') bzw. Erskz ('".$row->ersatzkennzeichen."')"; + } + } + if($row->staatsbuergerschaft=='' || $row->staatsbuergerschaft==null) + { + if($error_log!='') + { + $error_log.=", Staatsbürgerschaft ('".$row->staatsbuergerschaft."')"; + } + else + { + $error_log.="Staatsbürgerschaft ('".$row->staatsbuergerschaft."')"; + } + } + if($row->plz=='' || $row->plz==null) + { + if($error_log!='') + { + $error_log.=", Heimat-PLZ ('".$row->plz."')"; + } + else + { + $error_log.="Heimat-PLZ ('".$row->plz."')"; + } + } + if($row->gemeinde=='' || $row->gemeinde==null) + { + if($error_log!='') + { + $error_log.=", Heimat-Gemeinde ('".$row->gemeinde."')"; + } + else + { + $error_log.="Heimat-Gemeinde ('".$row->gemeinde."')"; + } + } + if($row->strasse=='' || $row->strasse==null) + { + if($error_log!='') + { + $error_log.=", Heimat-Strasse ('".$row->strasse."')"; + } + else + { + $error_log.="Heimat-Strasse ('".$row->strasse."')"; + } + } + if($row->nation=='' || $row->nation==null) + { + if($error_log!='') + { + $error_log.=", Heimat-Nation ('".$row->nation."')"; + } + else + { + $error_log.="Heimat-Nation ('".$row->nation."')"; + } + } + if($row->zgv_code=='' || $row->zgv_code==null) + { + if($error_log!='') + { + $error_log.=", ZugangCode ('".$row->zgv_code."')"; + } + else + { + $error_log.="ZugangCode ('".$row->zgv_code."')"; + } + } + if($row->zgvdatum=='' || $row->zgvdatum==null) + { + if($error_log!='') + { + $error_log.=", ZugangDatum ('".$row->zgvdatum."')"; + } + else + { + $error_log.="ZugangDatum ('".$row->zgvdatum."')"; + } + } + if($stgart[$row->studiengang_kz]=='m') + { + if($row->zgvmas_code=='' || $row->zgvmas_code==null) + { + if($error_log!='') + { + $error_log.=", ZugangMagStgCode ('".$row->zgvmas_code."')"; + } + else + { + $error_log.="ZugangMagStgCode ('".$row->zgvmas_code."')"; + } + } + if($row->zgvmadatum=='' || $row->zgvmadatum==null) + { + if($error_log!='') + { + $error_log.=", ZugangMagStgDatum ('".$row->zgvmadatum."')"; + } + else + { + $error_log.="ZugangMagStgDatum ('".$row->zgvmadatum."')"; + } + } + } + + //bei Absolventen das Beendigungsdatum (Sponsion oder Abschlussprüfung) überprüfen + if($row->rolle_kurzbz=='Absolvent') + { + if($row->abdatum=='' || $row->abdatum==null) + { + if($error_log!='') + { + $error_log.=", Datum der Abschlussprüfung ('".$row->abdatum."')"; + } + else + { + $error_log.="Datum der Abschlussprüfung ('".$row->abdatum."')"; + } + } + if($row->sponsion=='' || $row->sponsion==null) + { + if($error_log!='') + { + $error_log.=", Datum der Sponsion ('".$row->sponsion."')"; + } + else + { + $error_log.="Datum der Sponsion ('".$row->sponsion."')"; + } + } + } + if($row->zgvdatum=='' || $row->zgvdatum==null) + { + if($error_log!='') + { + $error_log.=", Berufstätigkeitscode ('".$row->zgvdatum."')"; + } + else + { + $error_log.="Berufstätigkeitscode ('".$row->zgvdatum."')"; + } + } + if($error_log!='') + { + $error_log="Bei Student (UID, Vorname, Nachname) '".$row->student_uid."', '".$row->nachname."', '".$row->vorname."' ($row->rolle_kurzbz) fehlt: ".$error_log."\n"; + if(!isset($fehler[$row->studiengang_kz])) + { + $fehler[$row->studiengang_kz]=$error_log; + } + else + { + $fehler[$row->studiengang_kz].=$error_log; + } + $error_log=""; + } + } +} +echo "Fehlende BIS-Daten:
"; +echo "(Doppelte Zeilen deuten auf mehrere Heimatadressen hin - bitte Kontakte überprüfen)

"; +foreach ($fehler as $f => $v) +{ + echo nl2br("Studiengang: ".$f."(".$email[$f].")\n".$v."\n"); + //mail(trim($email[$f]), 'BIS-Daten / Studiengang: '.$f,"Fehlende Daten für die BIS-Meldung:\n(Doppelte Zeilen deuten auf mehrere Heimatadressen hin - bitte Kontakte überprüfen)\n\nStudiengang: ".$f."(".$email[$f].")\n".$v."\n","From: vilesci@technikum-wien.at"); + mail('ruhan@technikum-wien.at', 'BIS-Daten / Studiengang: '.$f,"Fehlende Daten für die BIS-Meldung:\n(Doppelte Zeilen deuten auf mehrere Heimatadressen hin - bitte Kontakte überprüfen)\n\nStudiengang: ".$f."(".$email[$f].")\n".$v."\n","From: vilesci@technikum-wien.at"); +} + + +?> \ No newline at end of file diff --git a/system/sync/fas/bis_funktionen.php b/system/sync/fas/bis_funktionen.php index b8cdd506d..66195edb6 100644 --- a/system/sync/fas/bis_funktionen.php +++ b/system/sync/fas/bis_funktionen.php @@ -13,6 +13,9 @@ $conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschl $conn_fas=pg_connect(CONN_STRING_FAS) or die("Connection zur FAS Datenbank fehlgeschlagen"); $error_log=''; +$ausgabe1=''; +$ausgabe2=''; +$ausgabe_all=''; $fehler=0; $wochendiv=0; $semester=array(1=>'WS2006', 2=>'SS2007'); @@ -45,67 +48,96 @@ if($result = pg_query($conn, $qry)) } //echo "mitarbeiter_uid / studiengang_kz / studiensemester_kurzbz / semesterstunden / semester / wochen
"; -$qry="SELECT DISTINCT ON(mitarbeiter_uid) mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter;"; -//while-scheife über mitarbeiter -//while-schleife über semester (tbl_lehreinheit) -//aufteilung der sws auf studiengang (tbl_lehrveranstaltung) - tbl_lehreinheitmitarbeiter->semesterstunden/(tbl_semesterwochen->wochen oder 15) -//zuweisung zu eine verwendung des mitarbeiters in tbl_verwendung +$qry="SELECT DISTINCT ON(mitarbeiter_uid) mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter ;"; +//WHERE mitarbeiter_uid='balog' + + if($result = pg_query($conn, $qry)) { while($row = pg_fetch_object($result)) { - echo "
"; $qry_erg="SELECT lehre.tbl_lehreinheitmitarbeiter.mitarbeiter_uid, lehre.tbl_lehrveranstaltung.studiengang_kz, lehre.tbl_lehreinheit.studiensemester_kurzbz, lehre.tbl_lehreinheitmitarbeiter.semesterstunden, lehre.tbl_lehrveranstaltung.semester, public.tbl_semesterwochen.wochen FROM lehre.tbl_lehreinheitmitarbeiter join lehre.tbl_lehreinheit USING (lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN public.tbl_semesterwochen USING(studiengang_kz, semester) WHERE lehre.tbl_lehreinheitmitarbeiter.mitarbeiter_uid='".$row->mitarbeiter_uid."' - AND (lehre.tbl_lehreinheit.studiensemester_kurzbz='".$semester[1]."' OR lehre.tbl_lehreinheit.studiensemester_kurzbz='".$semester[2]."');"; + AND (lehre.tbl_lehreinheit.studiensemester_kurzbz='".$semester[1]."' OR lehre.tbl_lehreinheit.studiensemester_kurzbz='".$semester[2]."');"; //GROUP BY lehre.tbl_lehreinheitmitarbeiter.mitarbeiter_uid, lehre.tbl_lehrveranstaltung.studiengang_kz, lehre.tbl_lehreinheit.studiensemester_kurzbz"; if($result_erg = pg_query($conn, $qry_erg)) { - while($row_erg = pg_fetch_object($result_erg)) + if(pg_num_rows($result_erg)>0) { - echo "mitarbeiter_uid: '".$row_erg->mitarbeiter_uid. "' studiengang_kz: '".$row_erg->studiengang_kz."' studiensemester_kurzbz: '". $row_erg->studiensemester_kurzbz."' semesterstunden: '".$row_erg->semesterstunden."' semester: '". $row_erg->semester."' semesterwochen: '". $row_erg->wochen."'
"; - if($row_erg->wochen==null || $row_erg->wochen<2) - { - $wochendiv=15; - } - else - { - $wochendiv=$row_erg->wochen; - } - if(isset($stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz])) - { - $stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz]+=$row_erg->semesterstunden/$wochendiv; - } - else - { - $stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz]=$row_erg->semesterstunden/$wochendiv; - } - echo '----->$stundensumme['.$row_erg->mitarbeiter_uid.']['.$row_erg->studiengang_kz.'] '.$stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz]."
"; - // - // stunden im selben stg summieren!!! - // - $qry_vw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".$row->mitarbeiter_uid."';"; - if($result_vw = pg_query($conn, $qry_vw)) - { - while($row_vw = pg_fetch_object($result_vw)) + while($row_erg = pg_fetch_object($result_erg)) + { + //$ausgabe1.= "mitarbeiter_uid: '".$row_erg->mitarbeiter_uid. "' studiengang_kz: '".$row_erg->studiengang_kz."' studiensemester_kurzbz: '". $row_erg->studiensemester_kurzbz."' semesterstunden: '".$row_erg->semesterstunden."' semester: '". $row_erg->semester."' semesterwochen: '". $row_erg->wochen."'\n"; + if($row_erg->wochen==null || $row_erg->wochen<2) { - if($row_vw->beginn<=$beginn[$row_erg->studiensemester_kurzbz] AND ($row_vw->ende>=$ende[$row_erg->studiensemester_kurzbz] OR $row_vw->ende=='')) + $wochendiv=15; + } + else + { + $wochendiv=$row_erg->wochen; + } + if(isset($stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz])) + { + $stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz]+=$row_erg->semesterstunden/$wochendiv; + } + else + { + $stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz]=$row_erg->semesterstunden/$wochendiv; + } + //$ausgabe1.='$stundensumme['.$row_erg->mitarbeiter_uid.']['.$row_erg->studiengang_kz.'] '.$stundensumme[$row_erg->mitarbeiter_uid][$row_erg->studiengang_kz][$row_erg->studiensemester_kurzbz]."\n"; + } + //schleife über alle stg, in denen stunden vorhanden sind + $qry_stg="SELECT studiengang_kz FROM public.tbl_studiengang WHERE studiengang_kz>1 AND studiengang_kz<999;"; + if($result_stg = pg_query($conn, $qry_stg)) + { + while($row_stg = pg_fetch_object($result_stg)) + { + //echo "stg: ".$row_stg->studiengang_kz."
"; + if(isset($stundensumme[$row->mitarbeiter_uid][$row_stg->studiengang_kz])) { - echo "--------Verwendung(ID/Code):".$row_vw->bisverwendung_id." ".$row_vw->verwendung_code."/".$row_vw->ba1code.$row_vw->ba1code." -- ".$row_vw->beginn."/".$row_vw->ende." (".$beginn[$row_erg->studiensemester_kurzbz]."/".$ende[$row_erg->studiensemester_kurzbz].")
"; - //beginn- und endedatum des semesters mit beginn- und endedatum der verwendungen vergleichen + //echo "stg mit inhalt: ".$row_stg->studiengang_kz."
"; + $qry_vw="SELECT * FROM bis.tbl_bisverwendung WHERE mitarbeiter_uid='".$row->mitarbeiter_uid."'". + " AND beginn<='".$beginn[$semester[1]]."' AND (ende::varchar is null OR ende>='".$ende[$semester[2]]."');"; + if($result_vw = pg_query($conn, $qry_vw)) + { + if(pg_num_rows($result_vw)>=1) + { + while($row_vw = pg_fetch_object($result_vw)) + { + $qry_ins=''; + //$ausgabe2="Stundensumme in qry: ".$stundensumme[$row_erg->mitarbeiter_uid][$row_stg->studiengang_kz]."\n"; + $qry_ins="INSERT INTO bis.tbl_bisfunktion (bisverwendung_id, studiengang_kz, sws, updateamum, updatevon, insertvon, insertamum, ext_id) + VALUES (".myaddslashes($row_vw->bisverwendung_id).", ".myaddslashes($row_stg->studiengang_kz).", ".myaddslashes($stundensumme[$row->mitarbeiter_uid][$row_stg->studiengang_kz]).", "."now(), "."'SYNC', "."now(), "."'SYNC', "."NULL".");"; + + $ausgabe2.= "Verwendung von Mitarbeiter ".$row->mitarbeiter_uid." (ID/Code):".$row_vw->bisverwendung_id." ".$row_vw->verwendung_code."/".$row_vw->ba1code." -- ".$row_vw->beginn."/".$row_vw->ende." (".$beginn[$semester[1]]."/".$ende[$semester[2]].")\n-----".$qry_ins."\n"; + } + } + else + { + while($row_vw = pg_fetch_object($result_vw)) + { + $error_log.=$ausgabe2."#####Verwendung(ID/Code):".$row_vw->bisverwendung_id." ".$row_vw->verwendung_code."/".$row_vw->ba1code." -- ".$row_vw->beginn."/".$row_vw->ende." (".$beginn[$semester[1]]."/".$ende[$semester[2]].")\n"; + } + } + } } } } } } + + $ausgabe_all.=$ausgabe1." ".$ausgabe2; + $ausgabe1=''; + $ausgabe2=''; } } //echo nl2br("Fehler: ".$fehler."\n".$error_log); //echo nl2br("\n***********************************\nLog: \n".$ausgabe); +echo nl2br("Log:\n".$ausgabe_all); +echo nl2br("Fehler:\n".$error_log); //mail($adress, 'Fehler BIS-Funktionen von '.$_SERVER['HTTP_HOST'], "Fehler: ".$fehler."\n".$error_log,"From: vilesci@technikum-wien.at"); //mail($adress, 'BIS-Funktionen von '.$_SERVER['HTTP_HOST'], $ausgabe,"From: vilesci@technikum-wien.at"); diff --git a/system/sync/fas/sync_fas_vilesci_verwendung.php b/system/sync/fas/sync_fas_vilesci_verwendung.php index 48e880e90..da929b99c 100644 --- a/system/sync/fas/sync_fas_vilesci_verwendung.php +++ b/system/sync/fas/sync_fas_vilesci_verwendung.php @@ -109,7 +109,7 @@ if($result_ma = pg_query($conn_fas, $qry_ma)) { if(!($row->verwendung>=1 AND $row->verwendung<=9)) { - $error_log.="Verwendungscode ungülig (".$row->verwendung.") bei funktion_pk=".$row->funktion_pk.".\n"; + $error_log.="Verwendungscode ungültig (".$row->verwendung.") bei funktion_pk=".$row->funktion_pk.".\n"; $fehler++; continue; } @@ -123,13 +123,13 @@ if($result_ma = pg_query($conn_fas, $qry_ma)) } if(!($row->beschart1>=1 AND $row->beschart1<=6)) { - $error_log.="Beschäftigungsart 1 ungülig (".$row->beschart1.") bei funktion_pk=".$row->funktion_pk.".\n"; + $error_log.="Beschäftigungsart 1 ungültig (".$row->beschart1.") bei funktion_pk=".$row->funktion_pk.".\n"; $fehler++; continue; } if(!($row->beschart2>=1 AND $row->beschart2<=2)) { - $error_log.="Beschäftigungsart 2 ungülig (".$row->beschart2.") bei funktion_pk=".$row->funktion_pk.".\n"; + $error_log.="Beschäftigungsart 2 ungültig (".$row->beschart2.") bei funktion_pk=".$row->funktion_pk.".\n"; $fehler++; continue; } @@ -247,9 +247,9 @@ if($result_ma = pg_query($conn_fas, $qry_ma)) } } -echo nl2br("Fehler: ".$fehler."\n".$error_log); +echo nl2br("Gesamt: ".$anzahl_quelle."\nFehler: ".$fehler."\n".$error_log); echo nl2br("\n***********************************\nLog: \n".$ausgabe); -mail($adress, 'SYNC-Fehler BIS-Verwendung von '.$_SERVER['HTTP_HOST'], "Fehler: ".$fehler."\n".$error_log,"From: vilesci@technikum-wien.at"); +mail($adress, 'SYNC-Fehler BIS-Verwendung von '.$_SERVER['HTTP_HOST'], "Gesamt: ".$anzahl_quelle."\nFehler: ".$fehler."\n".$error_log,"From: vilesci@technikum-wien.at"); mail($adress, 'SYNC BIS-Verwendung von '.$_SERVER['HTTP_HOST'], $ausgabe,"From: vilesci@technikum-wien.at"); ?> \ No newline at end of file