2 <LINK REL="stylesheet" HREF="../css/lx-office-erp.css" TYPE="text/css" TITLE="Lx-Office stylesheet">
6 BLZimport mit Browser nach Lx-Office ERP
7 Holger Lindemann <hli@lx-system.de>
12 echo "Abbruch: $nr<br>";
13 echo "Fehlende oder falsche Daten.";
17 if (!$_SESSION["db"]) {
18 $conffile="../config/authentication.pl";
19 if (!is_file($conffile)) {
23 require ("import_lib.php");
26 return iconv("ISO-8859-1", "UTF-8",$str);
29 if (!anmelden()) ende(5);
31 $db=$_SESSION["db"]; //new myDB($login);
35 if ($_POST["ok"]=="Hilfe") {
36 echo "<br>Die erste Zeile enthält keine Feldnamen der Daten.<br>";
37 echo "Die Datenfelder haben eine feste Breite.<br><br>";
38 echo "Die Daten können hier bezogen werden:<br>";
39 echo "<a http='http://www.bundesbank.de/zahlungsverkehr/zahlungsverkehr_bankleitzahlen_download.php'>";
40 echo "http://www.bundesbank.de/zahlungsverkehr/zahlungsverkehr_bankleitzahlen_download.php</a>";
48 if (empty($_FILES["Datei"]["name"]))
52 if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],"blz.txt")) {
53 echo "Upload von Datei fehlerhaft.";
54 echo $_FILES["Datei"]["error"], "<br>";
58 /* check if file is really there */
59 if (!file_exists("blz.txt"))
62 $sqlins="INSERT INTO blz_data (blz,fuehrend,bezeichnung,plz,ort,kurzbez,pan,bic,pzbm,nummer,aekz,bl,folgeblz) ";
63 $sqlins.="VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s',%d,'%s','%s','%s')";
64 $teststr="<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%d</td><td>%s</td><td>%s</td><td>%s</td></tr>\n";
65 $sqldel="delete from blz_data";
68 $f=fopen("blz.txt","r");
69 if ($test) echo "Testdurchlauf <br><table>\n";
72 $rs = $db->getAll("SELECT current_setting('server_encoding')");
73 $srvencoding = $rs[0]['current_setting'];
74 $rs = $db->getAll("SELECT current_setting('client_encoding')");
75 $cliencoding = $rs[0]['current_setting'];
76 echo "SRV: $srvencoding - - CLI: $cliencoding<br>";
77 //Datenfile ist immer Latin!!
78 //zwei Möglichkeiten der Zeichenwandlung. Was ist besser??
80 //Cliententcoding nicht umstellen:
81 //if (!$test) { $rc=$db->query("BEGIN");};
82 //Cliententcoding auf Latin:
83 if (!$test) { $rc=$db->query("BEGIN"); if ($cliencoding=="UTF8") $db->query("SET CLIENT_ENCODING TO 'latin-9'"); };
84 if (!$test) $rc=$db->query($sqldel);
85 while (($zeile=fgets($f,256)) != FALSE) {
88 //Client nicht umgestellt, Zeichen wandeln
89 /*$sql=sprintf($sqlins,substr($zeile,0,8),substr($zeile,8,1),l2u(substr($zeile,9,58)),substr($zeile,67,5),
90 l2u(substr($zeile,72,35)),l2u(substr($zeile,107,27)),substr($zeile,134,5),substr($zeile,139,11),
91 substr($zeile,150,2),substr($zeile,152,6),substr($zeile,158,1),substr($zeile,159,1),
92 substr($zeile,160,8));*/
93 //Client umgestellt + und auch bei nicht UTF-Client:
94 $sql=sprintf($sqlins,substr($zeile,0,8),substr($zeile,8,1),substr($zeile,9,58),substr($zeile,67,5),
95 substr($zeile,72,35),substr($zeile,107,27),substr($zeile,134,5),substr($zeile,139,11),
96 substr($zeile,150,2),substr($zeile,152,6),substr($zeile,158,1),substr($zeile,159,1),
97 substr($zeile,160,8));
100 if ($cnt % 1000 == 0) { $x=time()-$start; echo sprintf("%dsec %6d<br>",$x,$cnt); }
101 else if ($cnt % 100 == 0) { echo "!"; }
106 echo sprintf($teststr,substr($zeile,0,8),substr($zeile,8,1),l2u(substr($zeile,9,58)),substr($zeile,67,5),
107 l2u(substr($zeile,72,35)),l2u(substr($zeile,107,27)),substr($zeile,134,5),substr($zeile,139,11),
108 substr($zeile,150,2),substr($zeile,152,6),substr($zeile,158,1),substr($zeile,159,1),
109 substr($zeile,160,8));
119 $rc=$db->query("COMMIT");
120 echo "<br>$i Daten erfolgreich importierti<br>";
121 if ($cliencoding=="UTF8") $db->query("SET CLIENT_ENCODING TO 'UTF8'");
123 echo $stop-$start." Sekunden";
125 $rc=$db->query("ROLLBACK");
135 <p class="listtop">BLZ-Import für die ERP<p>
136 Achtung!! Die bestehenden BLZ-Daten werden zunächst gelöscht.
138 <form name="import" method="post" enctype="multipart/form-data" action="blz.php">
139 <input type="hidden" name="MAX_FILE_SIZE" value="20000000">
140 <input type="hidden" name="login" value="<?= $login ?>">
142 <tr><td><input type="submit" name="ok" value="Hilfe"></td><td></td></tr>
143 <tr><td>Test</td><td><input type="checkbox" name="test" value="1">ja</td></tr>
144 <tr><td>Daten</td><td><input type="file" name="Datei"></td></tr>
145 <tr><td></td><td><input type="submit" name="ok" value="Import"></td></tr>