Merge branch 'master' of ssh://lx-office/~/lx-office-erp
[kivitendo-erp.git] / lxo-import / shiptoB.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 Lieferanschriftimport mit Browser nach Lx-Office ERP
7
8 Copyright (C) 2005
9 Author: Philip Reetz, Holger Lindemann
10 Email: p.reetz@linet-services.de, hli@lx-system.de
11 Web: http://www.linet-services.de, http://www.lx-system.de
12
13 */
14     require ("import_lib.php");
15
16     function ende($nr) {
17         echo "Abbruch: $nr\n";
18         exit($nr);
19     }
20
21     if ($_POST["ok"]=="Hilfe") {
22         echo "Importfelder:<br>";
23         echo "Feldname => Bedeutung<br>";
24         foreach($shiptos as $key=>$val) {
25             echo "$key => $val<br>";
26         }
27         $header=implode(";",array_keys($shiptos));
28         echo $header;
29         exit(0);
30     };
31
32 if (!$_SESSION["db"]) {
33     $conffile="../config/authentication.pl";
34     if (!is_file($conffile)) {
35         ende("authentication.pl nicht gefunden oder unlesbar");
36     }
37 }
38
39 if (!anmelden()) ende("Anmeldung fehlgeschlagen");
40
41 /* get DB instance */
42 $db=$_SESSION["db"]; //new myDB($login);
43
44 $crm=checkCRM();
45
46 if ($_POST["ok"] == "Import") {
47     $test=$_POST["test"];
48     
49     $shipto_fld = array_keys($shiptos);
50     $shipto=$shiptos;
51     
52     $nun=time();
53
54     clearstatcache ();
55
56     $trenner=($_POST["trenner"])?$_POST["trenner"]:",";
57
58     if (!empty($_FILES["Datei"]["name"])) { 
59         $file=$_POST["ziel"];
60         if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file."_shipto.csv")) {
61             $file=false;
62             echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")<br>";
63         } 
64     } else if (is_file($_POST["ziel"]."_shipto.csv")) {
65         $file=$_POST["ziel"];
66     } else {
67         $file=false;
68     } 
69     if (!$file) ende ("Kein Datenfile");
70
71     if (!file_exists($file."_shipto.csv")) ende($file."_shipto.csv nicht im Ordner gefunden oder leer");
72
73     $employee=chkUsr($_SESSION["employee"]);
74     if (!$employee) ende("Benutzer unbekannt");
75
76     if (!$db->chkcol($file)) ende("Importspalte konnte nicht angelegt werden");
77
78     $f=fopen($file."_shipto.csv","r");
79     $zeile=fgetcsv($f,1000,$trenner);
80     $first=true;
81
82     foreach ($zeile as $fld) {
83         $fld = strtolower(trim(strtr($fld,array("\""=>"","'"=>""))));
84         $in_fld[]=$fld;
85     }
86     $j=0;
87     $n=0;
88     $prenumber=$_POST["prenumber"];
89     $zeile=fgetcsv($f,1000,$trenner);
90
91     while (!feof($f)){
92         $i=-1;
93         $id=false;
94         $sql="insert into shipto ";
95         $keys="";
96         $vals="";
97         foreach($zeile as $data) {
98             $i++;
99             if (!in_array($in_fld[$i],$shipto_fld)) {
100                 continue;
101             }
102             $data=addslashes(trim($data));
103             if ($in_fld[$i]=="trans_id" && $data) {
104                 $data=chkKdId($data);
105                 if (!$id) $id = $data;
106                 continue;
107             } else  if ($in_fld[$i]=="trans_id") {
108                 continue;
109             }
110             if ($in_fld[$i]==$file."number" && $data) {
111                 $tmp=getFirma($data,$file);
112                 if ($id<>$tmp) $id=$tmp;
113                 continue;
114             } else if ($in_fld[$i]==$file."number") {
115                 continue;
116             }
117             if ($in_fld[$i]=="firma") {
118                 if ($id) continue;
119                 $data=suchFirma($file,$data);
120                 if ($data) {
121                     $id=$data["cp_cv_id"];
122                 }
123                 continue;
124             }
125             $keys.=$in_fld[$i].",";
126             
127             if ($data==false or empty($data) or !$data) {
128                             $vals.="null,";
129             } else {
130                    if (in_array($in_fld[$i],array("shiptofax","shiptophone"))) {
131                     $data=$prenumber.$data;
132                 } 
133                 $vals.="'".$data."',";
134                 // bei jedem gefuellten Datenfeld erhoehen
135                 $val_count++;
136             }
137         }
138         if ($keys<>"" && $id) {
139             $vals.=$id.",'CT'";
140             $keys.="trans_id,module";
141             if ($test) {
142                 if ($first) {
143                     echo "<table border='1'>\n";
144                     echo "<tr><th>".str_replace(",","</th><th>",$keys)."</th></tr>\n";
145                     $first=false;
146                 };
147                 echo "<tr><td>".str_replace(",","</td><td>",$vals)."</td></tr>\n";
148                 flush();
149             } else {
150                 $sql.="(".$keys.")";
151                 $sql.="values (".$vals.")";
152                 $rc=$db->query($sql);
153                 if (!$rc) echo "Fehler: ".$sql."\n";
154             }
155             $j++;
156         } 
157         $n++;
158         $zeile=fgetcsv($f,1000,$trenner);
159     }
160     fclose($f);
161     echo "</table>".$j." $file shipto von $n importiert.\n";
162 } else {
163 ?>
164 <p class="listtop">Lieferanschriftimport f&uuml;r die ERP</p>
165 <form name="import" method="post" enctype="multipart/form-data" action="shiptoB.php">
166 <input type="hidden" name="MAX_FILE_SIZE" value="300000">
167 <table>
168 <tr><td></td><td><input type="submit" name="ok" value="Hilfe"></td></tr>
169 <tr><td>Zieltabelle</td><td><input type="radio" name="ziel" value="customer" checked>customer <input type="radio" name="ziel" value="vendor">vendor</td></tr>
170 <tr><td>Trennzeichen</td><td><input type="text" size="2" maxlength="1" name="trenner" value=";"></td></tr>
171 <tr><td>Telefonvorwahl</td><td><input type="text" size="4" maxlength="10" name="prenumber" value=""></td></tr>
172 <tr><td>Test</td><td><input type="checkbox" name="test" value="1">ja</td></tr>
173 <tr><td>Daten</td><td><input type="file" name="Datei"></td></tr>
174 <tr><td></td><td><input type="submit" name="ok" value="Import"></td></tr>
175 </table>
176 </form>
177 <? }; ?>