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>