X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=lxo-import%2Fblz.php;h=c1f726061df4a12eb1cc536651ec25cf404ce206;hb=ee61dd2b559ab9d6bf741086c86fa9076efba022;hp=506ae393eef62136b00b638a0bf452b7590c9e18;hpb=24475075172336ae3300c48ec146f9fdb9127886;p=kivitendo-erp.git diff --git a/lxo-import/blz.php b/lxo-import/blz.php index 506ae393e..c1f726061 100644 --- a/lxo-import/blz.php +++ b/lxo-import/blz.php @@ -1,36 +1,13 @@ - */ -function ende($nr) { - echo "Abbruch: $nr
"; - echo "Fehlende oder falsche Daten."; - exit(1); -} - -if (!$_SESSION["db"]) { - $conffile="../config/authentication.pl"; - if (!is_file($conffile)) { - ende(4); - } -} -require ("import_lib.php"); - -function l2u($str) { - return iconv("ISO-8859-1", "UTF-8",$str); -} - -if (!anmelden()) ende(5); -/* get DB instance */ -$db=$_SESSION["db"]; //new myDB($login); - - /* display help */ if ($_POST["ok"]=="Hilfe") { echo "
Die erste Zeile enthält keine Feldnamen der Daten.
"; @@ -40,6 +17,30 @@ if ($_POST["ok"]=="Hilfe") { echo "http://www.bundesbank.de/zahlungsverkehr/zahlungsverkehr_bankleitzahlen_download.php"; exit(0); } else if ($_POST) { + function ende($nr) { + echo "Abbruch: $nr
"; + echo "Fehlende oder falsche Daten."; + exit(1); + } + + function l2u($str) { + return iconv("ISO-8859-1", "UTF-8",$str); + } + + require ("import_lib.php"); + + if (!$_SESSION["db"]) { + $conffile="../config/authentication.pl"; + if (!is_file($conffile)) { + ende(4); + } + if (!anmelden()) ende(5); + } + + + /* get DB instance */ + $db=$_SESSION["db"]; + $test=$_POST["test"]; clearstatcache (); @@ -50,6 +51,8 @@ if ($_POST["ok"]=="Hilfe") { /* copy file */ if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],"blz.txt")) { + print_r($_FILES); + echo $_FILES["Datei"]["tmp_name"]; echo "Upload von Datei fehlerhaft."; echo $_FILES["Datei"]["error"], "
"; ende (2); @@ -61,7 +64,8 @@ if ($_POST["ok"]=="Hilfe") { $sqlins="INSERT INTO blz_data (blz,fuehrend,bezeichnung,plz,ort,kurzbez,pan,bic,pzbm,nummer,aekz,bl,folgeblz) "; $sqlins.="VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s',%d,'%s','%s','%s')"; - $teststr="%s%s%s%s%s%s%s%s%s%d%s%s%s\n"; + $teststr="%s%s%s%s%s%s%s"; + $teststr.="%s%s%d%s%s%s\n"; $sqldel="delete from blz_data"; $ok="true"; $cnt=0; @@ -74,17 +78,15 @@ if ($_POST["ok"]=="Hilfe") { $rs = $db->getAll("SELECT current_setting('client_encoding')"); $cliencoding = $rs[0]['current_setting']; echo "SRV: $srvencoding - - CLI: $cliencoding
"; - //Datenfile ist immer Latin!! - //zwei Möglichkeiten der Zeichenwandlung. Was ist besser?? if ($f) { - //Cliententcoding nicht umstellen: - //if (!$test) { $rc=$db->query("BEGIN");}; //Cliententcoding auf Latin: if (!$test) { $rc=$db->query("BEGIN"); if ($cliencoding=="UTF8") $db->query("SET CLIENT_ENCODING TO 'latin-9'"); }; if (!$test) $rc=$db->query($sqldel); while (($zeile=fgets($f,256)) != FALSE) { $cnt++; - if (!$test) { + if (!$test){ + //Datenfile ist immer Latin!! + //zwei Möglichkeiten der Zeichenwandlung. Was ist besser?? //Client nicht umgestellt, Zeichen wandeln /*$sql=sprintf($sqlins,substr($zeile,0,8),substr($zeile,8,1),l2u(substr($zeile,9,58)),substr($zeile,67,5), l2u(substr($zeile,72,35)),l2u(substr($zeile,107,27)),substr($zeile,134,5),substr($zeile,139,11), @@ -96,6 +98,12 @@ if ($_POST["ok"]=="Hilfe") { substr($zeile,150,2),substr($zeile,152,6),substr($zeile,158,1),substr($zeile,159,1), substr($zeile,160,8)); $rc=$db->query($sql); + if(DB::isError($rc)) { + echo $sql."
";
+					echo $rc->getMessage()."

"; + $ok=false; + break; + } if ($cnt % 10 == 0) { if ($cnt % 1000 == 0) { $x=time()-$start; echo sprintf("%dsec %6d
",$x,$cnt); } else if ($cnt % 100 == 0) { echo "!"; } @@ -116,33 +124,39 @@ if ($_POST["ok"]=="Hilfe") { $i++; } if ($ok) { - $rc=$db->query("COMMIT"); + if (!$test) $rc=$db->query("COMMIT"); echo "
$i Daten erfolgreich importierti
"; if ($cliencoding=="UTF8") $db->query("SET CLIENT_ENCODING TO 'UTF8'"); $stop=time(); echo $stop-$start." Sekunden"; } else { - $rc=$db->query("ROLLBACK"); + if (!$test) $rc=$db->query("ROLLBACK"); + echo "Fehler in Zeile: ".$i."
"; + echo $sql."
"; ende(6); } } else { ende(4); } - echo ""; + echo "
Fertig. $i Banken importiert."; } else { ?> -

BLZ-Import für die ERP

+
Die erste Zeile enthält keine Feldnamen der Daten.
+Die Datenfelder haben eine feste Breite.

+Die Daten können hier bezogen werden:
+ +http://www.bundesbank.de/zahlungsverkehr/zahlungsverkehr_bankleitzahlen_download.php

+Das File vorher nicht auf UTF8 wandeln!

Achtung!! Die bestehenden BLZ-Daten werden zunächst gelöscht.

- + -
Testja
Daten
- +