This commit is contained in:
Rudolf Hangl
2007-11-20 13:17:22 +00:00
parent c681e9d6d1
commit 7631a6afef
+39 -204
View File
@@ -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='';
?>
<html>
<head>
<title>Synchro - FAS -> Vilesci - Person</title>
<title>Synchro - StPoelten -> Vilesci - Person</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
@@ -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.'<BR>'.pg_last_error($conn).' </strong><BR>';
$error_log.= $sql."\n<strong>".pg_last_error($conn)." </strong>\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");
*/
?>
</body>
</html>