Revision fc47e483
Von Holger Lindemann vor etwa 15 Jahren hinzugefügt
lxo-import/partsB.php | ||
---|---|---|
9 | 9 |
*/ |
10 | 10 |
|
11 | 11 |
|
12 |
function ende($nr) { |
|
13 |
echo "Abbruch: $nr<br>"; |
|
14 |
echo "Fehlende oder falsche Daten."; |
|
15 |
exit(1); |
|
12 |
function ende($txt) { |
|
13 |
echo "Abbruch: $txt<br>"; |
|
14 |
exit(1); |
|
16 | 15 |
} |
17 | 16 |
|
18 | 17 |
if (!$_SESSION["db"]) { |
19 |
$conffile="../config/authentication.pl";
|
|
20 |
if (!is_file($conffile)) {
|
|
21 |
ende(4);
|
|
22 |
}
|
|
18 |
$conffile="../config/authentication.pl";
|
|
19 |
if (!is_file($conffile)) {
|
|
20 |
ende("authentication.pl nicht gefunden oder kein Leserecht.");
|
|
21 |
}
|
|
23 | 22 |
} |
24 | 23 |
require ("import_lib.php"); |
25 | 24 |
|
26 |
if (!anmelden()) ende(5);
|
|
25 |
if (!anmelden()) ende("Anmeldung fehlgeschlagen.");
|
|
27 | 26 |
|
28 | 27 |
/* get DB instance */ |
29 | 28 |
$db=$_SESSION["db"]; //new myDB($login); |
... | ... | |
32 | 31 |
/* just display page or do real import? */ |
33 | 32 |
if ($_POST["ok"]) { |
34 | 33 |
|
35 |
require ("parts_import.php"); |
|
36 |
|
|
37 |
/* display help */ |
|
38 |
if ($_POST["ok"]=="Hilfe") { |
|
39 |
echo "Importfelder:<br>"; |
|
40 |
echo "Feldname => Bedeutung<br>"; |
|
41 |
foreach($parts as $key=>$val) { |
|
42 |
echo "$key => $val<br>"; |
|
43 |
} |
|
44 |
echo "<br>Die erste Zeile enthält die Feldnamen der Daten in ihrer richtigen Reihenfolge<br>"; |
|
45 |
echo "Geben Sie das Trennzeichen der Datenspalten ein. Steuerzeichen können mit ihrem Dezimalwert geführt von einem "#" eingegebn werden (#11).<br><br>"; |
|
46 |
echo "Der "sellprice" kann um den eingegeben Wert geändert werden.<br><br>"; |
|
47 |
echo "Bei vorhandenen Artikelnummern (in der db), kann entweder ein Update auf den Preis (und Text) durchgeführt werden oder der Artikel mit anderer Artikelnummer eingefügt werden.<br><br>"; |
|
48 |
echo "Jeder Artikel muß einer Buchungsgruppe zugeordnet werden. "; |
|
49 |
echo "Dazu muß entweder in der Maske eine Standardbuchungsgruppe gewählt werden <br>"; |
|
50 |
echo "oder es wird ein gültiges Konto in 'income_accno_id' und 'expense_accno_id' eingegeben. "; |
|
51 |
echo "Das Programm versucht dann eine passende Buchungsgruppe zu finden."; |
|
52 |
exit(0); |
|
53 |
}; |
|
54 |
|
|
55 |
clearstatcache (); |
|
56 |
|
|
57 |
$test = $_POST["test"]; |
|
58 |
$lager = $_POST["lager"]; |
|
59 |
$TextUpd = $_POST["TextUpd"]; |
|
60 |
$trenner = ($_POST["trenner"])?$_POST["trenner"]:","; |
|
61 |
$trennzeichen = ($_POST["trennzeichen"])?$_POST["trennzeichen"]:""; |
|
62 |
$precision = $_POST["precision"]; |
|
63 |
$quotation = $_POST["quotation"]; |
|
64 |
$quottype = $_POST["quottype"]; |
|
65 |
$file = "parts"; |
|
66 |
|
|
67 |
/* no data? */ |
|
68 |
if (empty($_FILES["Datei"]["name"])) |
|
69 |
ende (2); |
|
70 |
|
|
71 |
/* copy file */ |
|
72 |
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) { |
|
73 |
echo "Upload von Datei fehlerhaft."; |
|
74 |
echo $_FILES["Datei"]["error"], "<br>"; |
|
75 |
ende (2); |
|
76 |
} |
|
77 |
|
|
78 |
/* ??? */ |
|
79 |
//if (!chkUsr($login)) |
|
80 |
// ende(4); |
|
81 |
|
|
82 |
/* ??? */ |
|
83 |
//if (!file_exists("../users/$login.conf")) |
|
84 |
// ende(3); |
|
85 |
|
|
86 |
/* check if file is really there */ |
|
87 |
if (!file_exists("$file.csv")) |
|
88 |
ende(3); |
|
89 |
|
|
90 |
/* ??? */ |
|
91 |
if (!$db->chkcol($file)) |
|
92 |
ende(6); |
|
93 |
|
|
94 |
|
|
95 |
/* first check all elements */ |
|
96 |
echo "Checking data:<br>"; |
|
97 |
$_test=$_POST; |
|
98 |
$_test["precision"]=-1; |
|
99 |
$_test["quotation"]=0; |
|
100 |
$_test["lager"]=$_POST["lager"]; |
|
101 |
$_test["lagerplatz"]=$_POST["lagerplatz"]; |
|
102 |
//$_test["shop"]="n"; |
|
103 |
//$_test["wgtrenner"]="!"; |
|
104 |
$err = import_parts($db, $file, $trenner, $trennzeichen, $parts, TRUE, FALSE, FALSE,$_test); |
|
105 |
echo "$err Errors found\n"; |
|
106 |
|
|
107 |
|
|
108 |
if ($err!=0) |
|
109 |
exit(0); |
|
110 |
|
|
111 |
/* just print data or insert it, if test is false */ |
|
112 |
import_parts($db, $file, $trenner, $trennzeichen, $parts, FALSE, !$test, TRUE,$_POST); |
|
34 |
require ("parts_import.php"); |
|
35 |
|
|
36 |
/* display help */ |
|
37 |
if ($_POST["ok"]=="Hilfe") { |
|
38 |
echo "Importfelder:<br>"; |
|
39 |
echo "Feldname => Bedeutung<br>"; |
|
40 |
foreach($parts as $key=>$val) { |
|
41 |
echo "$key => $val<br>"; |
|
42 |
} |
|
43 |
$header=implode(";",array_keys($parts)); |
|
44 |
echo $header; |
|
45 |
echo "<br><br>Die erste Zeile enthält die Feldnamen der Daten in ihrer richtigen Reihenfolge<br>"; |
|
46 |
echo "Geben Sie das Trennzeichen der Datenspalten ein. Steuerzeichen können mit ihrem Dezimalwert "; |
|
47 |
echo "geführt von einem "#" eingegebn werden (#11).<br><br>"; |
|
48 |
echo "Wird bei "Art" in der Maske "gemischt" gewählt, muss die Spalte "art" vor der Einheit stehen.<br><br>"; |
|
49 |
echo "Der "sellprice" kann um den eingegeben Wert geändert werden.<br><br>"; |
|
50 |
echo "Bei vorhandenen Artikelnummern (in der db), kann entweder ein Update auf den Preis (und Text) durchgeführt werden oder "; |
|
51 |
echo "der Artikel mit anderer Artikelnummer eingefügt werden.<br><br>"; |
|
52 |
echo "Jeder Artikel muß einer Buchungsgruppe zugeordnet werden. "; |
|
53 |
echo "Dazu muß entweder in der Maske eine Standardbuchungsgruppe gewählt werden <br>"; |
|
54 |
echo "oder es wird ein gültiges Konto in 'income_accno_id' und 'expense_accno_id' eingegeben. "; |
|
55 |
echo "Das Programm versucht dann eine passende Buchungsgruppe zu finden."; |
|
56 |
exit(0); |
|
57 |
}; |
|
58 |
|
|
59 |
clearstatcache (); |
|
60 |
|
|
61 |
$test = $_POST["test"]; |
|
62 |
$lager = $_POST["lager"]; |
|
63 |
$TextUpd = $_POST["TextUpd"]; |
|
64 |
$trenner = ($_POST["trenner"])?$_POST["trenner"]:","; |
|
65 |
$trennzeichen = ($_POST["trennzeichen"])?$_POST["trennzeichen"]:""; |
|
66 |
$precision = $_POST["precision"]; |
|
67 |
$quotation = $_POST["quotation"]; |
|
68 |
$quottype = $_POST["quottype"]; |
|
69 |
$file = "parts"; |
|
70 |
|
|
71 |
/* no data? */ |
|
72 |
if (empty($_FILES["Datei"]["name"])) |
|
73 |
ende ("Kein Datenfile angegeben"); |
|
74 |
|
|
75 |
/* copy file */ |
|
76 |
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file.".csv")) { |
|
77 |
ende ("Upload von Datei fehlerhaft.".$_FILES["Datei"]["error"]); |
|
78 |
} |
|
79 |
|
|
80 |
/* check if file is really there */ |
|
81 |
if (!file_exists("$file.csv") or filesize("$file.csv")==0) |
|
82 |
ende("Datenfile ($file.csv) nicht im Ordner gefunden oder leer"); |
|
83 |
|
|
84 |
/* Zu diesem Zeitpunkt wurde der Artikel Importiert */ |
|
85 |
if (!$db->chkcol($file)) |
|
86 |
ende("Importspalte konnte nicht angelegt werden"); |
|
87 |
|
|
88 |
/* first check all elements */ |
|
89 |
$_test=$_POST; |
|
90 |
$_test["precision"]=-1; |
|
91 |
$_test["quotation"]=0; |
|
92 |
$_test["lager"]=$_POST["lager"]; |
|
93 |
$_test["lagerplatz"]=$_POST["lagerplatz"]; |
|
94 |
|
|
95 |
/* just print data or insert it, if test is false */ |
|
96 |
import_parts($db, $file, $trenner, $trennzeichen, $parts, FALSE, !$test, $_POST["show"],$_POST); |
|
113 | 97 |
|
114 | 98 |
} else { |
115 |
$bugrus=getAllBG($db); |
|
116 |
$lagerplatz=getLager($db); |
|
99 |
$bugrus=getAllBG($db); |
|
117 | 100 |
?> |
118 | 101 |
|
119 | 102 |
<p class="listtop">Artikelimport für die ERP<p> |
... | ... | |
124 | 107 |
<table> |
125 | 108 |
<tr><td><input type="submit" name="ok" value="Hilfe"></td><td></td></tr> |
126 | 109 |
<tr><td>Trennzeichen</td><td> |
127 |
<input type="radio" name="trenner" value=";" checked>Semikolon
|
|
128 |
<input type="radio" name="trenner" value=",">Komma
|
|
129 |
<input type="radio" name="trenner" value="#9" checked>Tabulator
|
|
130 |
<input type="radio" name="trenner" value=" ">Leerzeichen
|
|
131 |
<input type="radio" name="trenner" value="other">
|
|
132 |
<input type="text" size="2" name="trennzeichen" value="">
|
|
110 |
<input type="radio" name="trenner" value=";" checked>Semikolon
|
|
111 |
<input type="radio" name="trenner" value=",">Komma
|
|
112 |
<input type="radio" name="trenner" value="#9" checked>Tabulator
|
|
113 |
<input type="radio" name="trenner" value=" ">Leerzeichen
|
|
114 |
<input type="radio" name="trenner" value="other">
|
|
115 |
<input type="text" size="2" name="trennzeichen" value="">
|
|
133 | 116 |
</td></tr> |
134 | 117 |
<tr><td>VK-Preis<br>Nachkomma:</td><td><input type="Radio" name="precision" value="0">0 |
135 |
<input type="Radio" name="precision" value="1">1
|
|
136 |
<input type="Radio" name="precision" value="2" checked>2
|
|
137 |
<input type="Radio" name="precision" value="3">3
|
|
138 |
<input type="Radio" name="precision" value="4">4
|
|
139 |
<input type="Radio" name="precision" value="5">5
|
|
140 |
</td></tr>
|
|
118 |
<input type="Radio" name="precision" value="1">1
|
|
119 |
<input type="Radio" name="precision" value="2" checked>2
|
|
120 |
<input type="Radio" name="precision" value="3">3
|
|
121 |
<input type="Radio" name="precision" value="4">4
|
|
122 |
<input type="Radio" name="precision" value="5">5
|
|
123 |
</td></tr>
|
|
141 | 124 |
<tr><td>VK-Preis<br>Aufschlag:</td><td><input type="text" name="quotation" size="5" value="0"> |
142 |
<input type="radio" name="quottype" value="P" checked>%
|
|
143 |
<input type="radio" name="quottype" value="A">Absolut</td></tr>
|
|
125 |
<input type="radio" name="quottype" value="P" checked>%
|
|
126 |
<input type="radio" name="quottype" value="A">Absolut</td></tr>
|
|
144 | 127 |
<tr><td>Vorhandene<br>Artikelnummer:</td><td><input type="radio" name="update" value="U" checked>Preis update durchführen<br> |
145 |
<input type="radio" name="update" value="I">mit neuer Nummer einfügen</td></tr> |
|
128 |
<input type="radio" name="update" value="I">mit neuer Nummer einfügen</td></tr> |
|
129 |
<tr><td>Kontollausgabe</td><td><input type="checkbox" name="show" value="1" checked>ja</td></tr> |
|
146 | 130 |
<tr><td>Test</td><td><input type="checkbox" name="test" value="1">ja</td></tr> |
147 | 131 |
<tr><td>Textupdate</td><td><input type="checkbox" name="TextUpd" value="1">ja</td></tr> |
148 | 132 |
<tr><td>Warengruppen<br>verbinder</td><td><input type="text" name="wgtrenner" value="!" size="3"></td></tr> |
149 |
<tr><td>Shopartikel</td><td><input type="radio" name="shop" value="t">ja <input type="radio" name="shop" value="n" checked>nein</td></tr>
|
|
133 |
<tr><td>Shopartikel</td><td><input type="radio" name="shop" value="t">ja <input type="radio" name="shop" value="f" checked>nein</td></tr>
|
|
150 | 134 |
<tr><td>Art</td><td><input type="Radio" name="ware" value="W" checked>Ware |
151 |
<input type="Radio" name="ware" value="D">Dienstleistung
|
|
152 |
<input type="Radio" name="ware" value="G">gemischt (Spalte 'art' vorhanden)</td></tr>
|
|
135 |
<input type="Radio" name="ware" value="D">Dienstleistung
|
|
136 |
<input type="Radio" name="ware" value="G">gemischt (Spalte 'art' vorhanden)</td></tr>
|
|
153 | 137 |
<tr><td>Default Bugru<br></td><td><select name="bugru"> |
154 |
<? if ($bugrus) foreach ($bugrus as $bg) { ?> |
|
155 |
<option value="<?= $bg["id"] ?>"><?= $bg["description"] ?> |
|
156 |
<? } ?> |
|
157 |
</select> |
|
158 |
<input type="radio" name="bugrufix" value="0">nie<br> |
|
159 |
<input type="radio" name="bugrufix" value="1" checked>für alle Artikel verwenden |
|
160 |
<input type="radio" name="bugrufix" value="2">für Artikel ohne passende Bugru |
|
161 |
</td></tr> |
|
162 |
<tr><td>Default Lager<br></td><td><select name="lager"> |
|
163 |
<? if ($lagerplatz) foreach ($lagerplatz as $lp) { ?> |
|
164 |
<option value="<?= $lp["id"] ?>"><?= $lp["ort"] ?>-<?= $lp["platz"] ?> |
|
165 |
<? } ?> |
|
166 |
</select> |
|
167 |
<input type="radio" name="lagerfix" value="1" checked>für alle Artikel verwenden |
|
168 |
<input type="radio" name="lagerfix" value="2">für Artikel ohne passendes Lager |
|
169 |
</td></tr> |
|
138 |
<? if ($bugrus) foreach ($bugrus as $bg) { ?> |
|
139 |
<option value="<?= $bg["id"] ?>"><?= $bg["description"]."\n" ?> |
|
140 |
<? } ?> |
|
141 |
</select> |
|
142 |
<input type="radio" name="bugrufix" value="0">nie<br> |
|
143 |
<input type="radio" name="bugrufix" value="1" checked>für alle Artikel verwenden |
|
144 |
<input type="radio" name="bugrufix" value="2">für Artikel ohne passende Bugru |
|
145 |
</td></tr> |
|
170 | 146 |
<tr><td>Daten</td><td><input type="file" name="Datei"></td></tr> |
171 | 147 |
<tr><td></td><td><input type="submit" name="ok" value="Import"></td></tr> |
172 | 148 |
</table> |
Auch abrufbar als: Unified diff
Code überarbeitet
Beispielimportdateien zugefügt