From 6545d75270548e99b2b6a9329f93eba0f1067996 Mon Sep 17 00:00:00 2001 From: Karl Burkhart Date: Fri, 1 Oct 2010 08:29:23 +0000 Subject: [PATCH] updated sync_konto --- system/sync/sync_konto.php | 132 ++++++++++++++++++++++++++++++++++--- 1 file changed, 123 insertions(+), 9 deletions(-) diff --git a/system/sync/sync_konto.php b/system/sync/sync_konto.php index fdd721908..ae73f6823 100644 --- a/system/sync/sync_konto.php +++ b/system/sync/sync_konto.php @@ -20,16 +20,20 @@ * Karl Burkhart . */ -require_once('config.inc.php'); require_once('../../config/vilesci.config.inc.php'); require_once('../../include/basis_db.class.php'); require_once('../../include/mail.class.php'); +require_once('../../include/datum.class.php'); $errormsg = ''; +$ausgabe = ''; +$updated_lines = ''; $error_count=0; $insert_count=0; $update_count=0; +$interval =''; +$date = new datum(); $db = new basis_db(); //Datenbankverbindung zur WaWi Datenbank herstellen @@ -43,12 +47,22 @@ if ($conn_wawi = pg_pconnect(CONN_STRING_WAWI)) } //Alle Kontoeintraege aus der WaWi Datenbank holen - if($result = pg_query($conn_wawi, 'SELECT * FROM public.tbl_konto;')) + $qry = 'SELECT + *, + cbenutzer.username as cusername, + lbenutzer.username as lusername, + konto.lupdate as lkontoupdate + FROM + public.konto + LEFT JOIN public.benutzer cbenutzer ON (cuser=user_id) + LEFT JOIN public.benutzer lbenutzer ON (konto.luser=lbenutzer.user_id) + ;'; + if($result = pg_query($conn_wawi, $qry)) { while($row = pg_fetch_object($result)) { //Dazupassenden Eintrag in der neuen Datenbank suchen - $qry = "SELECT * FROM wawi.tbl_konto WHERE konto_id='".addslashes($row->konto)."'"; + $qry = "SELECT *, beschreibung[1] AS first_beschreibung FROM wawi.tbl_konto WHERE konto_id='".addslashes($row->konto)."'"; if($result_neu = $db->db_query($qry)) { if($db->db_num_rows($result_neu)>0) @@ -60,19 +74,96 @@ if ($conn_wawi = pg_pconnect(CONN_STRING_WAWI)) $bedingung = ''; //Spalten ueberpruefen - if($row_neu->beschreibung != $row->beschreibung) + if($row_neu->kontonr != $row->kontonr) { if($bedingung!='') $bedingung.=','; - $bedingung .= " beschreibung=".$db->addslashes($row->beschreibung); + $bedingung .= " kontonr=".$db->addslashes($row->kontonr); + $updated_lines .= "kontonr von: \"".$row_neu->kontonr."\" auf: \"".$row->kontonr."\"\n"; + + $update_count++; } + //Wenn sich Beschreibung ändert, ändert sich kurzbeschreibung auch mit + if($row_neu->first_beschreibung != $row->beschreibung) + { + $kurzbz = substr($row->beschreibung, 0, 32); + if($bedingung!='') + $bedingung.=','; + $bedingung .= " beschreibung[1]=".$db->addslashes($row->beschreibung); + $bedingung .= ", kurzbz =".$db->addslashes($kurzbz); + $updated_lines .= "beschreibung von: \"".$row_neu->first_beschreibung."\" auf: \"".$row->beschreibung."\" \n"; + $updated_lines .= "kurzbz von: \"".$row_neu->kurzbz."\" auf: \"".$kurzbz."\" \n"; + + $update_count+= 2; + } + + if($date->formatDatum($row_neu->insertamum, 'Y-m-d H:i:s') != $date->formatDatum($row->cdate, 'Y-m-d H:i:s')) + { + if($bedingung!='') + $bedingung.=','; + $bedingung .= " insertamum=".$db->addslashes($row->cdate); + $updated_lines .= "insertamum von: \"".$row_neu->insertamum."\" auf: \"".$row->cdate."\" \n"; + + $update_count++; + } + + if ($row_neu->insertvon != $row->cusername) + { + if($bedingung!='') + $bedingung.=','; + $bedingung .= " insertvon=".$db->addslashes($row->cusername); + $updated_lines .= "insertvon von: \"".$row_neu->insertvon."\" auf: \"".$row->cusername."\" \n"; + + $update_count++; + } + + if($date->formatDatum($row_neu->updateamum, 'Y-m-d H:i:s') != $date->formatDatum($row->lkontoupdate, 'Y-m-d H:i:s')) + { + if($bedingung!='') + $bedingung.=','; + $bedingung .= " updateamum=".$db->addslashes($row->lkontoupdate); + $updated_lines .= "updateamum von: \"".$row_neu->updateamum."\" auf: \"".$row->lkontoupdate."\" \n"; + + $update_count++; + } + + if($row_neu->updatevon != $row->lusername) + { + if($bedingung!='') + $bedingung.=','; + $bedingung .= " updatevon=".$db->addslashes($row->lusername); + $updated_lines .= "updatevon von: \"".$row_neu->updatevon."\" auf: \"".$row->lusername."\" \n"; + + $update_count++; + } + + if($updated_lines != '') + $ausgabe .= "ID ".$row_neu->konto_id.": ".$updated_lines."\n \n"; + $updated_lines =''; + } + + if ($bedingung !='') + { + $update .= $bedingung." WHERE konto_id =".$row_neu->konto_id.";"; + //echo ($update); + $db->db_query($update); } } else { - $db->addslashes($var); //Wenn der Eintrag noch nicht vorhanden ist, dann wird er neu angelegt - // INSERT INTO wawi.tbl_konto (konto_id, kontonr,....) VALUES(..) + $kurzbz = substr($row->beschreibung, 0, 32); + $insert_qry = "INSERT INTO + wawi.tbl_konto + (konto_id, kontonr, beschreibung, kurzbz, aktiv, insertamum, insertvon, updateamum, updatevon) + VALUES ( + ".$row->konto.",".$row->kontonr.","."ARRAY[".$db->addslashes($row->beschreibung).", 'EE_".$row->beschreibung."']".", + ".$db->addslashes($kurzbz).", true, ".$db->addslashes($row->cdate).",".$db->addslashes($row->cusername).", + ".$db->addslashes($row->lkontoupdate).",".$db->addslashes($row->lusername).");"; + $insert_count++; + //echo ($insert_qry); + if($db->db_query($insert_qry) != true) + $error_count++; } } } @@ -84,10 +175,33 @@ else $error_count++; } +//Sequenz neu setzen +if ($insert_count >0) +{ + $max_qry= "SELECT MAX(konto_id) as max from wawi.tbl_konto"; + if($result_max = $db->db_query($max_qry)) + { + if($row_max = $db->db_fetch_object($result_max)) + { + $set_qry ="SELECT setval('wawi.seq_konto_konto_id', $row_max->max)"; + $db->db_query($set_qry); + } + else + $error_count++; + } + else + $error_count++; +} + $msg = " $update_count Datensätze wurden geändert. $insert_count Datensätze wurden hinzugefügt. -$error_count Fehler sind dabei aufgetreten!"; +$error_count Fehler sind dabei aufgetreten! + +$ausgabe +"; + + $msg.=$errormsg; @@ -95,5 +209,5 @@ $mail = new mail(MAIL_ADMIN, 'vilesci.technikum-wien.at', 'WaWi Syncro - Konto', if(!$mail->send()) echo 'Fehler beim Senden des Mails'; else - echo 'Mail verschickt!'; + echo '
Mail verschickt!'; ?> \ No newline at end of file