diff --git a/admin/sync/fas/sync_fas_portal_adresse.php b/admin/sync/fas/sync_fas_portal_adresse.php
index f10bdc15f..ef07c2155 100644
--- a/admin/sync/fas/sync_fas_portal_adresse.php
+++ b/admin/sync/fas/sync_fas_portal_adresse.php
@@ -51,9 +51,17 @@ function validate($row)
/*************************
* FAS-PORTAL - Synchronisation
*/
+?>
+
+
+Synchro - Vilesci -> Portal - Adresse
+
+
+
+insertvon ="SYNC";
$adresse->ext_id =$row->adresse_pk;
+ //echo nl2br ($adresse->ext_id."\n");
//person_id herausfinden
- $qry1="SELECT person_portal FROM public.tbl_syncperson WHERE person_fas=".$row->adresse_pk.";";
+ $qry1="SELECT person_portal FROM public.tbl_syncperson WHERE person_fas=".$row->person_fk.";";
if($result1 = pg_query($conn, $qry1))
{
if(pg_num_rows($result1)>0) //eintrag gefunden
@@ -88,49 +97,67 @@ if($result = pg_query($conn_fas, $qry))
if($row1=pg_fetch_object($result1))
{
$adresse->person_id=$row1->person_portal;
- $adresse->new=true;
-
- //firma eintragen
- if ($row->typ==1)
+
+ $qry2="SELECT adresse_id, ext_id FROM tbl_adresse WHERE ext_id=".$row->adresse_pk.";";
+ if($result2 = pg_query($conn, $qry2))
{
- $anzahl_quelle2++;
- $firma=new firma($conn);
- $firma->name=$row->bezeichnung;
- $firma->anmerkung=null;
- $firma->ext_id=$row->adresse_pk;
- $qry2="SELECT firma_id, ext_id FROM tbl_firma WHERE ext_id=".$row->adresse_pk.";";
- if($result2 = pg_query($conn, $qry2))
+ if(pg_num_rows($result2)>0) //eintrag gefunden
{
- if(pg_num_rows($result2)>0) //eintrag gefunden
- {
- if($row2=pg_fetch_object($result2))
- {
- $firma->new=false;
- $firma->firma_id=$row2->firma_id;
- }
- else
- {
- $error=true;
- $error_log.="firma mit adresse_pk: $row->adresse_pk konnte nicht ermittelt werden!\n";
- }
+ if($row2=pg_fetch_object($result2))
+ {
+ // update adresse, wenn datensatz bereits vorhanden
+ $adresse->new=false;
+ $adresse->adresse_id=$row2->adresse_id;
}
- else
- {
- $firma->new=true;
- }
- }
- if(!$error)
+ }
+ else
{
- if(!$firma->save())
+ // insert, wenn datensatz noch nicht vorhanden
+ $adresse->new=true;
+
+ //firma eintragen, wenn firmenadresse
+ if ($row->typ==1)
{
- $error_log.=$firma->errormsg."\n";
- $anzahl_fehler2++;
- }
- else
- {
- $anzahl_eingefuegt2++;
- }
- $adresse->firma_id=$firma->firma_id;
+ $anzahl_quelle2++;
+ $firma=new firma($conn);
+ $firma->name=$row->bezeichnung;
+ $firma->anmerkung=null;
+ $firma->ext_id=$row->adresse_pk;
+ $qry3="SELECT firma_id, ext_id FROM tbl_firma WHERE ext_id=".$row->adresse_pk.";";
+ if($result3 = pg_query($conn, $qry3))
+ {
+ if(pg_num_rows($result3)>0) //eintrag gefunden
+ {
+ if($row3=pg_fetch_object($result3))
+ {
+ $firma->new=false;
+ $firma->firma_id=$row3->firma_id;
+ }
+ else
+ {
+ $error=true;
+ $error_log.="firma mit adresse_pk: $row->adresse_pk konnte nicht ermittelt werden!\n";
+ }
+ }
+ else
+ {
+ $firma->new=true;
+ }
+ }
+ if(!$error)
+ {
+ if(!$firma->save())
+ {
+ $error_log.=$firma->errormsg."\n";
+ $anzahl_fehler2++;
+ }
+ else
+ {
+ $anzahl_eingefuegt2++;
+ }
+ $adresse->firma_id=$firma->firma_id;
+ }
+ }
}
}
}
@@ -144,7 +171,7 @@ if($result = pg_query($conn_fas, $qry))
else
{
$error=true;
- $error_log.="adresse mit adresse_pk: $row->adresse_pk konnte nicht gefunden werden! (".pg_num_rows($result1).")\n";
+ $error_log.="adresse mit adresse_pk: $row->adresse_pk ($row->person_fk) konnte in tbl_syncperson nicht gefunden werden! (".pg_num_rows($result1).")\n";
$anzahl_fehler++;
}
}
@@ -159,20 +186,15 @@ if($result = pg_query($conn_fas, $qry))
else
{
$anzahl_eingefuegt++;
+ echo "- ";
+ ob_flush();
+ flush();
}
}
- }
+ flush();
+ }
}
-?>
-
-
-
-Synchro - Vilesci -> Portal - Adresse
-
-
-
-,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+//*
+//* Synchronisiert EMaildatensaetze von FAS DB in PORTAL DB
+//*
+//*
+
+include('../../../vilesci/config.inc.php');
+include('../../../include/kontakt.class.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_fehler=0;
+
+function validate($row)
+{
+}
+?>
+
+
+
+Synchro - FAS -> Portal - EMail
+
+
+
+firma_id ='';
+ $kontakt->kontakttyp ='email';
+ $kontakt->anmerkung =$row->name;
+ $kontakt->kontakt =$row->email;
+ $kontakt->zustellung =$row->zustelladresse=='J'?true:false;
+ $kontakt->updatevon ="SYNC";
+ $kontakt->insertvon ="SYNC";
+ $kontakt->ext_id =$row->email_pk;
+
+ //Person_id feststellen
+ $qry1="SELECT person_portal FROM public.tbl_syncperson WHERE person_fas=".$row->person_fk.";";
+ if($result1 = pg_query($conn, $qry1))
+ {
+ if(pg_num_rows($result1)>0) //eintrag gefunden
+ {
+ if($row1=pg_fetch_object($result1))
+ {
+ $qry2="SELECT kontakt_id, ext_id FROM tbl_kontakt WHERE ext_id=".$row->email_pk." AND kontakttyp='email';";
+ if($result2 = pg_query($conn, $qry2))
+ {
+ if(pg_num_rows($result2)>0) //eintrag gefunden
+ {
+ if($row2=pg_fetch_object($result2))
+ {
+ // update , wenn datensatz bereits vorhanden
+ $kontakt->person_id=$row1->person_portal;
+ $kontakt->kontakt_id=$row2->kontakt_id;
+ $kontakt->new=false;
+ }
+ }
+ else
+ {
+ // insert, wenn datensatz noch nicht vorhanden
+ $kontakt->new=true;
+ $kontakt->person_id=$row1->person_portal;
+ }
+ }
+ }
+ }
+ else
+ {
+ $error=true;
+ $error_log.="person mit person_fk: $row->person_fk konnte in tbl_syncperson nicht gefunden werden! (".pg_num_rows($result1).")\n";
+ $anzahl_fehler++;
+ }
+ }
+ If (!$error)
+ {
+ if(!$kontakt->save())
+ {
+ $error_log.=$kontakt->errormsg."\n";
+ $anzahl_fehler++;
+ }
+ else
+ {
+ $anzahl_eingefuegt++;
+ }
+ }
+ }
+}
+
+
+
+//echo nl2br($text);
+echo nl2br($error_log);
+echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler");
+
+?>
+
+
\ No newline at end of file
diff --git a/admin/sync/fas/sync_fas_portal_person.php b/admin/sync/fas/sync_fas_portal_person.php
index f6cb730ae..c3655ae8c 100644
--- a/admin/sync/fas/sync_fas_portal_person.php
+++ b/admin/sync/fas/sync_fas_portal_person.php
@@ -32,6 +32,8 @@ $conn=pg_connect(CONN_STRING) or die("Connection zur Portal Datenbank fehlgeschl
//$conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die("Connection zur Vilesci Datenbank fehlgeschlagen");
$conn_fas=pg_connect(CONN_STRING_FAS) or die("Connection zur FAS Datenbank fehlgeschlagen");
+//set_time_limit(60);
+
$adress='ruhan@technikum-wien.at';
//$adress='fas_sync@technikum-wien.at';
@@ -41,6 +43,7 @@ $anzahl_quelle=0;
$anzahl_eingefuegt=0;
$anzahl_fehler=0;
+
/*************************
* FAS-PORTAL - Synchronisation
*/
@@ -53,7 +56,6 @@ $anzahl_fehler=0;
person_pk' AND person_portal='$person->person_id'";
- if($resultz = pg_query($conn, $qry))
+ $qryz="SELECT person_fas FROM 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
{
@@ -197,6 +199,9 @@ if($result = pg_query($conn_fas, $qry))
}
}
$anzahl_eingefuegt++;
+ echo "- ";
+ ob_flush();
+ flush();
}
}
else
diff --git a/admin/sync/fas/sync_fas_portal_telefon.php b/admin/sync/fas/sync_fas_portal_telefon.php
new file mode 100644
index 000000000..52e24eafb
--- /dev/null
+++ b/admin/sync/fas/sync_fas_portal_telefon.php
@@ -0,0 +1,146 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+
+//*
+//* Synchronisiert Telefondatensaetze von FAS DB in PORTAL DB
+//*
+//*
+
+include('../../../vilesci/config.inc.php');
+include('../../../include/kontakt.class.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_fehler=0;
+
+function validate($row)
+{
+}
+?>
+
+
+
+Synchro - FAS -> Portal - Telefon
+
+
+
+firma_id ='';
+ $kontakt->kontakttyp ='telefon';
+ $kontakt->anmerkung =$row->name;
+ $kontakt->kontakt =$row->nummer;
+ $kontakt->zustellung =false;
+ $kontakt->updatevon ="SYNC";
+ $kontakt->insertvon ="SYNC";
+ $kontakt->ext_id =$row->telefonnummer_pk;
+
+ //Person_id feststellen
+ if($row->nummer!='')
+ {
+ $qry1="SELECT person_portal FROM public.tbl_syncperson WHERE person_fas=".$row->person_fk.";";
+ if($result1 = pg_query($conn, $qry1))
+ {
+ if(pg_num_rows($result1)>0) //eintrag gefunden
+ {
+ if($row1=pg_fetch_object($result1))
+ {
+ $qry2="SELECT kontakt_id, ext_id FROM tbl_kontakt WHERE ext_id=".$row->telefonnummer_pk." AND kontakttyp='telefon';";
+ if($result2 = pg_query($conn, $qry2))
+ {
+ if(pg_num_rows($result2)>0) //eintrag gefunden
+ {
+ if($row2=pg_fetch_object($result2))
+ {
+ // update , wenn datensatz bereits vorhanden
+ $kontakt->person_id=$row1->person_portal;
+ $kontakt->kontakt_id=$row2->kontakt_id;
+ $kontakt->new=false;
+ }
+ }
+ else
+ {
+ // insert, wenn datensatz noch nicht vorhanden
+ $kontakt->new=true;
+ $kontakt->person_id=$row1->person_portal;
+ }
+ }
+ }
+ }
+ else
+ {
+ $error=true;
+ $error_log.="person mit person_fk: $row->person_fk konnte in tbl_syncperson nicht gefunden werden! (".pg_num_rows($result1).")\n";
+ $anzahl_fehler++;
+ }
+ }
+ If (!$error)
+ {
+ if(!$kontakt->save())
+ {
+ $error_log.=$kontakt->errormsg."\n";
+ $anzahl_fehler++;
+ }
+ else
+ {
+ $anzahl_eingefuegt++;
+ }
+ }
+ }
+ }
+}
+
+
+
+//echo nl2br($text);
+echo nl2br($error_log);
+echo nl2br("\nGesamt: $anzahl_quelle / Eingefügt: $anzahl_eingefuegt / Fehler: $anzahl_fehler");
+
+?>
+
+
\ No newline at end of file
diff --git a/include/adresse.class.php b/include/adresse.class.php
index 7a6594e93..48abe1247 100644
--- a/include/adresse.class.php
+++ b/include/adresse.class.php
@@ -30,6 +30,7 @@ class adresse
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var adresse Objekt
+ var $done=false; //@ boolean
//Tabellenspalten
var $adresse_id; // @var integer
@@ -316,7 +317,8 @@ class adresse
($this->zustelladresse?'true':'false').', '.
($this->firma_id!=null?$this->addslashes($this->firma_id):'null').', now(), '.
$this->addslashes($this->updatevon).', '.
- $this->addslashes($this->ext_id).');';
+ $this->addslashes($this->ext_id).');';
+ $this->done=true;
}
else
{
@@ -325,49 +327,80 @@ class adresse
//Pruefen ob adresse_id eine gueltige Zahl ist
if(!is_numeric($this->adresse_id))
{
- $this->errormsg = 'adresse_id muss eine gueltige Zahl sein';
+ $this->errormsg = 'adresse_id muss eine gueltige Zahl sein: '.$this->adresse_id;
return false;
}
-
- $qry='UPDATE tbl_adresse SET'.
- ' person_fk='.$this->addslashes($this->person_id).', '.
- ' name='.$this->addslashes($this->name).', '.
- ' strasse='.$this->addslashes($this->strasse).', '.
- ' plz='.$this->addslashes($this->plz).', '.
- ' typ='.$this->addslashes($this->typ).', '.
- ' ort='.$this->addslashes($this->ort).', '.
- ' nation='.$this->addslashes($this->nation).', '.
- ' gemeinde='.$this->addslashes($this->gemeinde).', '.
- ' heimatadresse='.($this->heimatadresse?'true':'false').', '.
- ' zustelladresse='.($this->zustelladresse?'true':'false').', '.
- 'WHERE adresse_pk='.$this->adresse_id.';';
+ $qryz="SELECT * FROM tbl_adresse WHERE adresse_id='$this->adresse_id';";
+ if($resultz = pg_query($this->conn, $qryz))
+ {
+ while($rowz = pg_fetch_object($resultz))
+ {
+ $update=false;
+ if($rowz->person_id!=$this->person_id) $update=true;
+ if($rowz->name!=$this->name) $update=true;
+ if($rowz->strasse!=$this->strasse) $update=true;
+ if($rowz->plz!=$this->plz) $update=true;
+ if($rowz->typ!=$this->typ) $update=true;
+ if($rowz->ort!=$this->ort) $update=true;
+ if($rowz->nation!=$this->nation) $update=true;
+ if($rowz->gemeinde!=$this->gemeinde) $update=true;
+ if($rowz->heimatadresse!=$this->heimatadresse?'true':'false') $update=true;
+ if($rowz->zustelladresse!=$this->zustelladresse?'true':'false') $update=true;
+
+ if($update)
+ {
+ $qry='UPDATE tbl_adresse SET'.
+ ' person_id='.$this->addslashes($this->person_id).', '.
+ ' name='.$this->addslashes($this->name).', '.
+ ' strasse='.$this->addslashes($this->strasse).', '.
+ ' plz='.$this->addslashes($this->plz).', '.
+ ' typ='.$this->addslashes($this->typ).', '.
+ ' ort='.$this->addslashes($this->ort).', '.
+ ' nation='.$this->addslashes($this->nation).', '.
+ ' gemeinde='.$this->addslashes($this->gemeinde).', '.
+ ' updateamum= now(), '.
+ ' updatevon='.$this->addslashes($this->updatevon).', '.
+ ' heimatadresse='.($this->heimatadresse?'true':'false').', '.
+ ' zustelladresse='.($this->zustelladresse?'true':'false').' '.
+ 'WHERE adresse_id='.$this->adresse_id.';';
+ $this->done=true;
+ }
+ }
+ }
}
//echo $qry;
- if(pg_query($this->conn,$qry))
+ if ($this->done)
{
- //Log schreiben
- /*$sql = $qry;
- $qry = "SELECT nextval('log_seq') as id;";
- if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
+ if(pg_query($this->conn,$qry))
{
- $this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
- return false;
+ //Log schreiben
+ /*$sql = $qry;
+ $qry = "SELECT nextval('log_seq') as id;";
+ if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
+ {
+ $this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
+ return false;
+ }
+
+ $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
+ if(pg_query($this->conn, $qry))
+ return true;
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
+ return false;
+ } */
+ return true;
}
-
- $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
- if(pg_query($this->conn, $qry))
- return true;
else
{
- $this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
+ $this->errormsg = 'Fehler beim Speichern der Daten';
return false;
- } */
- return true;
+ }
}
else
{
- $this->errormsg = 'Fehler beim Speichern der Daten';
- return false;
+ return true;
}
}
diff --git a/include/firma.class.php b/include/firma.class.php
index 518a6b37f..0c3e67dc1 100644
--- a/include/firma.class.php
+++ b/include/firma.class.php
@@ -158,7 +158,7 @@ class firma
'anmerkung='.$this->addslashes($this->anmerkung).', '.
'updateamum= now(), '.
'updatevon='.$this->addslashes($this->updatevon).' '.
- 'WHERE ext_id='.$this->addslashes($this->ext_id).';';
+ 'WHERE firma_id='.$this->addslashes($this->firma_id).';';
}
//echo $qry;
if(pg_query($this->conn,$qry))
diff --git a/include/kontakt.class.php b/include/kontakt.class.php
new file mode 100644
index 000000000..397ee4360
--- /dev/null
+++ b/include/kontakt.class.php
@@ -0,0 +1,237 @@
+,
+ * Andreas Oesterreicher and
+ * Rudolf Hangl .
+ */
+/**
+ * Klasse kontakt
+ * @create 20-12-2006
+ */
+
+class kontakt
+{
+ var $conn; // @var resource DB-Handle
+ var $new; // @var boolean
+ var $errormsg; // @var string
+ var $result = array(); // @var adresse Objekt
+ var $done=false; // @var boolean
+
+ //Tabellenspalten
+ Var $kontakt_id; // @var integer
+ var $person_id; // @var integer
+ var $firma_id; // @var integer
+ var $kontakttyp; // @var string
+ var $anmerkung; // @var string
+ var $kontakt; // @var string
+ var $zustellung; // @var boolean
+ var $ext_id; // @var integer
+ var $insertamum; // @var timestamp
+ var $insertvon; // @var bigint
+ var $updateamum; // @var timestamp
+ var $updatevon; // @var bigint
+
+ /**
+ * Konstruktor
+ * @param $conn Connection
+ * $kontakt_id ID der Adresse die geladen werden soll (Default=null)
+ */
+ function kontakt($conn,$kontakt_id=null, $unicode=false)
+ {
+ $this->conn = $conn;
+ if ($unicode)
+ {
+ $qry = "SET CLIENT_ENCODING TO 'UNICODE';";
+ }
+ else
+ {
+ $qry="SET CLIENT_ENCODING TO 'LATIN9';";
+ }
+ if(!pg_query($conn,$qry))
+ {
+ $this->errormsg = "Encoding konnte nicht gesetzt werden";
+ return false;
+ }
+ //if($firma_id != null) $this->load($firma_id);
+ }
+
+ /**
+ * Laedt die Funktion mit der ID $kontakt_id
+ * @param $kontakt_id ID der zu ladenden Email
+ * @return true wenn ok, false im Fehlerfall
+ */
+ function load($kontakt_id)
+ {
+ //noch nicht implementiert
+ }
+
+ /**
+ * Prueft die Variablen auf gueltigkeit
+ * @return true wenn ok, false im Fehlerfall
+ */
+ function checkvars()
+ {
+
+ //Gesamtlaenge pruefen
+ //$this->errormsg='Eine der Gesamtlaengen wurde ueberschritten';
+ if(strlen($this->kontakttyp)>32)
+ {
+ $this->errormsg = 'kontakttyp darf nicht länger als 32 Zeichen sein - firma_id: '.$row->email_id;
+ return false;
+ }
+ if(strlen($this->anmerkung)>64)
+ {
+ $this->errormsg = 'anmerkung darf nicht länger als 64 Zeichen sein - firma_id: '.$row->email_id;
+ return false;
+ }
+ if(strlen($this->kontakt)>128)
+ {
+ $this->errormsg = 'kontakt darf nicht länger als 128 Zeichen sein - firma_id: '.$row->email_id;
+ return false;
+ }
+ $this->errormsg = '';
+ return true;
+ }
+ // ************************************************
+ // * wenn $var '' ist wird "null" zurueckgegeben
+ // * wenn $var !='' ist werden datenbankkritische
+ // * Zeichen mit backslash versehen und das Ergebnis
+ // * unter Hochkomma gesetzt.
+ // ************************************************
+ function addslashes($var)
+ {
+ return ($var!=''?"'".addslashes($var)."'":'null');
+ }
+ /**
+ * Speichert den aktuellen Datensatz in die Datenbank
+ * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
+ * andernfalls wird der Datensatz mit der ID in $kontakt_id aktualisiert
+ * @return true wenn ok, false im Fehlerfall
+ */
+ function save()
+ {
+ $this->done=false;
+ //Variablen pruefen
+ if(!$this->checkvars())
+ return false;
+
+ if($this->new)
+ {
+ //Neuen Datensatz einfuegen
+
+ $qry='INSERT INTO tbl_kontakt (person_id, firma_id, kontakttyp, anmerkung, kontakt, zustellung, ext_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
+ $this->addslashes($this->person_id).', '.
+ $this->addslashes($this->firma_id).', '.
+ $this->addslashes($this->kontakttyp).', '.
+ $this->addslashes($this->anmerkung).', '.
+ $this->addslashes($this->kontakt).', '.
+ ($this->zustellung?'true':'false').', '.
+ $this->addslashes($this->ext_id).', now(), '.
+ $this->addslashes($this->insertvon).', now(), '.
+ $this->addslashes($this->updatevon).');';
+ $this->done=true;
+ }
+ else
+ {
+ //Updaten des bestehenden Datensatzes
+
+ //Pruefen ob kontakt_id eine gueltige Zahl ist
+ if(!is_numeric($this->kontakt_id))
+ {
+ $this->errormsg = 'kontakt_id muss eine gueltige Zahl sein: '.$this->kontakt_id.' ('.$this->person_id.')';
+ return false;
+ }
+ $qry="SELECT * FROM tbl_kontakt WHERE kontakt_id='$this->kontakt_id';";
+ if($resultz = pg_query($this->conn, $qry))
+ {
+ while($rowz = pg_fetch_object($resultz))
+ {
+ $update=false;
+ if($rowz->person_id!=$this->person_id) $update=true;
+ if($rowz->firma_id!=$this->firma_id) $update=true;
+ if($rowz->kontakttyp!=$this->kontakttyp) $update=true;
+ if($rowz->anmerkung!=$this->anmerkung) $update=true;
+ if($rowz->kontakt!=$this->kontakt) $update=true;
+ if($rowz->zustellung!=$this->zustellung) $update=true;
+ if($rowz->ext_id!=$this->ext_id) $update=true;
+
+ if($update)
+ {
+ $qry='UPDATE tbl_kontakt SET '.
+ 'person_id='.$this->addslashes($this->person_id).', '.
+ 'firma_id='.$this->addslashes($this->firma_id).', '.
+ 'kontakttyp='.$this->addslashes($this->kontakttyp).', '.
+ 'anmerkung='.$this->addslashes($this->anmerkung).', '.
+ 'kontakt='.$this->addslashes($this->kontakt).', '.
+ 'zustellung='.($this->zustellung?'true':'false').', '.
+ 'ext_id='.$this->addslashes($this->ext_id).', '.
+ 'updateamum= now(), '.
+ 'updatevon='.$this->addslashes($this->updatevon).' '.
+ 'WHERE kontakt_id='.$this->addslashes($this->kontakt_id).';';
+ $this->done=true;
+ }
+ }
+ }
+ }
+ //echo $qry;
+ if ($this->done)
+ {
+ if(pg_query($this->conn, $qry))
+ {
+ //Log schreiben
+ /*$sql = $qry;
+ $qry = "SELECT nextval('log_seq') as id;";
+ if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
+ {
+ $this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
+ return false;
+ }
+
+ $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
+ if(pg_query($this->conn, $qry))
+ return true;
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
+ return false;
+ } */
+ return true;
+ }
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern der Daten';
+ return false;
+ }
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ /**
+ * Loescht den Datenensatz mit der ID die uebergeben wird
+ * @param $firma_id ID die geloescht werden soll
+ * @return true wenn ok, false im Fehlerfall
+ */
+ function delete($firma_id)
+ {
+ //noch nicht implementiert!
+ }
+}
+?>
\ No newline at end of file
diff --git a/include/person.class.php b/include/person.class.php
index 490338da4..e04f62498 100644
--- a/include/person.class.php
+++ b/include/person.class.php
@@ -26,6 +26,7 @@ class person
var $errormsg; // string
var $new; // boolean
var $personen = array(); // person Objekt
+ var $done=false; // boolean
//Tabellenspalten
var $person_id; // integer
@@ -339,6 +340,7 @@ class person
$this->addslashes($this->geburtsnation).','.
$this->addslashes($this->staatsbuergerschaft).','.
$this->addslashes($this->ext_id).');';
+ $this->done=true;
}
else
{
@@ -350,8 +352,8 @@ class person
}
//update nur wenn änderungen gemacht
- $qry="SELECT * FROM tbl_person";
- if($result = pg_query($conn, $qry))
+ $qry="SELECT * FROM tbl_person WHERE person_id='$this->person_id';";
+ if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
@@ -376,7 +378,7 @@ class person
if($row->aktiv!=$this->aktiv) $update=true;
if($row->geburtsnation!=$this->geburtsnation) $update=true;
if($row->geschlecht!=$this->geschlecht) $update=true;
- if($row->staatsbuergerschaft!=$this->staatsbuergerschaft) $update=true;
+ if($row->staatsbuergerschaft!=$this->staatsbuergerschaft) $update=true;
if($update)
@@ -406,34 +408,41 @@ class person
' geburtsnation='.$this->addslashes($this->geburtsnation).','.
' staatsbuergerschaft='.$this->addslashes($this->staatsbuergerschaft).','.
' ext_id='.$this->addslashes($this->ext_id).
- " WHERE person_id='$this->person_id'";
+ ' WHERE person_id='.$this->person_id.';';
+ $this->done=true;
}
}
}
}
-
- if(pg_query($this->conn,$qry))
+ if ($this->done)
{
- if($this->new)
+ if(pg_query($this->conn,$qry))
{
- $qry = "SELECT currval('tbl_person_person_id_seq') AS id;";
- if($row=pg_fetch_object(pg_query($this->conn,$qry)))
- $this->person_id=$row->id;
- else
- {
- $this->errormsg = 'Sequence konnte nicht ausgelesen werden';
- return false;
+ if($this->new)
+ {
+ $qry = "SELECT currval('tbl_person_person_id_seq') AS id;";
+ if($row=pg_fetch_object(pg_query($this->conn,$qry)))
+ $this->person_id=$row->id;
+ else
+ {
+ $this->errormsg = 'Sequence konnte nicht ausgelesen werden';
+ return false;
+ }
}
+ //Log schreiben
+ return true;
+
}
- //Log schreiben
+ else
+ {
+ $this->errormsg = 'Fehler beim Speichern des Person-Datensatzes:'.$this->nachname.' '.$qry;
+ return false;
+ }
+ }
+ else
+ {
return true;
-
- }
- else
- {
- $this->errormsg = 'Fehler beim Speichern des Person-Datensatzes:'.$this->nachname.' '.$qry;
- return false;
- }
+ }
}
}
?>
\ No newline at end of file