Import von Bankdaten,
[kivitendo-erp.git] / lxo-import / blz.php
1 <html>
2 <LINK REL="stylesheet" HREF="../css/lx-office-erp.css" TYPE="text/css" TITLE="Lx-Office stylesheet">
3 <body>
4 <?
5 /*
6 BLZimport mit Browser nach Lx-Office ERP
7 Holger Lindemann <hli@lx-system.de>
8 */
9
10
11 function ende($nr) {
12         echo "Abbruch: $nr<br>";
13         echo "Fehlende oder falsche Daten.";
14         exit(1);
15 }
16
17 if (!$_SESSION["db"]) {
18         $conffile="../config/authentication.pl";
19         if (!is_file($conffile)) {
20                 ende(4);
21         }
22 }
23 require ("import_lib.php");
24
25 if (!anmelden()) ende(5);
26 /* get DB instance */
27 $db=$_SESSION["db"]; //new myDB($login);
28
29
30 /* display help */
31 if ($_POST["ok"]=="Hilfe") {
32         echo "Importfelder:<br>";
33         echo "Feldname => Bedeutung<br>";
34         foreach($parts as $key=>$val) {
35                 echo "$key => $val<br>";
36         }
37         echo "<br>Die erste Zeile enth&auml;lt keine Feldnamen der Daten.<br>";
38         echo "Die Datenfelder haben eine feste Breite.<br><br>"; 
39         echo "Die Daten k&ouml;nnen hier bezogen werden:<br>";
40         echo "<a http='http://www.bundesbank.de/zahlungsverkehr/zahlungsverkehr_bankleitzahlen_download.php'>";
41         echo "http://www.bundesbank.de/zahlungsverkehr/zahlungsverkehr_bankleitzahlen_download.php</a>";
42         exit(0);
43 } else if ($_POST) {
44         $test=$_POST["test"];
45
46         clearstatcache ();
47
48         /* no data? */
49         if (empty($_FILES["Datei"]["name"]))
50                 ende (2);
51
52         /* copy file */
53         if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],"blz.txt")) {
54                 echo "Upload von Datei fehlerhaft.";
55                 echo $_FILES["Datei"]["error"], "<br>";
56                 ende (2);
57         } 
58
59         /* check if file is really there */
60         if (!file_exists("blz.txt")) 
61                 ende(3);
62
63         $sqlins="INSERT INTO blz_data (blz,fuehrend,bezeichnung,plz,ort,kurzbez,pan,bic,pzbm,nummer,aekz,bl,folgeblz) ";
64         $sqlins.="VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s',%d,'%s','%s','%s')";
65         $sqldel="delete from blz";
66         $ok="true";
67         $f=fopen("blz.txt","r");
68         if ($test) echo "Testdurchlauf <br>";
69         $i=0;
70         if ($f) {
71                 if (!$test) $rc=$db->query("BEGIN");
72                 if (!$test) $rc=$db->query($sqldel);
73                 while (($zeile=fgets($f,256)) != FALSE) {
74                         $sql=sprintf($sqlins,substr($zeile,0,8),substr($zeile,8,1),substr($zeile,9,58),substr($zeile,67,5),
75                                                 substr($zeile,72,35),substr($zeile,107,27),substr($zeile,134,5),substr($zeile,139,11),
76                                                 substr($zeile,150,2),substr($zeile,152,6),substr($zeile,158,1),substr($zeile,159,1),
77                                                 substr($zeile,160,8));
78                         if (!$test) $rc=$db->query($sql);
79                         if ($test) $rc=true;
80                         echo $rc;
81                         if (!$rc) { 
82                                 $ok=false;
83                                 break;
84                         }
85                         $i++;
86                 }
87                 if ($ok) {
88                         $rc=$db->query("COMMIT");
89                         echo "$i Daten erfolgreich importiert";
90                 } else {
91                         $rc=$db->query("ROLLBACK");
92                         ende(6);
93                 }
94         } else {
95                 ende(4);
96         }
97 } else {
98 ?>
99
100 <p class="listtop">BLZ-Import f&uuml;r die ERP<p>
101 Achtung!! Die bestehenden BLZ-Daten werden zun&auml;chst gel&ouml;scht.
102 <br>
103 <form name="import" method="post" enctype="multipart/form-data" action="blz.php">
104 <input type="hidden" name="MAX_FILE_SIZE" value="20000000">
105 <input type="hidden" name="login" value="<?= $login ?>">
106 <table>
107 <tr><td><input type="submit" name="ok" value="Hilfe"></td><td></td></tr>
108 <tr><td>Test</td><td><input type="checkbox" name="test" value="1">ja</td></tr>
109 <tr><td>Daten</td><td><input type="file" name="Datei"></td></tr>
110 <tr><td></td><td><input type="submit" name="ok" value="Import"></td></tr>
111 </table>
112 </form>
113 <? }; ?>