From bae3dd2289503b8867f82ae9de3cae72f7c9e674 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 17 Dec 2010 09:37:25 +0000 Subject: [PATCH] =?UTF-8?q?Diverse=20Bugfixes=20f=C3=BCr=20Syncro=20Script?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/checksystem.php | 4 +- system/sync/kontokostenstelle.php | 2 +- system/sync/sync_aufteilung.php | 3 +- system/sync/sync_aufteilung_default.php | 3 +- system/sync/sync_bestellung.php | 155 +++++++++++++----------- system/sync/sync_rechnung.php | 3 +- 6 files changed, 96 insertions(+), 74 deletions(-) diff --git a/system/checksystem.php b/system/checksystem.php index 118d5237a..44b9db981 100644 --- a/system/checksystem.php +++ b/system/checksystem.php @@ -1937,9 +1937,9 @@ $tabellen=array( "wawi.tbl_bestelldetail" => array("bestelldetail_id","bestellung_id","position","menge","verpackungseinheit","beschreibung","artikelnummer","preisprove","mwst","erhalten","sort","text","updateamum","updatevon","insertamum","insertvon"), "wawi.tbl_bestellung_bestellstatus" => array("bestellung_bestellstatus_id","bestellung_id","bestellstatus_kurzbz","uid","oe_kurzbz","datum","insertamum","insertvon","updateamum","updatevon"), "wawi.tbl_bestellstatus" => array("bestellstatus_kurzbz","beschreibung"), - "wawi.tbl_rechnungstyp" => array("rechnungstyp_kurzbz","beschreibung","berechtigung_kurzbz","ext_id"), + "wawi.tbl_rechnungstyp" => array("rechnungstyp_kurzbz","beschreibung","berechtigung_kurzbz"), "wawi.tbl_rechnung" => array("rechnung_id","bestellung_id","buchungsdatum","rechnungsnr","rechnungsdatum","transfer_datum","buchungstext","insertamum","insertvon","updateamum","updatevon","rechnungstyp_kurzbz","freigegeben","freigegebenvon","freigegebenamum"), - "wawi.tbl_rechnungsbetrag" => array("rechnungsbetrag_id","rechnung_id","mwst","betrag","bezeichnung"), + "wawi.tbl_rechnungsbetrag" => array("rechnungsbetrag_id","rechnung_id","mwst","betrag","bezeichnung","ext_id"), "wawi.tbl_aufteilung" => array("aufteilung_id","bestellung_id","oe_kurzbz","anteil","insertamum","insertvon","updateamum","updatevon"), "wawi.tbl_aufteilung_default" => array("aufteilung_id","kostenstelle_id","oe_kurzbz","anteil","insertamum","insertvon","updateamum","updatevon"), ); diff --git a/system/sync/kontokostenstelle.php b/system/sync/kontokostenstelle.php index 6eba01d8a..18cad8029 100644 --- a/system/sync/kontokostenstelle.php +++ b/system/sync/kontokostenstelle.php @@ -31,7 +31,7 @@ $db = new basis_db(); foreach($kostenstelle->result as $row) { $qry = "INSERT INTO wawi.tbl_konto_kostenstelle(konto_id, kostenstelle_id, insertamum, insertvon) - SELECT konto_id, $row->kostenstelle_id, now(),'oesi' FROM wawi.tbl_konto WHERE konto_id<1000 + SELECT konto_id, $row->kostenstelle_id, now(),'oesi' FROM wawi.tbl_konto WHERE kontonr::integer<100 AND konto_id NOT IN(SELECT konto_id FROM wawi.tbl_konto_kostenstelle WHERE kostenstelle_id='$row->kostenstelle_id')"; if(!$db->db_query($qry)) diff --git a/system/sync/sync_aufteilung.php b/system/sync/sync_aufteilung.php index 03eb4144b..449a97bbe 100644 --- a/system/sync/sync_aufteilung.php +++ b/system/sync/sync_aufteilung.php @@ -39,6 +39,7 @@ $anzahl_insert=0; $anzahl_update=0; $anzahl_delete=0; $anzahl_fehler=0; +$starttime=date("d.m.Y H:i:s"); ?> @@ -157,7 +158,7 @@ if($result=pg_query($conn_wawi, $qry)) } //Mail versenden $statistik="Aufteilung Default Sync\n--------------\n"; - $statistik.="Beginn: ".date("d.m.Y H:i:s")." von ".DB_NAME." - Anzahl Einträge: ".$anzahl_aufteilungen."\n\n"; + $statistik.="Beginn: ".$starttime." von ".DB_NAME." - Anzahl Einträge: ".$anzahl_aufteilungen."\n\n"; $statistik.="\nEingefügte Datensätze: $anzahl_insert"; $statistik.="\nGeänderte Datensätze: $anzahl_update"; $statistik.="\nFehler: $anzahl_fehler\n"; diff --git a/system/sync/sync_aufteilung_default.php b/system/sync/sync_aufteilung_default.php index 9cdddeba5..fa8aa8e22 100644 --- a/system/sync/sync_aufteilung_default.php +++ b/system/sync/sync_aufteilung_default.php @@ -39,6 +39,7 @@ $anzahl_insert=0; $anzahl_update=0; $anzahl_delete=0; $anzahl_fehler=0; +$starttime = date("d.m.Y H:i:s"); ?> @@ -157,7 +158,7 @@ if($result=pg_query($conn_wawi, $qry)) //Mail versenden $statistik="Aufteilung Default Sync\n--------------\n"; - $statistik.="Beginn: ".date("d.m.Y H:i:s")." von ".DB_NAME." - Anzahl Einträge: ".$anzahl_aufteilungen."\n\n"; + $statistik.="Beginn: ".$starttime." von ".DB_NAME." - Anzahl Einträge: ".$anzahl_aufteilungen."\n\n"; $statistik.="\nEingefügte Datensätze: $anzahl_insert"; $statistik.="\nGeänderte Datensätze: $anzahl_update"; $statistik.="\nFehler: $anzahl_fehler\n"; diff --git a/system/sync/sync_bestellung.php b/system/sync/sync_bestellung.php index 27235bdd1..063216d2f 100644 --- a/system/sync/sync_bestellung.php +++ b/system/sync/sync_bestellung.php @@ -36,7 +36,8 @@ $count_update_detail = 0; $count_update = 0; $count_delete = 0; $error_count = 0; - +$errormsg = ''; +$starttime=date("d.m.Y H:i:s"); $bool_insert = false; $firma_id = ''; @@ -96,7 +97,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { //fehler aufgetreten $error_count++; - echo $qry_firma; + $errormsg.= $qry_firma.' '.pg_last_error($con_wawi); } } else @@ -114,14 +115,18 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) if($row_neu = $db->db_fetch_object($result_check)) { //update der bestellung - + if($row->bestellung_id_freigegeben != null) + $freigegeben = "t"; + else + $freigegeben = "f"; + if($row_neu->besteller_uid != $row->besteller_neu || $row_neu->kostenstelle_id != $row->kostenstelle_id || $row_neu->konto_id != $row->konto_id || $row_neu->firma_id != $firma || $row_neu->bestell_nr != $row->bestellnr || $row_neu->titel != $row->newtitel || $row_neu->bemerkung != $row->bemerkungen || $row_neu->liefertermin != $row->geliefert || $row_neu->updatevon != $row->lusername || $row_neu->insertvon != $row->cusername || $date->formatDatum($row_neu->updateamum, 'Y-m-d H:i:s') != $date->formatDatum($row->lupdate, 'Y-m-d H:i:s') || - $date->formatDatum($row_neu->insertamum, 'Y-m-d H:i:s') != $date->formatDatum($row->cdate, 'Y-m-d H:i:s')) + $date->formatDatum($row_neu->insertamum, 'Y-m-d H:i:s') != $date->formatDatum($row->cdate, 'Y-m-d H:i:s') || $row_neu->freigegeben!=$freigegeben) { $qry="UPDATE wawi.tbl_bestellung SET besteller_uid = ".$db->addslashes($row->besteller_neu).", kostenstelle_id = ".$db->addslashes($row->kostenstelle_id).", konto_id = ".$db->addslashes($row->konto_id).", firma_id = - ".$db->addslashes($firma)." ,bestell_nr = ".$db->addslashes($row->bestellnr).", titel = ".$db->addslashes($row->newtitel).", bemerkung = ".$db->addslashes($row->bemerkungen).", liefertermin= + ".$db->addslashes($firma)." ,bestell_nr = ".$db->addslashes($row->bestellnr).", titel = ".$db->addslashes($row->newtitel).", bemerkung = ".$db->addslashes($row->bemerkungen).", freigegeben=".($freigegeben=='t'?'true':'false').", liefertermin= ".$db->addslashes($row->geliefert).", updateamum = ".$db->addslashes($row->lupdate).", updatevon = ".$db->addslashes($row->lusername).", insertamum = ".$db->addslashes($row->cdate).", insertvon = ".$db->addslashes($row->cusername)." WHERE bestellung_id = ".$db->addslashes($row->bestellung_id).";"; @@ -129,10 +134,10 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry; + $errormsg.= $qry.' '.$db->db_last_error(); } $count_update++; - echo "Update Bestellung_id: ".$row->bestellung_id.'
'; + $errormsg.= "Update Bestellung_id: ".$row->bestellung_id.'
'; } } @@ -154,7 +159,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; @@ -180,9 +185,8 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } - echo "rek"; $count_insert_status++; } } @@ -205,7 +209,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -228,7 +232,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -251,7 +255,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -274,7 +278,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -303,7 +307,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry; + $errormsg.= $qry.' '.$db->db_last_error(); } $bool_insert=true; @@ -321,7 +325,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -337,7 +341,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -353,7 +357,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -369,7 +373,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -385,7 +389,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -401,7 +405,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry_stati; + $errormsg.= $qry_stati.' '.$db->db_last_error(); } $count_insert_status++; } @@ -410,7 +414,12 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) } // alle bestelldetails zu bestellung holen - $qry = "SELECT * FROM public.bestelldetail WHERE bestellung_id = $row->bestellung_id"; + $qry = "SELECT + *, benutzer.username_neu as lusername + FROM + public.bestelldetail + LEFT JOIN public.benutzer ON(bestelldetail.luser=benutzer.user_id) + WHERE bestellung_id = $row->bestellung_id"; if($result_detail = pg_query($con_wawi, $qry)) { while($row = pg_fetch_object($result_detail)) @@ -430,7 +439,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) ".$db->addslashes($row->menge).",".$db->addslashes($row->ve).",".$db->addslashes($row->beschreibung).", ".$db->addslashes($row->artikelnr).",".$db->addslashes($row->preisve).",".$db->addslashes($row->mwst).", ".$db->addslashes($row->erhalten).",".$db->addslashes($row->pos).", false ,".$db->addslashes($row->lupdate).", - ".$db->addslashes($row->luser).",".$db->addslashes($row->lupdate).",".$db->addslashes($row->luser).")"; + ".$db->addslashes($row->lusername).",".$db->addslashes($row->lupdate).",".$db->addslashes($row->lusername).")"; //echo $qry; @@ -438,7 +447,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { // Fehler $error_count++; - echo $qry; + $errormsg.= $qry.' '.$db->db_last_error(); } $count_insert_detail++; } @@ -449,26 +458,26 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) { if($row_neu->bestellung_id != $row->bestellung_id || $row_neu->position != $row->pos || $row_neu->menge != $row->menge ||$row_neu->verpackungseinheit != $row->ve || - $row_neu->beschreibung != $row->beschreibung || $row_neu->artikelnummer != $row->artikelnr || $row_neu->preisprove != $row->preisve || $row_neu->mwst != $row->mwst) + $row_neu->beschreibung != $row->beschreibung || $row_neu->artikelnummer != $row->artikelnr || round($row_neu->preisprove,2) != round($row->preisve,2) || $row_neu->mwst != $row->mwst) { - echo $row->preisve."
"; - echo $row_neu->preisprove."

"; + //echo $row->preisve."
"; + //echo $row_neu->preisprove."

"; $qry = "UPDATE wawi.tbl_bestelldetail SET position = ".$db->addslashes($row->pos).", menge = ".$db->addslashes($row->menge).", verpackungseinheit = ".$db->addslashes($row->ve).", beschreibung = ".$db->addslashes($row->beschreibung).", artikelnummer = ".$db->addslashes($row->artikelnr).", preisprove = ".$db->addslashes($row->preisve).", mwst = ".$db->addslashes($row->mwst).", erhalten = ".$db->addslashes($row->erhalten).", sort = - ".$db->addslashes($row->pos).", text = false, insertamum = ".$db->addslashes($row->lupdate).", insertvon = ".$db->addslashes($row->luser).", updateamum = - ".$db->addslashes($row->lupdate).", updatevon = ".$db->addslashes($row->luser)." where bestelldetail_id = ".$db->addslashes($row->bestelldetail_id).";"; + ".$db->addslashes($row->pos).", text = false, insertamum = ".$db->addslashes($row->lupdate).", insertvon = ".$db->addslashes($row->lusername).", updateamum = + ".$db->addslashes($row->lupdate).", updatevon = ".$db->addslashes($row->lusername)." WHERE bestelldetail_id = ".$db->addslashes($row->bestelldetail_id).";"; if($db->db_query($qry) != true) { // Fehler $error_count++; - echo $qry; + $errormsg.= $qry.' '.$db->db_last_error(); } $count_update_detail++; - echo "Update Bestelldetail_id: ".$row->bestelldetail_id.'
'; + $errormsg.= "Update Bestelldetail_id: ".$row->bestelldetail_id.'
'; } } } @@ -480,40 +489,57 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) } else { - $error_count++; - echo "Verbindung zu Datenbank fehlgeschlagen."; + $error_count++; + $errormsg.= "Verbindung zu Datenbank fehlgeschlagen."; } // delete --> bestellungen die es im wawi nicht mehr gibt - $qry_delete = "SELECT - * + $qry_delete = "DELETE FROM wawi.tbl_bestellung WHERE NOT EXISTS ( SELECT bestellung_id FROM dblink( - 'host=antigone dbname=-devwawi user=wawi password=iwaw'::text, + '".CONN_STRING_WAWI."'::text, 'SELECT bestellung_id FROM public.bestellung WHERE bestellung_id=' || tbl_bestellung.bestellung_id ) - as vw_devvilesci_alias(bestellung_id integer));"; + as foo(bestellung_id integer));"; if($result_delete = $db->db_query($qry_delete)) { - if($row_delete = $db->db_fetch_object($result_delete)) - { - $qry_delete = "Delete FROM wawi.tbl_bestellung WHERE bestellung_id = $row_delete->bestellung_id"; - if($db->db_query($qry_delete) != true) - { - $error_count++; - echo $qry_delete; - } - $count_delete++; - } + $count_delete += $db->db_affected_rows($result_delete); } - + else + { + $error_count++; + $errormsg.= "Fehler beim Löschen der Bestellungen! ".$db->db_last_error(); + } + + // delete --> bestelldetails die es im wawi nicht mehr gibt + $qry_delete = "DELETE + FROM + wawi.tbl_bestelldetail + WHERE NOT EXISTS ( + SELECT bestelldetail_id FROM + dblink( + '".CONN_STRING_WAWI."'::text, + 'SELECT bestelldetail_id FROM public.bestelldetail WHERE bestelldetail_id=' || tbl_bestelldetail.bestelldetail_id + ) + as foo(bestelldetail_id integer));"; + + if($result_delete = $db->db_query($qry_delete)) + { + $count_delete += $db->db_affected_rows($result_delete); + } + else + { + $error_count++; + $errormsg.= "Fehler beim Löschen der Bestelldetails! ".$db->db_last_error(); + } + if ($count_insert >0) { - $max_qry= "SELECT MAX(bestellung_id) as max from wawi.tbl_bestellung"; + $max_qry= "SELECT MAX(bestellung_id) as max FROM wawi.tbl_bestellung"; if($result_max = $db->db_query($max_qry)) { if($row_max = $db->db_fetch_object($result_max)) @@ -524,7 +550,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) else { $error_count++; - echo $set_qry; + $errormsg.= $set_qry.' '.$db->db_last_error(); } } else @@ -544,7 +570,7 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) else { $error_count++; - echo $set_qry; + $errormsg.= $set_qry.' '.$db->db_last_error(); } } else @@ -564,26 +590,18 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) else { $error_count++; - echo $set_qry; + $errormsg.= $set_qry.' '.$db->db_last_error(); } } else $error_count++; } - - - $msg = ''; - $msg.= "\ninsert ".$count_insert."\n"; - $msg.= "insert_detail ".$count_insert_detail."\n"; - $msg.= "insert_stati ".$count_insert_status."\n"; - $msg.= "update ".$count_update."\n"; - $msg.= "udate_detail ".$count_update_detail."\n"; - $msg.= "delete ".$count_delete."\n"; - $msg.= "error ".$error_count; - echo $msg; + echo $errormsg; $send_msg = " + Bestellungen Syncro + Beginn: ".$starttime." von ".DB_NAME." $count_update Bestellungen wurden geändert. $count_update_detail Bestelldetails wurden geändert. $count_insert Bestellungen wurden hinzugefügt. @@ -591,13 +609,14 @@ if($con_wawi = pg_connect(CONN_STRING_WAWI)) $count_insert_status Bestellstati wurden hinzugefügt. $count_delete Bestellungen wurden gelöscht. $error_count Fehler sind dabei aufgetreten. -"; - $mail = new mail(MAIL_ADMIN, 'vilesci.technikum-wien.at', 'WaWi Syncro - Bestellung', $send_msg.$msg); +"; + echo $send_msg; + + $mail = new mail(MAIL_ADMIN, 'vilesci@technikum-wien.at', 'WaWi Syncro - Bestellung', $send_msg.$errormsg); if(!$mail->send()) echo 'Fehler beim Senden des Mails'; else echo '
Mail verschickt!'; - - -} \ No newline at end of file +} +?> \ No newline at end of file diff --git a/system/sync/sync_rechnung.php b/system/sync/sync_rechnung.php index f33e285e2..650b37cce 100644 --- a/system/sync/sync_rechnung.php +++ b/system/sync/sync_rechnung.php @@ -40,6 +40,7 @@ $anzahl_insert=0; $anzahl_update=0; $anzahl_delete=0; $anzahl_fehler=0; +$starttime=date("d.m.Y H:i:s"); $datum_obj = new datum(); ?> @@ -261,7 +262,7 @@ if($result=pg_query($conn_wawi, $qry)) } //Mail versenden $statistik="Rechnung Sync\n--------------\n"; - $statistik.="Beginn: ".date("d.m.Y H:i:s")." von ".DB_NAME." - Anzahl Einträge: ".$anzahl_gesamt."\n\n"; + $statistik.="Beginn: ".$starttime." von ".DB_NAME." - Anzahl Einträge: ".$anzahl_gesamt."\n\n"; $statistik.="\nEingefügte Datensätze: $anzahl_insert"; $statistik.="\nGeänderte Datensätze: $anzahl_update"; $statistik.="\nFehler: $anzahl_fehler\n";