2 // $Id: confedit.php 2009/02/10 14:41:30 hli Exp $
3 if (!isset($_SERVER['PHP_AUTH_USER'])) {
4 Header("WWW-Authenticate: Basic realm='Configurations-Editor'");
5 Header("HTTP/1.0 401 Unauthorized");
6 echo "Sie müssen sich autentifizieren\n";
10 //Je Shop ein Conf-File == Multishop
12 if ($Shop != "" and file_exists ("conf$Shop.php")) {
13 require "conf$Shop.php";
14 $out = "Konfiguration für Shop $Shop gelesen";
16 //Singleshop oder noch kein Shop definiert
18 $out = "Standard-Konfiguration gelesen";
20 if ($_SERVER['PHP_AUTH_USER']<>$ERPftpuser || $_SERVER['PHP_AUTH_PW']<>$ERPftppwd) {
21 Header("WWW-Authenticate: Basic realm='My Realm'");
22 Header("HTTP/1.0 401 Unauthorized");
23 echo "Sie müssen sich autentifizieren\n";
30 include_once("error.php");
31 include_once("dblib.php");
32 $api = php_sapi_name();
33 if ( $api == 'cli' ) {
34 echo "Nur im Browser benutzen\n";
37 $err = new error($api);
39 $zeichen = array("","UTF-8","ISO-8859-1","ISO-8859-15","Windows-1252","ASCII");
40 function lager($sel,$db) {
42 $sql = "select w.description as lager,b.description as platz,b.id from ";
43 $sql .= "bin b left join warehouse w on w.id=b.warehouse_id ";
44 $sql .= "order by b.warehouse_id,b.id";
45 $bin=$db->getall($sql);
46 echo "\t<option value=-1 ".(($sel==-1)?'selected':'').">kein Lagerbestand\n";
47 echo "\t<option value=1 ".(($sel==1)?'selected':'').">Gesamtbestand\n";
48 if ($bin) foreach ($bin as $row) {
49 echo "\t<option value=".$row['id'];
50 if ($sel==$row['id']) echo " selected";
51 echo ">".$row['lager']." ".$row['platz']."\n";
54 function unit($sel,$db) {
56 $sql="select name from units order by sortkey";
57 $pgs=$db->getall($sql);
58 if ($sel=='') $sel=$pgs[0]['name'];
59 if ($pgs) foreach ($pgs as $row) {
60 echo "\t<option value=".$row['name'];
61 if ($sel==$row['name']) echo " selected";
62 echo ">".$row['name']."\n";
65 function pg($sel,$db) {
67 $sql="select id,pricegroup from pricegroup";
68 $pgs=$db->getall($sql);
69 echo "\t<option value=0";
70 if ($sel==0) echo " selected";
71 echo ">Standard VK\n";
72 if ($pgs) foreach ($pgs as $row) {
73 echo "\t<option value=".$row['id'];
74 if ($sel==$row['id']) echo " selected";
75 echo ">".$row['pricegroup']."\n";
78 function getTax($db) {
79 $sql = "SELECT BG.id AS bugru,T.rate,TK.startdate,C.taxkey_id, ";
80 $sql .= "(SELECT id FROM chart WHERE accno = T.taxnumber) AS tax_id, ";
81 $sql .= "BG.income_accno_id_0,BG.expense_accno_id_0 ";
82 $sql .= "FROM buchungsgruppen BG LEFT JOIN chart C ON BG.income_accno_id_0=C.id ";
83 $sql .= "LEFT JOIN taxkeys TK ON TK.chart_id=C.id ";
84 $sql .= "LEFT JOIN tax T ON T.id=TK.tax_id WHERE TK.startdate <= now()";
85 $rs = $db->getAll($sql);
86 if ($rs) foreach ($rs as $row) {
90 $data['startdate'] = $row['startdate'];
91 $data['rate'] = $row['rate']*100.0;
93 } else if ($TAX[$nr]['startdate'] < $row['startdate']) {
94 $TAX[$nr]["startdate"] = $row['startdate'];
95 $TAX[$nr]["rate"] = $row['rate']*100.0;
100 function fputsA($f,$key,$var,$bg=false) {
102 fputs($f,'$'.$key.'["ID"]=\''. $var['ID'].'\';'.$lf);
103 fputs($f,'$'.$key.'["NR"]=\''. $var['NR'].'\';'.$lf);
104 fputs($f,'$'.$key.'["Unit"]=\''. $var['Unit'].'\';'.$lf);
105 fputs($f,'$'.$key.'["TXT"]=\''. $var['TXT'].'\';'.$lf);
106 if ($bg) fputs($f,'$'.$key.'["BUGRU"]=\''. $var['BUGRU'].'\';'.$lf);
107 if ($bg) fputs($f,'$'.$key.'["TAX"]=\''. $var['TAX'].'\';'.$lf);
110 if ($_POST["ok"]=="sichern") {
111 foreach ($_POST as $key=>$val) {
115 if ( empty($ERPport) ) $ERPport = '5432';
116 if ( empty($SHOPport) ) $SHOPport = '3306';
119 $dbP = new mydb($ERPhost,$ERPdbname,$ERPuser,$ERPpass,$ERPport,'pgsql',$err,$debug);
122 echo "Keine Verbindung zur ERP<br>";
124 unset($divStd['ID']);
125 unset($divVerm['ID']);
126 unset($minder['ID']);
127 unset($versand['ID']);
129 unset($paypal['ID']);
130 unset($treuhand['ID']);
131 unset($ERPusr['ID']);
134 $sql="SELECT id,description,unit,buchungsgruppen_id FROM parts where partnumber = '%s'";
135 $rs=$dbP->getOne(sprintf($sql,$divStd['NR']));
136 $divStd['ID']=$rs['id'];
137 $divStd['Unit']=$rs['unit'];
138 $divStd['BUGRU']=$rs['buchungsgruppen_id'];
139 $divStd['TAX']=$tax[$rs['buchungsgruppen_id']]['rate'];
140 $divStd['TXT']=addslashes($rs['description']);
141 $rs=$dbP->getOne(sprintf($sql,$divVerm['NR']));
142 $divVerm['ID']=$rs['id'];
143 $divVerm['Unit']=$rs['unit'];
144 $divVerm['BUGRU']=$rs['buchungsgruppen_id'];
145 $divVerm['TAX']=$tax[$rs['buchungsgruppen_id']]['rate'];
146 $divVerm['TXT']=addslashes($rs['description']);
147 $rs=$dbP->getOne(sprintf($sql,$versandS['NR']));
148 $versandS['ID']=$rs['id'];
149 $versandS['Unit']=$rs['unit'];
150 $versandS['BUGRU']=$rs['buchungsgruppen_id'];
151 $versandS['TAX']=$tax[$rs['buchungsgruppen_id']]['rate'];
152 if ($versandS['TXT'] == '') $versandS['TXT']=addslashes($rs['description']);
153 $rs=$dbP->getOne(sprintf($sql,$versandV['NR']));
154 $versandV['ID']=$rs['id'];
155 $versandV['Unit']=$rs['unit'];
156 $versandV['BUGRU']=$rs['buchungsgruppen_id'];
157 $versandV['TAX']=$tax[$rs['buchungsgruppen_id']]['rate'];
158 if ($versandV['TXT'] == '') $versandV['TXT']=addslashes($rs['description']);
159 $rs=$dbP->getOne(sprintf($sql,$nachn['NR']));
160 $nachn['ID']=$rs['id'];
161 $nachn['Unit']=$rs['unit'];
162 $nachn['BUGRU']=$rs['buchungsgruppen_id'];
163 $nachn['TAX']=$tax[$rs['buchungsgruppen_id']]['rate'];
164 if ($nachn['TXT'] == '') $nachn['TXT']=addslashes($rs['description']);
165 $rs=$dbP->getOne(sprintf($sql,$minder['NR']));
166 $minder['ID']=$rs['id'];
167 $minder['Unit']=$rs['unit'];
168 $minder['BUGRU']=$rs['buchungsgruppen_id'];
169 $minder['TAX']=$tax[$rs['buchungsgruppen_id']]['rate'];
170 if ($minder['TXT'] == '') $minder['TXT']=addslashes($rs['description']);
171 $rs=$dbP->getOne(sprintf($sql,$paypal['NR']));
172 $paypal['ID']=$rs['id'];
173 $paypal['Unit']=$rs['unit'];
174 $paypal['BUGRU']=$rs['buchungsgruppen_id'];
175 $paypal['TAX']=$tax[$rs['buchungsgruppen_id']]['rate'];
176 if ($paypal['TXT'] == '') $paypal['TXT']=addslashes($rs['description']);
177 $rs=$dbP->getOne(sprintf($sql,$treuhand['NR']));
178 $treuhand['ID']=$rs['id'];
179 $treuhand['Unit']=$rs['unit'];
180 $treuhand['BUGRU']=$rs['buchungsgruppen_id'];
181 $treuhand['TAX']=$tax[$rs['buchungsgruppen_id']]['rate'];
182 if ($treuhand['TXT'] == '') $treuhand['TXT']=addslashes($rs['description']);
183 $rs=$dbP->getOne("select id from employee where login = '".$ERPusrName."'");
186 $dbM = new mydb($SHOPhost,$SHOPdbname,$SHOPuser,$SHOPpass,$SHOPport,'mysql',$err,$debug);
189 echo "Keine Verbindung zum Shop<br>";
192 if ($_POST["ok"]=="sichern") {
194 $f = @fopen("conf$Shop.php","w");
197 $d=date("Y/m/d H:i:s");
198 fputs($f,"<?php$lf// Verbindung zur ERP-db$lf");
199 fputs($f,'$debug=\''.$debug.'\';'.$lf);
200 fputs($f,'$ERPuser=\''.$ERPuser.'\';'.$lf);
201 fputs($f,'$ERPpass=\''.$ERPpass.'\';'.$lf);
202 fputs($f,'$ERPhost=\''.$ERPhost.'\';'.$lf);
203 fputs($f,'$ERPport=\''.$ERPport.'\';'.$lf);
204 fputs($f,'$ERPdbname=\''.$ERPdbname.'\';'.$lf);
205 fputs($f,'$codeLX=\''.$codeLX.'\';'.$lf);
206 fputs($f,'$mwstLX=\''.$mwstLX.'\';'.$lf);
207 fputs($f,'$ERPusrName=\''.$ERPusrName.'\';'.$lf);
208 fputs($f,'$ERPusrID=\''.$ERPusrID.'\';'.$lf);
209 fputs($f,'$ERPimgdir=\''.$ERPimgdir.'\';'.$lf);
210 fputs($f,'$maxSize=\''.$maxSize.'\';'.$lf);
211 fputs($f,'$ERPftphost=\''.$ERPftphost.'\';'.$lf);
212 fputs($f,'$ERPftpuser=\''.$ERPftpuser.'\';'.$lf);
213 fputs($f,'$ERPftppwd=\''.$ERPftppwd.'\';'.$lf);
214 fputs($f,'//Verbindung zur osCommerce-db'.$lf);
215 fputs($f,'$SHOPuser=\''.$SHOPuser.'\';'.$lf);
216 fputs($f,'$SHOPpass=\''.$SHOPpass.'\';'.$lf);
217 fputs($f,'$SHOPhost=\''.$SHOPhost.'\';'.$lf);
218 fputs($f,'$SHOPport=\''.$SHOPport.'\';'.$lf);
219 fputs($f,'$SHOPdbname=\''.$SHOPdbname.'\';'.$lf);
220 fputs($f,'$codeS=\''.$codeS.'\';'.$lf);
221 fputs($f,'$mwstS=\''.$mwstS.'\';'.$lf);
222 fputs($f,'$SHOPimgdir=\''.$SHOPimgdir.'\';'.$lf);
223 fputs($f,'$SHOPftphost=\''.$SHOPftphost.'\';'.$lf);
224 fputs($f,'$SHOPftpuser=\''.$SHOPftpuser.'\';'.$lf);
225 fputs($f,'$SHOPftppwd=\''.$SHOPftppwd.'\';'.$lf);
226 fputs($f,'$nopic=\''.$nopic.'\';'.$lf);
227 fputs($f,'$nopicerr=\''.$nopicerr.'\';'.$lf);
228 fputsA($f,'divStd',$divStd,true);
229 fputsA($f,'divVerm',$divVerm,true);
230 fputsA($f,'versandS',$versandS,true);
231 fputsA($f,'versandV',$versandV,true);
232 fputsA($f,'minder',$minder,true);
233 fputsA($f,'nachn',$nachn,true);
234 fputsA($f,'treuhand',$treuhand,true);
235 fputsA($f,'paypal',$paypal,true);
236 fputs($f,'$bgcol[1]=\'#ddddff\';'.$lf);
237 fputs($f,'$bgcol[2]=\'#ddffdd\';'.$lf);
238 fputs($f,'$preA=\''.$preA.'\';'.$lf);
239 fputs($f,'$preK=\''.$preK.'\';'.$lf);
240 fputs($f,'$auftrnr=\''.$auftrnr.'\';'.$lf);
241 //fputs($f,'$utftrans=\''.$utftrans.'\';'.$lf);
242 fputs($f,'$kdnum=\''.$kdnum.'\';'.$lf);
243 fputs($f,'$pricegroup=\''.$pricegroup.'\';'.$lf);
244 fputs($f,'$unit=\''.$unit.'\';'.$lf);
245 fputs($f,'$longtxt=\''.$longtxt.'\';'.$lf);
246 fputs($f,'$invbrne=\''.$invbrne.'\';'.$lf);
247 fputs($f,'$variantnr=\''.$variantnr.'\';'.$lf);
248 fputs($f,'$OEinsPart=\''.$OEinsPart.'\';'.$lf);
249 fputs($f,'$lager=\''.$lager.'\';'.$lf);
250 //fputs($f,'$showErr=true;'.$lf);
253 echo "Konfiguration conf$Shop.php gesichert.";
255 echo "Konfigurationsdatei (conf$Shop.php) konnte nicht geschrieben werden";
262 <table style="background-color:#cccccc" border="0">
263 <form name="ConfEdit" method="post" action="confedit.php">
264 <input type="hidden" name="Shop" value="<?= $Shop ?>">
265 <input type="hidden" name="divStd[ID]" value="<?= $divStd['ID'] ?>">
266 <input type="hidden" name="divVerm[ID]" value="<?= $divVerm['ID'] ?>">
267 <input type="hidden" name="minder[ID]" value="<?= $minder['ID'] ?>">
268 <input type="hidden" name="versandS[ID]" value="<?= $versandS['ID'] ?>">
269 <input type="hidden" name="versandV[ID]" value="<?= $versandV['ID'] ?>">
270 <input type="hidden" name="nachn[ID]" value="<?= $nachn['ID'] ?>">
271 <input type="hidden" name="paypal[ID]" value="<?= $paypal['ID'] ?>">
272 <input type="hidden" name="treuhand[ID]" value="<?= $treuhand['ID'] ?>">
273 <input type="hidden" name="ERPusr[ID]" value="<?= $ERPusr['ID'] ?>">
275 <tr><th>Daten</th><th>Lx-ERP</th><th><?php echo $Shop ?></th><th>Shop</th></tr>
278 <td colspan="2"><input type="text" name="ERPhost" size="25" value="<?= $ERPhost ?>"></td>
279 <td><input type="text" name="SHOPhost" size="25" value="<?= $SHOPhost ?>"></td>
283 <td colspan="2"><input type="text" name="ERPport" size="25" value="<?= $ERPport ?>"></td>
284 <td><input type="text" name="SHOPport" size="25" value="<?= $SHOPport ?>"></td>
288 <td colspan="2"><input type="text" name="ERPdbname" size="20" value="<?= $ERPdbname ?>"></td>
289 <td><input type="text" name="SHOPdbname" size="20" value="<?= $SHOPdbname ?>"></td>
292 <td>db-User Name</td>
293 <td colspan="2"><input type="text" name="ERPuser" size="15" value="<?= $ERPuser ?>"></td>
294 <td><input type="text" name="SHOPuser" size="15" value="<?= $SHOPuser ?>"></td>
298 <td colspan="2"><input type="text" name="ERPpass" size="15" value="<?= $ERPpass ?>"></td>
299 <td><input type="text" name="SHOPpass" size="15" value="<?= $SHOPpass ?>"></td>
303 <td colspan="2"><select name="codeLX">
304 <?php foreach($zeichen as $code) {
305 echo "<option value='".$code."'";
306 if ($code == $codeLX) echo " selected";
307 echo ">".$code."\n"; };
310 <td ><select name="codeS">
311 <?php foreach($zeichen as $code) {
312 echo "<option value='".$code."'";
313 if ($code == $codeS) echo " selected";
314 echo ">".$code."\n"; };
320 <td colspan="2"> <input type="radio" name="mwstLX" value="1" <?= ($mwstLX==1)?"checked":'' ?>> incl.
321 <input type="radio" name="mwstLX" value="0" <?= ($mwstLX<>1)?"checked":'' ?>> excl. MwSt</td>
322 <td><input type="radio" name="mwstS" value="1" <?= ($mwstS==1)?"checked":'' ?>> incl.
323 <input type="radio" name="mwstS" value="0" <?= ($mwstS<>1)?"checked":'' ?>> excl. MwSt</td>
327 <td colspan="2"><input type="text" name="ERPusrName" size="10" value="<?= $ERPusrName ?>">
328 <input type="checkbox" name="a1" <?= (empty($ERPusrID)?'':"checked") ?>></td>
333 <td colspan="2"><input type="text" name="ERPimgdir" size="30" value="<?= $ERPimgdir ?>"></td>
334 <td><input type="text" name="SHOPimgdir" size="30" value="<?= $SHOPimgdir ?>"></td>
337 <td>Platzhalterbild</td>
338 <td colspan="2"><input type="text" name="nopic" size="20" value="<?php echo $nopic; ?>">ohne Endung</td>
339 <td colspan="2"><input type="checkbox" value="1" name="nopicerr" <?= (empty($nopicerr)?'':"checked") ?>>nur bei fehlerhaftem Upload verwenden</td>
343 <td colspan="2"><input type="text" name="ERPftphost" size="20" value="<?= $ERPftphost ?>"></td>
344 <td><input type="text" name="SHOPftphost" size="20" value="<?= $SHOPftphost ?>"></td>
348 <td colspan="2"><input type="text" name="ERPftpuser" size="15" value="<?= $ERPftpuser ?>"></td>
349 <td><input type="text" name="SHOPftpuser" size="15" value="<?= $SHOPftpuser ?>"></td>
352 <td>FTP-User PWD</td>
353 <td colspan="2"><input type="text" name="ERPftppwd" size="15" value="<?= $ERPftppwd ?>"></td>
354 <td><input type="text" name="SHOPftppwd" size="15" value="<?= $SHOPftppwd ?>"></td>
357 <td>Nr Diverse Std-MwSt</td>
358 <td><input type="text" name="divStd[NR]" size="10" value="<?= $divStd['NR'] ?>">
359 <input type="checkbox" name="a1" <?= (empty($divStd['ID'])?'':"checked") ?>></td>
360 <td>Nr Diverse Verm-MwSt</td>
361 <td><input type="text" name="divVerm[NR]" size="10" value="<?= $divVerm['NR'] ?>">
362 <input type="checkbox" name="a1" <?= (empty($divVerm['ID'])?'':"checked") ?>></td>
365 <td>Nr Versand Std-MwSt</td>
366 <td><input type="text" name="versandS[NR]" size="10" value="<?= $versandS['NR'] ?>">
367 <input type="checkbox" name="a1" <?= (empty($versandS['ID'])?'':"checked") ?>></td>
369 <td><input type="text" name="versandS[TXT]" size="20" value="<?= $versandS['TXT'] ?>"><?= $versandS['TAX'] ?></td>
371 <td>Nr Versand Verm-MwSt</td>
372 <td><input type="text" name="versandV[NR]" size="10" value="<?= $versandV['NR'] ?>">
373 <input type="checkbox" name="a1" <?= (empty($versandV['ID'])?'':"checked") ?>></td>
375 <td><input type="text" name="versandV[TXT]" size="20" value="<?= $versandV['TXT'] ?>"><?= $versandV['TAX'] ?></td>
379 <td><input type="text" name="paypal[NR]" size="10" value="<?= $paypal['NR'] ?>">
380 <input type="checkbox" name="a1" <?= (empty($paypal['ID'])?'':"checked") ?>></td>
382 <td><input type="text" name="paypal[TXT]" size="20" value="<?= $paypal['TXT'] ?>"></td>
386 <td><input type="text" name="treuhand[NR]" size="10" value="<?= $treuhand['NR'] ?>">
387 <input type="checkbox" name="a1" <?= (empty($treuhand['ID'])?'':"checked") ?>></td>
389 <td><input type="text" name="treuhand[TXT]" size="20" value="<?= $treuhand['TXT'] ?>"></td>
392 <td>Nr Mindermenge</td>
393 <td><input type="text" name="minder[NR]" size="10" value="<?= $minder['NR'] ?>">
394 <input type="checkbox" name="a1" <?= (empty($minder['ID'])?'':"checked") ?>></td>
396 <td><input type="text" name="minder[TXT]" size="20" value="<?= $minder['TXT'] ?>"></td>
400 <td><input type="text" name="nachn[NR]" size="10" value="<?= $nachn['NR'] ?>">
401 <input type="checkbox" name="a1" <?= (empty($nachn['ID'])?'':"checked") ?>></td>
403 <td><input type="text" name="nachn[TXT]" size="20" value="<?= $nachn['TXT'] ?>"></td>
407 <td><select name="unit">
408 <? unit($unit,$dbP); ?>
411 <td><select name="pricegroup">
412 <? pg($pricegroup,$dbP); ?>
415 <td colspan="2">Auftragsnummern durch</td>
416 <td><input type="radio" name="auftrnr" value="1" <?= ($auftrnr==1)?"checked":'' ?>> LxO</td>
417 <td><input type="radio" name="auftrnr" value="0" <?= ($auftrnr<>1)?"checked":'' ?>> Shop</td>
420 <td colspan="2">Kundennummern durch</td>
421 <td><input type="radio" name="kdnum" value="1" <?= ($kdnum==1)?"checked":'' ?>> LxO</td>
422 <td><input type="radio" name="kdnum" value="0" <?= ($kdnum<>1)?"checked":'' ?>> Shop</td>
425 <td colspan="2">Nummernerweiterung</td>
426 <td>Auftrag<input type="text" name="preA" size="5" value="<?= $preA ?>"></td>
427 <td>Kunde<input type="text" name="preK" size="5" value="<?= $preK ?>"></td>
430 <td>Lagerbestand aus</td>
431 <td><select name="lager">
432 <? lager($lager,$dbP); ?>
438 <td colspan="3">Langbeschreibung aus Shop übernehmen</td>
439 <td><input type="radio" name="longtxt" value="1" <?= ($longtxt<>2)?"checked":'' ?>>Ja
440 <input type="radio" name="longtxt" value="2" <?= ($longtxt==2)?"checked":'' ?>>Nein</td>
444 <td colspan="3">LxO-Rechnungen sind Netto</td>
445 <td><input type="radio" name="invbrne" value="1" <?= ($invbrne<>2)?"checked":'' ?>>Ja
446 <input type="radio" name="invbrne" value="2" <?= ($invbrne==2)?"checked":'' ?>>Nein</td>
449 <td colspan="3">Varianten sind eigene Nummern in Lx (-n)</td>
450 <td><input type="radio" name="variantnr" value="1" <?= ($variantnr<>2)?"checked":'' ?>>Ja
451 <input type="radio" name="variantnr" value="2" <?= ($variantnr==2)?"checked":'' ?>>Nein</td>
454 <td colspan="3">Unbekannte Artikel beim Bestellimport anlegen</td>
455 <td><input type="radio" name="OEinsPart" value="1" <?= ($OEinsPart<>2)?"checked":'' ?>>Ja
456 <input type="radio" name="OEinsPart" value="2" <?= ($OEinsPart==2)?"checked":'' ?>>Nein</td>
460 <td>ein<input type="radio" name="debug" value="true" <?= ($debug=="true")?"checked":"" ?>>
461 aus<input type="radio" name="debug" value="false" <?= ($debug!="true")?"checked":"" ?>></td>
466 <td>Bildergrösse (byte)</td>
467 <td><input type="text" name="maxSize" size="10" value="<?= $maxSize ?>"></td>
472 <tr><td colspan="4" align="center"><input type="submit" name="ok" value="sichern"></td></tr>