diff --git a/admin/sync/fas/sync_fas_vilesci_benutzergruppe.php b/admin/sync/fas/sync_fas_vilesci_benutzergruppe.php new file mode 100644 index 000000000..deeb798d8 --- /dev/null +++ b/admin/sync/fas/sync_fas_vilesci_benutzergruppe.php @@ -0,0 +1,240 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +//* +//* Synchronisiert Benutzergruppendatensaetze von FAS DB in PORTAL DB +//* +//* + +include('../../../vilesci/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"); + +$adress='ruhan@technikum-wien.at'; +//$adress='fas_sync@technikum-wien.at'; + +$error_log=''; +$error_log_fas=''; +$text = ''; +$anzahl_quelle=0; +$anzahl_quelle_student=0; +$anzahl_eingefuegt=0; +$anzahl_update=0; +$anzahl_fehler=0; +$nicht_gefunden=0; +$ausgabe=''; +$ausgabe_slv=''; +$ausgabe_all=''; +$update=false; + +function myaddslashes($var) +{ + return ($var!=''?"'".addslashes($var)."'":'null'); +} + +/************************* + * FAS-PORTAL - Synchronisation + */ +?> + + + +Synchro - FAS -> Vilesci - Benutzergruppe + + + +'' AND perskz IS NOT null AND perskz<>'' +ORDER BY Familienname, Vorname;"; + +if($result = pg_query($conn_fas, $qry)) +{ + echo nl2br("Benutzergruppe Sync\n----------------------\n"); + $anzahl_quelle_student=pg_num_rows($result); + while($row = pg_fetch_object($result)) + { + $error=false; + $uid =""; + $gruppe_kurzbz =""; + $studiensemester_kurzbz =""; + $updateamum =""; + $updatevon ="SYNC"; + $insertamum =$row->creationdate; + $insertvon =$row->creationuser; + $ext_id =""; + + $error=false; + $error_log=""; + + $qry4="SELECT * from public.tbl_benutzer WHERE ext_id='".$row->student_pk."';"; + if($result4 = pg_query($conn, $qry4)) + { + if(pg_num_rows($result4)<1) + { + $error=true; + $error_log_fas.="Benutzer mit ext_id='".$row->student_pk."' nicht gefunden! ('".$row->perskz."', '".$row->familienname."', '".$row->vorname."')\n"; + $nicht_gefunden++; + } + else + { + if($row4=pg_fetch_object($result4)) + { + $uid=$row4->uid; + } + } + } + if(!$error) + { + $qry1="SELECT gruppe_fk FROM student_gruppe WHERE student_fk='".$row->student_pk."' ORDER BY gruppe_fk;"; + if($result1 = pg_query($conn_fas, $qry1)) + { + while($row1=pg_fetch_object($result1)) + { + $error=false; + $error_log=""; + $anzahl_quelle++; + $qry2="SELECT * FROM sync.tbl_syncgruppe WHERE fas_gruppe='".$row1->gruppe_fk."';"; + $gruppe_kurzbz=""; + if($result2 = pg_query($conn, $qry2)) + { + if($row2=pg_fetch_object($result2)) + { + //echo nl2br("qry2=".$qry2."\n"); + $gruppe_kurzbz=$row2->vilesci_gruppe; + } + else + { + $error=true; + } + } + else + { + $error=true; + $error_log="Fehler beim Zugriff auf Tablelle tbl_gruppe.".$qry2; + $anzahl_fehler++; + } + $qry3="SELECT studiensemester_fk FROM gruppe WHERE gruppe_pk='".$row1->gruppe_fk."';"; + $studiensemester_kurzbz=""; + if($result3 = pg_query($conn_fas, $qry3)) + { + if($row3=pg_fetch_object($result3)) + { + $qry4="SELECT studiensemester_kurzbz FROM public.tbl_studiensemester WHERE ext_id='".$row3->studiensemester_fk."';"; + if($result4 = pg_query($conn, $qry4)) + { + if($row4=pg_fetch_object($result4)) + { + $studiensemester_kurzbz=$row4->studiensemester_kurzbz; + } + } + else + { + $error=true; + $error_log="Fehler beim Zugriff auf Tablelle tbl_studiensemester.".$qry4; + $anzahl_fehler++; + } + } + else + { + $error=true; + } + } + else + { + $error=true; + $error_log="Fehler beim Zugriff auf Tablelle gruppe.".$qry3; + $anzahl_fehler++; + } + + if($gruppe_kurzbz!="" && $studiensemester_kurzbz!="" && !$error && $uid!="") + { + $qrychk2="SELECT * FROM public.tbl_benutzergruppe WHERE uid='".$uid."' AND gruppe_kurzbz='".$gruppe_kurzbz."';"; + //echo nl2br("...".$qrychk2."\n"); + if($resultchk2 = pg_query($conn, $qrychk2)) + { + if($rowchk2=pg_fetch_object($resultchk2)) + { + //update + + if($rowchk2->uid!=$uid || $rowchk2->gruppe_kurzbz!=$gruppe_kurzbz || $rowchk2->studiensemester_kurzbz!=$studiensemester_kurzbz) + { + $qrybg="UPDATE public.tbl_benutzergruppe SET ". + "uid=".myaddslashes($uid).", ". + "gruppe_kurzbz=".myaddslashes($gruppe_kurzbz).", ". + "studiensemester_kurzbz=".myaddslashes($studiensemester_kurzbz).", ". + "updateamum=now(), ". + "updatevon='SYNC'". + "WHERE uid='".$uid."' AND gruppe_kurzbz='".$gruppe_kurzbz."';"; + if($resultbg=pg_query($conn, $qrybg)) + { + $anzahl_update++; + $ausgabe="Benutzergruppe auf UID='".$uid."', Gruppe='".$gruppe_kurzbz."', Studiensemester='".$studiensemester_kurzbz."' geändert (statt UID='".$rowchk2->uid."', Gruppe='".$rowchk2->gruppe_kurzbz."', Studiensemester='".$rowchk2->studiensemester_kurzbz."').\n"; + } + else + { + $anzahl_fehler++; + $error_log="Fehler beim Ändern in Tabelle tbl_benutzergruppe. ".$qrybg."\n"; + } + } + } + else + { + //insert + $qrybg="INSERT INTO public.tbl_benutzergruppe (uid, gruppe_kurzbz, studiensemester_kurzbz, insertamum, insertvon, updateamum, updatevon, ext_id) VALUES( ". + myaddslashes($uid).", ". + myaddslashes($gruppe_kurzbz).", ". + myaddslashes($studiensemester_kurzbz).", ". + myaddslashes($insertamum).", ". + myaddslashes($insertvon).", ". + "now(), ". + "'SYNC', ". + myaddslashes($ext_id).");"; + if($resultbg=pg_query($conn, $qrybg)) + { + $ausgabe="Benutzergruppe mit UID='".$uid."', Gruppe='".$gruppe_kurzbz."', Studiensemester='".$studiensemester_kurzbz."' angelegt.\n"; + $anzahl_eingefuegt++; + } + else + { + $anzahl_fehler++; + $error_log="Fehler beim Einfügen in Tabelle tbl_benutzergruppe. ".$qrybg."\n"; + } + } + } + } + //echo nl2br($ext_id.", ".$error); + $ausgabe_all.=$ausgabe; + $error_log_fas.=$error_log; + $ausgabe=''; + $error_log=''; + } + } + } + } +} + +//echo nl2br($text); +echo nl2br("\nBenutzergruppe\nStudenten: $anzahl_quelle_student / Gruppen: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Geändert: $anzahl_update / Fehler: $anzahl_fehler\n"); +echo nl2br("\nStudenten, die in tbl_benutzer nicht gefunden wurden: ".$nicht_gefunden."\n".$error_log_fas); +echo nl2br ("\n\n".$ausgabe_all); +$ausgabe="\nBenutzergruppe\nStudenten: $anzahl_quelle_student / Gruppen: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Geändert: $anzahl_update / Fehler: $anzahl_fehler." +."\n\n".$ausgabe_all; + +if(strlen(trim($error_log_fas))>0) +{ + mail($adress, 'SYNC-Fehler Benutzergruppe von '.$_SERVER['HTTP_HOST'], "Studenten, die in tbl_benutzer nicht gefunden wurden: ".$nicht_gefunden."\n".$error_log_fas,"From: vilesci@technikum-wien.at"); +} +mail($adress, 'SYNC Benutzergruppe von '.$_SERVER['HTTP_HOST'], $ausgabe,"From: vilesci@technikum-wien.at"); + +?> + + \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_vilesci_gruppe.php b/admin/sync/fas/sync_fas_vilesci_gruppe.php new file mode 100644 index 000000000..48bd6b57b --- /dev/null +++ b/admin/sync/fas/sync_fas_vilesci_gruppe.php @@ -0,0 +1,310 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +//* +//* Synchronisiert Gruppendatensaetze von FAS DB in PORTAL DB +//* +//* + +include('../../../vilesci/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"); + +//$adress='ruhan@technikum-wien.at'; +$adress='fas_sync@technikum-wien.at'; + +$error_log=''; +$error_log_fas=''; +$text = ''; +$anzahl_quelle=0; +$anzahl_eingefuegt=0; +$anzahl_update=0; +$anzahl_fehler=0; +$ausgabe=''; +$ausgabe_all=''; +$update=false; + +function myaddslashes($var) +{ + return ($var!=''?"'".addslashes($var)."'":'null'); +} + +/************************* + * FAS-PORTAL - Synchronisation + */ +?> + + + +Synchro - FAS -> Vilesci - Gruppe + + + +obergruppe_fk!='0') + { + $qry1="SELECT * FROM gruppe WHERE gruppe_pk='".$row->obergruppe_fk."';"; + if($result1 = pg_query($conn_fas, $qry1)) + { + if($row1=pg_fetch_object($result1)) + { + if($row1->obergruppe_fk!='0') + { + $qry2="SELECT * FROM gruppe WHERE gruppe_pk='".$row1->obergruppe_fk."';"; + if($result2 = pg_query($conn_fas, $qry2)) + { + if($row2=pg_fetch_object($result2)) + { + if($row2->obergruppe_fk!='0') + { + $qry3="SELECT * FROM gruppe WHERE gruppe_pk='".$row2->obergruppe_fk."';"; + if($result3 = pg_query($conn_fas, $qry3)) + { + if($row3=pg_fetch_object($result3)) + { + $semester=$row3->name; + $verband=$row2->name; + $gruppe=$row1->name; + $untergruppe=$row->name; + } + } + else + { + $error=true; + $error_log="Zugriff auf Tabelle gruppe ist fehlgeschlagen.\n"; + } + } + else + { + $semester=$row2->name; + $verband=$row1->name; + $gruppe=$row->name; + } + } + } + else + { + $error=true; + $error_log="Zugriff auf Tabelle Gruppe fehlgeschlagen.\n"; + } + } + else + { + $semester=$row1->name; + $verband=$row->name; + $gruppe=' '; + } + } + } + else + { + $error=true; + $error_log="Zugriff auf Tabelle gruppe fehlgeschlagen.\n"; + } + } + else + { + $semester=$row->name; + $verband=' '; + $gruppe=' '; + } + $ext_id=$row->gruppe_pk; + +//echo nl2br($semester."/".$verband."/".$gruppe."/".$untergruppe."--".$ext_id."\n"); +//continue; + $qry2="SELECT * FROM studiengang WHERE studiengang_pk='".$row1->studiengang_fk."';"; + if($result2 = pg_query($conn_fas, $qry2)) + { + if($row2=pg_fetch_object($result2)) + { + $studiengang_kz=$row2->kennzahl; + } + else + { + $error_log.="Studiengang mit studiengang_pk='".$row1->studiengang_fk."' nicht gefunden.\n"; + $error=true; + } + } + else + { + $error=true; + $error_log="Fehler beim Zugriff auf Tabelle studiengang.\n"; + } + $qry2="SELECT * FROM public.tbl_studiengang WHERE studiengang_kz='".$studiengang_kz."';"; + if($result2 = pg_query($conn, $qry2)) + { + if($row2=pg_fetch_object($result2)) + { + $gruppe_kurzbz=strtoupper($row2->typ).strtoupper($row2->kurzbz)."-".strtoupper(trim($semester)).strtoupper(trim($verband)).strtoupper(trim($gruppe)).strtoupper(trim($untergruppe)); + if(strlen($gruppe_kurzbz)>16) + { + $verband=substr($verband,0,strlen($verband)-(strlen($gruppe_kurzbz)-16)); + $gruppe_kurzbz=strtoupper($row2->typ).strtoupper($row2->kurzbz)."-".strtoupper(trim($semester)).strtoupper(trim($verband)).strtoupper(trim($gruppe)).strtoupper(trim($untergruppe)); + } + } + else + { + $error_log.="Studiengang mit studiengang_kz='".$studiengang_kz."' nicht gefunden.\n"; + $error=true; + } + } + else + { + $error=true; + $error_log="Fehler beim Zugriff auf Tabelle tbl_studiengang.\n"; + } + $bezeichnung=$gruppe_kurzbz; + $beschreibung=$bezeichnung; + if(!$error) + { + $qry2="SELECT * FROM public.tbl_gruppe WHERE gruppe_kurzbz='".$gruppe_kurzbz."' AND studiengang_kz='".$studiengang_kz."';"; + if($result2 = pg_query($conn, $qry2)) + { + if($row2=pg_fetch_object($result2)) + { + //Eintrag bereits vorhanden - Eintragung in Sync-Tabelle + $anzahl_update++; + $qrysync="SELECT * FROM sync.tbl_syncgruppe WHERE fas_gruppe='".$ext_id."' AND vilesci_gruppe='".$gruppe_kurzbz."';"; + if($resultsync = pg_query($conn, $qrysync)) + { + $ausgabe="Gruppe in Vilesci bereits vorhanden.\n"; + $qryupd="UPDATE public.tbl_gruppe SET ext_id='".$ext_id."' WHERE gruppe_kurzbz='".$gruppe_kurzbz."' AND studiengang_kz='".$studiengang_kz."';"; + if($resultupd = pg_query($conn, $qryupd)) + { + if($rowsync=pg_fetch_object($resultsync)) + { + //Sync-Eintrag bereits vorhanden + $qryinss="INSERT INTO sync.tbl_syncgruppe (fas_gruppe, vilesci_gruppe) VALUES ('".$ext_id."','".$rowsync->vilesci_gruppe."');"; + $ausgabe.="---Sync-Eintrag 1: FAS-'".$ext_id."', Vilesci-'".$rowsync->vilesci_gruppe."'.\n"; + } + else + { + //Sync-Eintrag nicht vorhanden + $qryinss="INSERT INTO sync.tbl_syncgruppe (fas_gruppe, vilesci_gruppe) VALUES ('".$ext_id."','".$gruppe_kurzbz."');"; + $ausgabe.="---Sync-Eintrag 2: FAS-'".$ext_id."', Vilesci-'".$gruppe_kurzbz."'.\n"; + } + if(!(pg_query($conn, $qryinss))) + { + $error=true; + $error_log="Eintrag in Tabelle tbl_syncgruppe fehlgeschlagen: ".$qryinss."\n"; + } + } + else + { + $error=true; + $error_log="Update in Tabelle tbl_gruppe fehlgeschlagen: ".$qryupd."\n"; + } + } + } + else + { + //Eintrag noch nicht vorhanden - Insert und Eintragung in Sync-Tabelle + $qryinsg="INSERT INTO public.tbl_gruppe (gruppe_kurzbz, studiengang_kz, semester, bezeichnung, beschreibung, sichtbar, lehre, aktiv, sort, mailgrp, generiert, updateamum, updatevon, insertamum, insertvon, ext_id) VALUES(". + myaddslashes($gruppe_kurzbz).", ". + myaddslashes($studiengang_kz).", ". + myaddslashes($semester).", ". + myaddslashes($bezeichnung).", ". + myaddslashes($beschreibung).", ". + ($sichtbar?'true':'false').", ". + ($lehre?'true':'false').", ". + ($aktiv?'true':'false').", ". + myaddslashes($sort).", ". + ($mailgrp?'true':'false').", ". + ($generiert?'true':'false').", + now(), + 'SYNC', + now(), + 'SYNC', ". + $ext_id.");"; + + if($resultinsg = pg_query($conn, $qryinsg)) + { + $anzahl_eingefuegt++; + $ausgabe="Gruppe mit gruppe_pk='".$ext_id."' eingetragen als: Gruppe='".$gruppe_kurzbz."', Stg.='".$studiengang_kz."'.\n"; + $qryinss="INSERT INTO sync.tbl_syncgruppe (fas_gruppe, vilesci_gruppe) VALUES ('".$ext_id."','".$gruppe_kurzbz."');"; + + if(!(pg_query($conn, $qryinss))) + { + $error=true; + $error_log="Eintrag in Tabelle tbl_syncgruppe fehlgeschlagen: ".$qryinss.";\n"; + } + else + { + $ausgabe.="---Sync-Eintrag: FAS-'".$ext_id."', Vilesci-'".$gruppe_kurzbz."'.\n"; + } + } + else + { + $error=true; + $error_log="Eintrag in Tabelle tbl_gruppe fehlgeschlagen: ".$qryinsg."\n"; + } + } + } + else + { + $error=true; + $error_log="Fehler bei Zugriff auf Tabelle tbl_gruppe"; + } + } + else + { + $anzahl_fehler++; + } + $ausgabe_all.=$ausgabe; + } +} + + +//echo nl2br($text); +echo nl2br("\nGruppe\nGruppe: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Nicht eingefügt: $anzahl_update / Fehler: $anzahl_fehler\n\n"); +echo nl2br($error_log_fas."\n\n"); +echo nl2br ($ausgabe_all); +$ausgabe="\nGruppe\nGruppe: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Nicht eingefügt: $anzahl_update / Fehler: $anzahl_fehler." +."\n\n".$ausgabe_all; + +if(strlen(trim($error_log_fas))>0) +{ + mail($adress, 'SYNC-Fehler Gruppe von '.$_SERVER['HTTP_HOST'], $error_log_fas,"From: vilesci@technikum-wien.at"); +} +mail($adress, 'SYNC Gruppe von '.$_SERVER['HTTP_HOST'], $ausgabe,"From: vilesci@technikum-wien.at"); + +?> + + \ No newline at end of file diff --git a/admin/sync/fas/sync_fas_vilesci_studentlehrverband.php b/admin/sync/fas/sync_fas_vilesci_studentlehrverband.php index 9b99db88e..0090286f7 100644 --- a/admin/sync/fas/sync_fas_vilesci_studentlehrverband.php +++ b/admin/sync/fas/sync_fas_vilesci_studentlehrverband.php @@ -17,8 +17,8 @@ include('../../../vilesci/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"); -$adress='ruhan@technikum-wien.at'; -//$adress='fas_sync@technikum-wien.at'; +//$adress='ruhan@technikum-wien.at'; +$adress='fas_sync@technikum-wien.at'; $error_log=''; $error_log_fas=''; @@ -55,7 +55,9 @@ function myaddslashes($var) '' AND perskz IS NOT null AND perskz<>'' ORDER BY Familienname, Vorname ;"; +$qry="SELECT * FROM person, student +WHERE person_pk=person_fk AND uid IS NOT null AND uid<>'' AND perskz IS NOT null AND perskz<>'' +ORDER BY Familienname, Vorname;"; if($result = pg_query($conn_fas, $qry)) { @@ -76,8 +78,6 @@ if($result = pg_query($conn_fas, $qry)) $insertvon ="SYNC"; $ext_id =""; - - $update=false; $qry="SELECT * FROM student_gruppe WHERE student_fk='".$row->student_pk."';"; if($result1 = pg_query($conn_fas, $qry)) { @@ -213,7 +213,7 @@ if($result = pg_query($conn_fas, $qry)) } else { - $error_log="Gruppentyp nicht 1, 2 oder 3.\n"; + $error_log="Gruppentyp nicht 1, 2, 3 oder 10.\n"; $error=true; } } @@ -235,7 +235,7 @@ if($result = pg_query($conn_fas, $qry)) } else { - $error_log.="Studiengang mit studiengang_pk='".$row2->studiengang_fk."' nicht gefunden."; + $error_log.="Studiengang mit studiengang_pk='".$row2->studiengang_fk."' nicht gefunden.\n"; $error=true; } } @@ -249,7 +249,7 @@ if($result = pg_query($conn_fas, $qry)) } else { - $error_log.="Studiensemester '".$row2->studiensemester_fk."' nicht gefunden."; + $error_log.="Studiensemester '".$row2->studiensemester_fk."' nicht gefunden.\n"; $error=true; } } @@ -271,7 +271,7 @@ if($result = pg_query($conn_fas, $qry)) else { $error=true; - $error_log.="Student mit matrikelnr=".$row->perskz." in tbl_student nicht gefunden"; + $error_log.="Student mit matrikelnr=".$row->perskz." in tbl_student nicht gefunden.\n"; } } else @@ -416,11 +416,11 @@ if($result = pg_query($conn_fas, $qry)) $error_log_fas.="### Student ".$student_uid.", ".$row->familienname.", (".$row->perskz.") gruppe_pk='".$row1->gruppe_fk."' : ".$error_log; } } - else + /*else { $anzahl_fehler++; $error_log_fas.="### Student mit UID/Name/Perskz ".$student_uid.", ".$row->familienname.", (".$row->perskz.") gruppe_pk='".$row1->gruppe_fk."' : ".$error_log; - } + }*/ } } else