diff --git a/system/sync/stp/sync_stp_vilesci_person.php b/system/sync/stp/sync_stp_vilesci_person.php index 191136159..c16867542 100644 --- a/system/sync/stp/sync_stp_vilesci_person.php +++ b/system/sync/stp/sync_stp_vilesci_person.php @@ -20,6 +20,11 @@ $starttime=time(); $conn=pg_connect(CONN_STRING) or die("Connection zur FH-Complete Datenbank fehlgeschlagen"); +function myaddslashes($var) +{ + return ($var!=''?"'".addslashes($var)."'":'null'); +} + // Sync-Tabelle fuer Personen checken if (!@pg_query($conn,'SELECT * FROM sync.tbl_syncperson LIMIT 1;')) { @@ -42,6 +47,7 @@ if (!@pg_query($conn,'SELECT * FROM sync.tbl_syncperson LIMIT 1;')) $error_log=''; $error_log_ext=''; +$ausgabe=""; $text = ''; $anzahl_quelle=0; $anzahl_eingefuegt=0; @@ -56,7 +62,7 @@ $plausi=''; ?> -Synchro - FAS -> Vilesci - Person +Synchro - StPoelten -> Vilesci - Person @@ -88,224 +94,53 @@ if($result = pg_query($conn, $qry)) $sql="SELECT * FROM public.tbl_person WHERE (svnr='$row->chsvnr' AND svnr!='' AND svnr IS NOT NULL) - OR (nachname='$row->chnachname' AND '$row->chnachname'!='' AND vorname='$row->chvorname' AND '$row->chvorname'!='' AND gebdatum='$row->dagebdat' AND gebdatum IS NOT NULL)"; + OR (ersatzkennzeichen='.myaddslashes($row->chersatzkz).' AND ersatzkennzeichen!='' AND ersatzkennzeichen IS NOT NULL) + OR (nachname=".myaddslashes($row->chnachname)." AND ".myaddslashes($row->chnachname)."!='' AND vorname=".myaddslashes($row->chvorname)."AND ".myaddslashes($row->chvorname)."!='' AND gebdatum=".myaddslashes($row->dagebdat)." AND gebdatum IS NOT NULL)"; if($result_dubel = pg_query($conn, $sql)) { if (pg_num_rows($result_dubel)==0) { //Neue Person anlegen $sql="INSERT INTO public.tbl_person - (staatsbuergerschaft,geburtsnation,sprache,anrede,titelpost,titelpre,nachname,vorname,vornamen,gebdatum,gebort,gebzeit,foto,anmerkung,homepage,svnr,ersatzkennzeichen,familienstand,geschlecht,anzahlkinder,aktiv,insertamum,insertvon,updateamum,updatevon,ext_id) + (staatsbuergerschaft,geburtsnation,sprache,anrede,titelpost,titelpre,nachname,vorname, + vornamen,gebdatum,gebort,gebzeit,foto,anmerkung,homepage,svnr,ersatzkennzeichen, + familienstand,geschlecht,anzahlkinder,aktiv,insertamum,insertvon,updateamum,updatevon, + ext_id) VALUES - ($row->_staatsbuerger,$row->_gebland,NULL,'$row->briefanrede',NULL,'$row->chtitel','$row->chnachname','$row->chvorname',NULL,'$row->dagebdat','$row->chgebort',NULL,NULL,'$row->chadrbemerkung','$row->chhomepage','$row->chsvnr','$row->chersatzkz',$row->_cxfamilienstand,'$row->_cxgeschlecht',$row->inkinder,TRUE,now(),'sync',now(),'sync',NULL);"; + (".myaddslashes($row->_staatsbuerger).", ". + myaddslashes($row->_gebland).", ". + "NULL, ". + myaddslashes($row->briefanrede).", ". + "NULL, ". + myaddslashes($row->chtitel).", ". + myaddslashes($row->chnachname).", ". + myaddslashes($row->chvorname).", ". + "NULL, ". + myaddslashes($row->dagebdat).", ". + myaddslashes($row->chgebort).", ". + "NULL, ". + "NULL, ". + myaddslashes($row->chadrbemerkung).", ". + myaddslashes($row->chhomepage).", ". + myaddslashes($row->chsvnr).", ". + myaddslashes($row->chersatzkz).", ". + myaddslashes($row->_cxfamilienstand).", ". + myaddslashes($row->_cxgeschlecht).", ". + myaddslashes($row->inkinder).", ". + "TRUE, now(), 'sync', now(), 'sync', NULL);"; if(!$result_neu = pg_query($conn, $sql)) - echo $sql.'
'.pg_last_error($conn).'
'; + $error_log.= $sql."\n".pg_last_error($conn)." \n"; + else + $ausgabe.="\n------------------\nÜbertragen: ".$row->chtitel." ".$row->chnachname.", ".$row->chvorname; } } } } } +echo nl2br($error_log); +echo nl2br($ausgabe); - -/*mail($adress, 'Plausicheck von Personen von '.$_SERVER['HTTP_HOST'], $error_log_fas,"From: vilesci@technikum-wien.at"); -$error_log_fas=''; -exit; - -$qry = "SELECT * FROM person WHERE person_pk AS person1 NOT IN ( -SELECT -p1.person_pk AS person1, p1.familienname AS familienname1, p1.vorname AS vorname1, p1.vornamen AS vornamen1, p1.geschlecht AS geschlecht1, -p1.gebdat AS gebdat1, p1.gebort AS gebort1, p1.staatsbuergerschaft AS staatsbuergerschaft1, p1.familienstand AS familienstand1, -p1.svnr AS svnr1, p1. ersatzkennzeichen AS ersatzkennzeichen1, p1.anrede AS anrede1, p1.anzahlderkinder AS anzahlderkinder1, -p1.bismelden AS bismelden1, p1.titel AS titel1, p1.uid AS uid1, p1.gebnation AS gebnation1, p1.postnomentitel AS postnomentitel1, -p2.person_pk AS person2, p2.familienname AS familienname2, p2.vorname AS vorname2, p2.vornamen AS vornamen2, p2.geschlecht AS geschlecht2, -p2.gebdat AS gebdat2, p2.gebort AS gebort2, p2.staatsbuergerschaft AS staatsbuergerschaft2, p2.familienstand AS familienstand2, -p2.svnr AS svnr2, p2. ersatzkennzeichen AS ersatzkennzeichen2, p2.anrede AS anrede2, p2.anzahlderkinder AS anzahlderkinder2, -p2.bismelden AS bismelden2, p2.titel AS titel2, p2.uid AS uid2, p2.gebnation AS gebnation2, p2.postnomentitel AS postnomentitel2 -FROM person AS p1, person AS p2 WHERE -((p1.gebdat=p2.gebdat AND p1.familienname=p2.familienname AND p1.vorname=p2.vorname) -OR ((p1.ersatzkennzeichen=p2.ersatzkennzeichen AND p1.ersatzkennzeichen<>'') OR (p1.svnr=p2.svnr AND p1.svnr<>''))) -AND (p1.person_pk <> p2.person_pk) -AND (p1.familienname<>p2.familienname OR p1.vorname<>p2.vorname OR p1.vornamen<>p2.vornamen OR p1.geschlecht<>p2.geschlecht OR p1.gebdat<>p2.gebdat OR p1.staatsbuergerschaft<> p2.staatsbuergerschaft OR p1.familienstand<>p2.familienstand OR p1.svnr<>p2.svnr OR p1.ersatzkennzeichen<>p2.ersatzkennzeichen OR p1.anrede<>p2.anrede OR p1.anzahlderkinder<>p2.anzahlderkinder OR p1.titel<>p2.titel OR p1.gebnation<>p2.gebnation OR p1.postnomentitel<> p2.postnomentitel) -);"; -if($result = pg_query($conn_fas, $qry)) -{ - echo nl2br("Person Sync\n-------------\n"); - $anzahl_quelle=pg_num_rows($result); - while($row = pg_fetch_object($result)) - { - $person=new person($conn); - - $person->geburtsnation=$row->gebnation; - $person->anrede=trim($row->anrede); - $person->titelpost=trim($row->postnomentitel); - $person->titelpre=trim($row->titel); - $person->nachname=trim($row->familienname); - $person->vorname=trim($row->vorname); - $person->vornamen=trim($row->vornamen); - $person->gebdatum=$row->gebdat; - $person->gebort=$row->gebort; - $person->anmerkungen=$row->bemerkung; - $person->svnr=trim($row->svnr); - $person->ersatzkennzeichen=trim($row->ersatzkennzeichen); - $person->familienstand=$row->familienstand; - $person->anzahlkinder=$row->anzahlderkinder; - $person->staatsbuergerschaft=$row->staatsbuergerschaft; - $person->geschlecht=strtolower($row->geschlecht); - $person->ext_id=$row->person_pk; - $person->aktiv=true; - $person->updatevon='SYNC'; - $person->insertvon='SYNC'; - - - if($row->familienstand==1) - { - $person->familienstand='l'; - } - elseif($row->familienstand==2) - { - $person->familienstand='v'; - } - elseif($row->familienstand==3) - { - $person->familienstand='g'; - } - elseif($row->familienstand==4) - { - $person->familienstand='w'; - } - else - { - $person->familienstand=null; - } - if ($person->geschlecht=='') - { - $person->geschlecht='m'; - } - - $error=false; - - $qry="SELECT person_id FROM public.tbl_benutzer WHERE uid='$row->uid'"; - if($resultu = pg_query($conn, $qry)) - { - if(pg_num_rows($resultu)>0 && $row->uid!='') //wenn dieser eintrag schon vorhanden ist - { - if($rowu=pg_fetch_object($resultu)) - { - //update - $person->person_id=$rowu->person_id; - $person->new=false; - } - else - { - $error=true; - $error_log.="benutzer von $row->uid konnte nicht ermittelt werden\n"; - } - } - else - { - $qry="SELECT person_fas, person_portal FROM sync.tbl_syncperson WHERE person_fas='$row->person_pk'"; - if($result1 = pg_query($conn, $qry)) - { - if(pg_num_rows($result1)>0) //wenn dieser eintrag schon vorhanden ist - { - if($row1=pg_fetch_object($result1)) - { - //update - $person->person_id=$row1->person_portal; - $person->new=false; - } - else - { - $error=true; - $error_log.="person von $row->person_pk konnte nicht ermittelt werden\n"; - } - } - else - { - //vergleich svnr und ersatzkennzeichen - $qry="SELECT * FROM public.tbl_person - WHERE ('$row->svnr' is not null AND '$row->svnr' <> '' AND svnr = '$row->svnr') - OR ('$row->ersatzkennzeichen' is not null AND '$row->ersatzkennzeichen' <> '' AND ersatzkennzeichen = '$row->ersatzkennzeichen')"; - if($resultz = pg_query($conn, $qry)) - { - if(pg_num_rows($resultz)>0) //wenn dieser eintrag schon vorhanden ist - { - if($rowz=pg_fetch_object($resultz)) - { - $person->new=false; - $person->person_id=$rowz->person_id; - - } - else - { - $error=true; - $error_log.="person mit svnr: $row->svnr bzw. ersatzkennzeichen: $row->ersatzkennzeichen konnte nicht ermittelt werden (".pg_num_rows($resultz).")\n"; - } - } - else - { - //insert - $person->new=true; - //echo nl2br("insert von ".$row->uid.", ".$row->familienname."\n"); - } - } - } - } - } - - if(!$error) - { - if(!$person->save()) - { - $error_log.=$person->errormsg."\n"; - $anzahl_fehler++; - } - else - { - //überprüfen, ob eintrag schon vorhanden - $qryz="SELECT person_fas FROM sync.tbl_syncperson WHERE person_fas='$row->person_pk' AND person_portal='$person->person_id'"; - if($resultz = pg_query($conn, $qryz)) - { - if(pg_num_rows($resultz)==0) //wenn dieser eintrag noch nicht vorhanden ist - { - $qry='INSERT INTO sync.tbl_syncperson (person_fas, person_portal)'. - 'VALUES ('.$row->person_pk.', '.$person->person_id.');'; - pg_query($conn, $qry); - } - } - if ($person->new) - { - $anzahl_eingefuegt++; - } - else - { - $anzahl_update++; - } - //echo "- "; - //ob_flush(); - //flush(); - } - } - else - { - $anzahl_fehler++; - } - } - } - echo nl2br("\nabgeschlossen\n\n"); -} -else - $error_log .= '\nPersonendatensaetze konnten nicht geladen werden\n'; - - - -//echo nl2br($text); -echo nl2br("\nLog:\n".$error_log); -echo nl2br("\n\nGesamt FAS: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Geändert: $anzahl_update / Fehler: $anzahl_fehler"); -$error_log="Person Sync\n-------------\n\nGesamt FAS: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Geändert: $anzahl_update / Fehler: $anzahl_fehler\n\n".$error_log; -mail($adress, 'SYNC Personen', $error_log,"From: vilesci@technikum-wien.at"); -*/ ?> \ No newline at end of file