From 8f195b424879b6aefa55e55e9b50b3666e76808b Mon Sep 17 00:00:00 2001 From: Rudolf Hangl Date: Thu, 13 Dec 2007 10:29:08 +0000 Subject: [PATCH] --- .../stp/sync_stp_vilesci_adresse_presync.php | 2 +- .../stp/sync_stp_vilesci_email_presync.php | 103 ++++++ system/sync/stp/sync_stp_vilesci_kontakte.php | 312 ++++++++++++++++++ .../stp/sync_stp_vilesci_telefon_presync.php | 107 ++++++ 4 files changed, 523 insertions(+), 1 deletion(-) create mode 100644 system/sync/stp/sync_stp_vilesci_email_presync.php create mode 100644 system/sync/stp/sync_stp_vilesci_kontakte.php create mode 100644 system/sync/stp/sync_stp_vilesci_telefon_presync.php diff --git a/system/sync/stp/sync_stp_vilesci_adresse_presync.php b/system/sync/stp/sync_stp_vilesci_adresse_presync.php index 95f49aad3..035a0e39c 100644 --- a/system/sync/stp/sync_stp_vilesci_adresse_presync.php +++ b/system/sync/stp/sync_stp_vilesci_adresse_presync.php @@ -8,7 +8,7 @@ */ //* -//* Kopiert stgvertiefung Tabelle von FH-DB StPoelten +//* Kopiert adressen Tabelle von FH-DB StPoelten //* //* diff --git a/system/sync/stp/sync_stp_vilesci_email_presync.php b/system/sync/stp/sync_stp_vilesci_email_presync.php new file mode 100644 index 000000000..83bc9aeed --- /dev/null +++ b/system/sync/stp/sync_stp_vilesci_email_presync.php @@ -0,0 +1,103 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +//* +//* Kopiert telefon Tabelle von FH-DB StPoelten +//* +//* + +require_once('sync_config.inc.php'); + +$starttime=time(); +$conn=pg_connect(CONN_STRING) + or die("Connection zur FH-Complete Datenbank fehlgeschlagen"); +if (!$conn_ext=mssql_connect (STPDB_SERVER, STPDB_USER, STPDB_PASSWD)) + die('Fehler beim Verbindungsaufbau!'); +mssql_select_db(STPDB_DB, $conn_ext); + +/* +__EMail (int) +chBemerkung (char) +chAdresse (char) +_Person (int) +boFHWeb (bit) +boAutoEMail (bit) +*/ + +// Sync-Tabelle fuer email checken +if (!@pg_query($conn,'SELECT * FROM sync.stp_email LIMIT 1;')) +{ + $sql='CREATE TABLE sync.stp_email ( + __email integer, + _person integer, + chbemerkung varchar(64), + chadresse varchar(128), + boFHWeb varchar(1), + boAutoEmail varchar(1), + constraint "pk_tbl_sync_stp_email" primary key ("__email")); + Grant select on sync.stp_email to group "admin"; + Grant update on sync.stp_email to group "admin"; + Grant delete on sync.stp_email to group "admin"; + Grant insert on sync.stp_email to group "admin";'; + if (!@pg_query($conn,$sql)) + echo 'sync.stp_email: '.pg_last_error($conn).'
'; + else + echo 'sync.stp_email wurde angelegt!
'; +} + +/************************* + * FAS-PORTAL - Synchronisation + */ +?> + + +Synchro - FHDB -> FH-Complete - PreSyncEMail/title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> +<body> + +<?php +if (!@pg_query($conn,'DELETE FROM sync.stp_email;')) + echo '<strong>sync.stp_email: '.pg_last_error($conn).' </strong><BR>'; +else + echo 'sync.stp_email wurde geleert!<BR>'; + +echo 'Daten werden geholt!<BR>'; + +$i=0; + +$qry="SELECT __Email, _Person, chAdresse, chBemerkung, boFHWeb, boAutoEmail FROM email WHERE chAdresse!='' AND chAdresse IS NOT NULL;"; +if($result_ext = mssql_query($qry,$conn_ext)) +{ + while($row=mssql_fetch_object($result_ext)) + { + $qry="INSERT INTO sync.stp_email ( __email, _person, chadresse, chbemerkung, bofhweb, boautoemail) + VALUES ('$row->__Email','$row->_Person', ". + ($row->chAdresse==''?'NULL':"'".addslashes($row->chAdresse)."'").", ". + ($row->chBemerkung==''?'NULL':"'".$row->chBemerkung."'").", ". + "'$row->boFHWeb','$row->boAutoEmail');"; + if(!$result = pg_query($conn, $qry)) + { + echo $qry.'<BR>'.pg_last_error($conn).' </strong><BR>'; + } + + echo '.'; + flush(); + + $i++; + } +} +else + echo 'Fehler';//mssql_lasterror($conn_ext); + + echo '<BR>Time elapsed: '.(time()-$starttime).' seconds!'; + +?> +</body> +</html> \ No newline at end of file diff --git a/system/sync/stp/sync_stp_vilesci_kontakte.php b/system/sync/stp/sync_stp_vilesci_kontakte.php new file mode 100644 index 000000000..f269f3e00 --- /dev/null +++ b/system/sync/stp/sync_stp_vilesci_kontakte.php @@ -0,0 +1,312 @@ +<?php +/* Copyright (C) 2007 Technikum-Wien + * + * + * Authors: Christian Paminger <christian.paminger@technikum-wien.at>, + * Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and + * Rudolf Hangl <rudolf.hangl@technikum-wien.at>. + */ + +//* +//* Synchronisiert Kontaktdatensaetze von FAS DB in PORTAL DB +//* +//* +//* setzt voraus: sync von sync.stp_person +//* benoetigt: tbl_syncperson, sync.stp_telefon, sync.stp_email + +require_once('sync_config.inc.php'); + +$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;')) +{ + $sql='CREATE TABLE sync.tbl_syncperson + ( + person_id integer NOT NULL, + __Person integer NOT NULL + ); + Grant select on sync.tbl_syncperson to group "admin"; + Grant update on sync.tbl_syncperson to group "admin"; + Grant delete on sync.tbl_syncperson to group "admin"; + Grant insert on sync.tbl_syncperson to group "admin";'; + if (!@pg_query($conn,$sql)) + echo '<strong>sync.tbl_syncperson: '.pg_last_error($conn).' </strong><BR>'; + else + echo 'sync.tbl_syncperson wurde angelegt!<BR>'; +} + + + +$error_log=''; +$error_log1=''; +$error_log_ext=''; +$ausgabe=""; +$text = ''; +$error = ''; +$cont=''; +$anzahl_quelle=0; +$anzahl_eingefuegt=0; +$anzahl_update=0; +$anzahl_fehler=0; +$eingefuegt1=0; +$eingefuegt2=0; +$fehler=0; +$fehler1=0; +$fehler2=0; +$dublette1=0; +$dublette2=0; +$updates1=0; +$updates2=0; +$plausi=''; +$start=''; +$tel=''; +$person_id=''; + +/************************* + * StP-PORTAL - Synchronisation + */ +?> +<html> +<head> +<title>Synchro - StPoelten -> Vilesci - Kontakte + + + + +"; +if($result = pg_query($conn, $qry)) +{ + $anzahl_person_gesamt=pg_num_rows($result); + $error_log_ext.="Anzahl der Datensätze: ".$anzahl_person_gesamt."\n"; + echo nl2br($error_log_ext); + while($row=pg_fetch_object($result)) + { + $cont=''; + if(($row->chnummer=='' || $row->chnummer==NULL) && ($row->chemailadresse=='' || $row->chemailadresse==NULL)) + { + $error_log1.="\nDatensatz ohne Telefonnummer und E-Mail-Adresse!"; + $cont=true; + $error=true; + } + if($error) + { + $error_log.="\n*****\n".$row->_person." - ".trim($row->chtitel)." ".trim($row->chnachname).", ".trim($row->chvorname).": ".$error_log1; + $error_log1=''; + $error=false; + if($cont) + { + $fehler++; + $error_log.="\n-->nicht eingetragen"; + continue; + } + } + $tel=trim($row->chvorwahl).trim($row->chnummer).trim($row->chklappe); + //Person ermitteln + //pg_query($conn, "BEGIN"); + $qry_synk="SELECT * FROM sync.tbl_syncperson where __person=".$row->_person.";"; + if($result_synk=pg_query($conn, $qry_synk)) + { + if($row_synk=pg_fetch_object($result_synk)) + { + $person_id=$row_synk->person_id; + } + else + { + $error_log.="Person ".$row->_person." in tbl_syncperson nicht gefunden!"; + $fehler++; + continue; + } + } + + // telefon + if((trim($row->chvorwahl).trim($row->chnummer).trim($row->chklappe))!='' && $row->chnummer!=NULL) + { + $qry_dubel="SELECT * FROM public.tbl_kontakt + WHERE person_id='".$person_id."' + AND kontakttyp='telefon' AND kontakt='".trim($row->chvorwahl).trim($row->chnummer).trim($row->chklappe)."';"; + if($result_dubel = pg_query($conn, $qry_dubel)) + { + if (pg_num_rows($result_dubel)==0) + { + //Neue Telefonnummer anlegen + $sql="INSERT INTO public.tbl_kontakt + (person_id, kontakttyp, anmerkung, kontakt, zustellung, + insertamum,insertvon,updateamum,updatevon, ext_id) + VALUES + (".myaddslashes($person_id).", + 'telefon', ". + myaddslashes($row->chtelbemerkung).", ". + myaddslashes(trim($row->chvorwahl).trim($row->chnummer).trim($row->chklappe)).", + false, + now(), 'sync', now(), 'sync', NULL);"; + if(!$result_neu = pg_query($conn, $sql)) + { + $fehler1++; + $error_log.= $sql."\n".pg_last_error($conn)." \n"; + } + else + { + $ausgabe.="\n------------------------------------\nÜbertragen: ".$row->_person." - ".trim($row->chtitel)." ".trim($row->chnachname).", ".trim($row->chvorname); + $ausgabe.="\n---Telefon: ".trim($row->chvorwahl).trim($row->chnummer).trim($row->chklappe).", ".$row->chtelbemerkung; + $eingefuegt1++; + } + } + else + { + $dublette1++; + + } + } + else + { + $fehler1++; + $error_log.= "\n".$sql."\n".pg_last_error($conn)." \n"; + } + } + // email + if((trim($row->chemailadresse))!='' && $row->chemailadresse!=NULL) + { + $qry_dubel="SELECT * FROM public.tbl_kontakt + WHERE person_id='".$person_id."' + AND kontakttyp='email' AND kontakt='".trim($row->chemailadresse)."';"; + if($result_dubel = pg_query($conn, $qry_dubel)) + { + if (pg_num_rows($result_dubel)==0) + { + //Neue Telefonnummer anlegen + $sql="INSERT INTO public.tbl_kontakt + (person_id, kontakttyp, anmerkung, kontakt, zustellung, + insertamum,insertvon,updateamum,updatevon, ext_id) + VALUES + (".myaddslashes($person_id).", + 'email', ". + myaddslashes($row->chemailbemerkung).", ". + myaddslashes(trim($row->chemailadresse)).", + false, + now(), 'sync', now(), 'sync', NULL);"; + if(!$result_neu = pg_query($conn, $sql)) + { + $fehler2++; + $error_log.= $sql."\n".pg_last_error($conn)." \n"; + } + else + { + $ausgabe.="\n------------------------------------\nÜbertragen: ".$row->_person." - ".trim($row->chtitel)." ".trim($row->chnachname).", ".trim($row->chvorname); + $ausgabe.="\n---Email: ".trim($row->chemailadresse).", ".$row->chemailbemerkung; + $eingefuegt2++; + } + } + else + { + $dublette2++; + + } + } + else + { + $fehler2++; + $error_log.= "\n".$sql."\n".pg_last_error($conn)." \n"; + } + } + } +} +else +{ + $fehler++; + echo "
".$qry."
".pg_last_error($conn)."
"; +} + + +echo "
Telefon: "; +echo "
Eingefügt: ".$eingefuegt1; +echo "
Updates: ".$updates1; +echo "
Doppelt: ".$dublette1; +echo "
Fehler: ".$fehler1; +echo "

E-Mail: "; +echo "
Eingefügt: ".$eingefuegt2; +echo "
Updates: ".$updates2; +echo "
Doppelt: ".$dublette2; +echo "
Fehler: ".$fehler2; +echo "

allg. Fehler: ".$fehler; +//echo "

Summe: ".($eingefuegt+$updates+$dublette+$fehler); + +echo "

"; +if($error_log=='') +{ + echo "o.k.
"; +} +else +{ + //echo nl2br($log_updates); + echo nl2br($error_log); +} +echo nl2br($ausgabe); +/* +mail($adress, 'SYNC-Fehler StP-Adresse von '.$_SERVER['HTTP_HOST'], $error_log,"From: nsc@fhstp.ac.at"); + +mail($adress, 'SYNC StP-Adresse von '.$_SERVER['HTTP_HOST'], "Sync Person\n------------\n\n" +."Personen: Gesamt: ".$anzahl_person_gesamt." / Eingefügt: ".$eingefuegt." / Updates: ".$updates." / Fehler: ".$fehler +."\n\nBeginn: ".$start."\nEnde: ".date("d.m.Y H:i:s")."\n\n".$ausgabe.$log_updates, "From: nsc@fhstp.ac.at"); +*/ + +?> + + \ No newline at end of file diff --git a/system/sync/stp/sync_stp_vilesci_telefon_presync.php b/system/sync/stp/sync_stp_vilesci_telefon_presync.php new file mode 100644 index 000000000..9cd8f9af8 --- /dev/null +++ b/system/sync/stp/sync_stp_vilesci_telefon_presync.php @@ -0,0 +1,107 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +//* +//* Kopiert telefon Tabelle von FH-DB StPoelten +//* +//* + +require_once('sync_config.inc.php'); + +$starttime=time(); +$conn=pg_connect(CONN_STRING) + or die("Connection zur FH-Complete Datenbank fehlgeschlagen"); +if (!$conn_ext=mssql_connect (STPDB_SERVER, STPDB_USER, STPDB_PASSWD)) + die('Fehler beim Verbindungsaufbau!'); +mssql_select_db(STPDB_DB, $conn_ext); + +/* +__Telefon (int) +chBemerkung (char) +chVorwahl (char) +chNummer (char) +chKlappe (char) +_Person (int) +boStandard (bit) +*/ + +// Sync-Tabelle fuer telefon checken +if (!@pg_query($conn,'SELECT * FROM sync.stp_telefon LIMIT 1;')) +{ + $sql='CREATE TABLE sync.stp_telefon ( + __telefon integer, + _person integer, + chbemerkung varchar(64), + chvorwahl varchar(16), + chnummer varchar(32), + chklappe varchar(16), + bostandard boolean, + constraint "pk_tbl_sync_stp_telefon" primary key ("__telefon")); + Grant select on sync.stp_telefon to group "admin"; + Grant update on sync.stp_telefon to group "admin"; + Grant delete on sync.stp_telefon to group "admin"; + Grant insert on sync.stp_telefon to group "admin";'; + if (!@pg_query($conn,$sql)) + echo 'sync.stp_telefon: '.pg_last_error($conn).'
'; + else + echo 'sync.stp_telefon wurde angelegt!
'; +} + +/************************* + * FAS-PORTAL - Synchronisation + */ +?> + + +Synchro - FHDB -> FH-Complete - PreSyncTelefon + + + + +sync.stp_telefon: '.pg_last_error($conn).'
'; +else + echo 'sync.stp_telefon wurde geleert!
'; + +echo 'Daten werden geholt!
'; + +$i=0; + +$qry="SELECT __Telefon, _Person, chVorwahl, chNummer, chKlappe, chBemerkung, boStandard FROM telefon;"; +if($result_ext = mssql_query($qry,$conn_ext)) +{ + while($row=mssql_fetch_object($result_ext)) + { + $qry="INSERT INTO sync.stp_telefon (__telefon, _person, chvorwahl, chnummer, chklappe, chbemerkung, bostandard) + VALUES ('$row->__Telefon','$row->_Person', ". + ($row->chVorwahl==''?'NULL':"'".addslashes($row->chVorwahl)."'").", ". + ($row->chNummer==''?'NULL':"'".$row->chNummer."'").", ". + ($row->chKlappe==''?'NULL':"'".$row->chKlappe."'").", ". + ($row->chBemerkung==''?'NULL':"'".$row->chBemerkung."'").", ". + "'$row->boStandard');"; + if(!$result = pg_query($conn, $qry)) + { + echo $qry.'
'.pg_last_error($conn).'
'; + } + + echo '.'; + flush(); + + $i++; + } +} +else + echo 'Fehler';//mssql_lasterror($conn_ext); + + echo '
Time elapsed: '.(time()-$starttime).' seconds!'; + +?> + + \ No newline at end of file