From 63384613acd1dc92af468cec9bccf65342448e22 Mon Sep 17 00:00:00 2001 From: Rudolf Hangl Date: Thu, 9 Aug 2007 12:28:16 +0000 Subject: [PATCH] --- system/sync/fas/sync_fas_vilesci_io.php | 278 +++++++++++++++++++++ system/sync/fas/sync_fas_vilesci_konto.php | 6 +- 2 files changed, 283 insertions(+), 1 deletion(-) create mode 100644 system/sync/fas/sync_fas_vilesci_io.php diff --git a/system/sync/fas/sync_fas_vilesci_io.php b/system/sync/fas/sync_fas_vilesci_io.php new file mode 100644 index 000000000..40c9de9dd --- /dev/null +++ b/system/sync/fas/sync_fas_vilesci_io.php @@ -0,0 +1,278 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +//* +//* Synchronisiert IO-atensaetze von FAS DB in VILESCI DB +//* +//* + +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"); + +$adress='ruhan@technikum-wien.at'; +//$adress='fas_sync@technikum-wien.at'; + +$error_log=''; +$text = ''; +$anzahl_quelle=0; +$anzahl_eingefuegt=0; +$anzahl_update=0; +$anzahl_fehler=0; +$update=false; +$ausgabe=''; +$ausgabe_io=''; + +function myaddslashes($var) +{ + return ($var!=''?"'".addslashes($var)."'":'null'); +} +?> + + + +Synchro - FAS -> Vilesci - IO + + + +programm; + $nation_code = $row->gastland; + $von = $row->von; + $bis = $row->bis; + $zweck_code = $row->zweck; + //$student_uid = ''; + $updateamum = $row->insertamum; + $updatevon = 'SYNC'; + $insertamum = $row->insertamum; + //$insertvon = ''; + $ext_id =$row->mobilitaetsprogramm_pk; + + //insertvon + $qrycu="SELECT name FROM benutzer WHERE benutzer_pk='".$row->creationuser."';"; + if($resultcu = pg_query($conn_fas, $qrycu)) + { + if($rowcu=pg_fetch_object($resultcu)) + { + $insertvon=$rowcu->name; + } + } + + + //student_id ermitteln + $qry="SELECT student_uid, studiengang_kz FROM public.tbl_student WHERE ext_id='".$row->student_fk."';"; + if($resulto=pg_query($conn, $qry)) + { + if($rowo=pg_fetch_object($resulto)) + { + $student_uid=$rowo->student_uid; + } + else + { + $error=true; + $error_log.="Student mit student_fk: $row->student_fk konnte nicht gefunden werden.\n ".$qry."\n"; + } + } + + if(!$error) + { + $qry="SELECT * FROM bis.tbl_bisio WHERE student_uid='".$student_uid."' AND ext_id='".$ext_id."';"; + if($result2=pg_query($conn,$qry)) + { + if(pg_num_rows($result2)>0) + { + //eintrag gefunden + if($row2=pg_fetch_object($result2)) + { + $update=false; + if($row2->mobilitaetsprogramm_code!=$mobilitaetsprogramm_code) + { + $update=true; + if(strlen(trim($ausgabe_io))>0) + { + $ausgabe_io.=", Mobilitätsprogramm: '".$mobilitaetsprogramm_code."' (statt '".$row2->mobilitaetsprogramm_code."')"; + } + else + { + $ausgabe_io="Mobilitätsprogramm: '".$mobilitaetsprogramm_code."' (statt '".$row2->mobilitaetsprogramm_code."')"; + } + } + if($row2->nation_code!=$nation_code) + { + $update=true; + if(strlen(trim($ausgabe_io))>0) + { + $ausgabe_io.=", Nation: '".$nation_code."' (statt '".$row2->nation_code."')"; + } + else + { + $ausgabe_io="Nation: '".$nation_code."' (statt '".$row2->nation_code."')"; + } + } + if($row2->von!=$von) + { + $update=true; + if(strlen(trim($ausgabe_io))>0) + { + $ausgabe_io.=", von: '".$von."' (statt '".$row2->von."')"; + } + else + { + $ausgabe_io="von: '".$von."' (statt '".$row2->von."')"; + } + } + if($row2->bis!=$bis) + { + $update=true; + if(strlen(trim($ausgabe_io))>0) + { + $ausgabe_io.=", bis: '".$bis."' (statt '".$row2->bis."')"; + } + else + { + $ausgabe_io="bis: '".$bis."' (statt '".$row2->bis."')"; + } + } + if($row2->zweck_code!=$zweck_code) + { + $update=true; + if(strlen(trim($ausgabe_io))>0) + { + $ausgabe_io.=", Zweck: '".$zweck_code."' (statt '".$row2->zweck_code."')"; + } + else + { + $ausgabe_io="Zweck: '".$zweck_code."' (statt '".$row2->zweck_code."')"; + } + } + if($row2->zweck_code!=$zweck_code) + { + $update=true; + if(strlen(trim($ausgabe_io))>0) + { + $ausgabe_io.=", Zweck: '".$zweck_code."' (statt '".$row2->zweck_code."')"; + } + else + { + $ausgabe_io="Zweck: '".$zweck_code."' (statt '".$row2->zweck_code."')"; + } + } + if($row2->updateamum!=$updateamum) + { + $update=true; + if(strlen(trim($ausgabe_io))>0) + { + $ausgabe_io.=", updateamum: '".$updateamum."' (statt '".$row2->updateamum."')"; + } + else + { + $ausgabe_io="updateamum: '".$updateamum."' (statt '".$row2->updateamum."')"; + } + } + if($row2->updatevon!=$updatevon) + { + $update=true; + if(strlen(trim($ausgabe_io))>0) + { + $ausgabe_io.=", updatevon: '".$updatevon."' (statt '".$row2->updatevon."')"; + } + else + { + $ausgabe_io="updatevon: '".$updatevon."' (statt '".$row2->updatevon."')"; + } + } + if($update) + { + $qry="UPDATE bis.tbl_bisio SET ". + "mobilitaetsprogramm_code=".myaddslashes($mobilitaetsprogramm_code).", ". + "nation_code=".myaddslashes(nation_code).", ". + "von=".myaddslashes(von).", ". + "bis=".myaddslashes(bis).", ". + "zweck_code=".myaddslashes(zweck_code).", ". + "student_uid=".myaddslashes(student_uid).", ". + "updateamum=now(), ". + "updatevon='SYNC', ". + "WHERE bisio_id=".myaddslashes($row2->bisio_id).";"; + $ausgabe.="IO von Student: '".$student_uid."' aktualisiert: ".$ausgabe_io.".\n"; + $anzahl_update++; + } + else + { + $qry="select 1;"; + } + } + } + else + { + //einfügen + $qry="INSERT INTO bis.tbl_bisio (mobilitaetsprogramm_code, nation_code, von, bis, zweck_code, + student_uid, updateamum, updatevon, insertamum, insertvon, ext_id) VALUES(". + myaddslashes($mobilitaetsprogramm_code).", ". + myaddslashes($nation_code).", ". + myaddslashes($von).", ". + myaddslashes($bis).", ". + myaddslashes($zweck_code).", ". + myaddslashes($student_uid).", ". + myaddslashes($updateamum).", ". + myaddslashes($updatevon).", ". + myaddslashes($insertamum).", ". + myaddslashes($insertvon).", ". + myaddslashes($ext_id)." ". + ");"; + $ausgabe.="IO von Student: '".$student_uid."' angelegt.\n"; + $anzahl_eingefuegt++; + } + if(!pg_query($conn,$qry)) + { + $error_log.= "*****\nFehler beim Speichern des IO-Datensatzes von Student: ".$student_uid."\n ".$qry."\n"; + $anzahl_fehler++; + } + } + } + + } +} + +echo nl2br("IO-Synchro Ende: ".date("d.m.Y H:i:s")." von ".$_SERVER['HTTP_HOST']."\n\n"); + +//echo nl2br($text); +echo nl2br("\n".$error_log); +echo nl2br("\n\nIO-Sync:\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Geändert: $anzahl_update / Fehler: $anzahl_fehler"); +$ausgabe="IO-Sync:\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Geändert: $anzahl_update / Fehler: $anzahl_fehler\n\n".$ausgabe; +if(strlen(trim($error_log))>0) +{ + mail($adress, 'SYNC-Fehler IO von '.$_SERVER['HTTP_HOST'], $error_log,"From: vilesci@technikum-wien.at"); +} +mail($adress, 'SYNC IO von '.$_SERVER['HTTP_HOST'], $ausgabe,"From: vilesci@technikum-wien.at"); +?> + + \ No newline at end of file diff --git a/system/sync/fas/sync_fas_vilesci_konto.php b/system/sync/fas/sync_fas_vilesci_konto.php index 95f7e69c6..d1e1d7ebd 100644 --- a/system/sync/fas/sync_fas_vilesci_konto.php +++ b/system/sync/fas/sync_fas_vilesci_konto.php @@ -151,7 +151,11 @@ if($result = pg_query($conn_fas, $qry)) continue; } } - + if(in_array($studiengang_kz, $dont_sync_php)) + { + //bestimmte Stg auslassen! + continue; + } $qry1="SELECT person_portal FROM sync.tbl_syncperson WHERE person_fas=".$row2->person_fk.";"; if($result1 = pg_query($conn, $qry1)) {