--- /dev/null
+<?
+// Verbindung zur ERP-db
+$ERPuser="lxoffice";
+$ERPpass="geheim";
+$ERPhost="localhost";
+$ERPdbname="lxerp1";
+$ERPdns="pgsql://$ERPuser:$ERPpass@$ERPhost/$ERPdbname";
+$ERPusr["Name"]="demo";
+$ERPusr["ID"]="376";
+$ERPdir="tmp/shopartikel.csv";
+$ERPimgdir="/usr/lib/lx-office-erp";
+$maxSize="";
+$ERPftphost="localhost";
+$ERPftpuser="pepper";
+$ERPftppwd="pepper";
+//Verbindung zur osCommerce-db
+$SHOPuser="root";
+$SHOPpass="27123";
+$SHOPhost="localhost";
+$SHOPdbname="TestLocal";
+$SHOPdns="mysql://$SHOPuser:$SHOPpass@$SHOPhost/$SHOPdbname";
+$SHOPdir="tmp/shopartikel.csv";
+$SHOPimgdir="/var/www/TestLocal/shop/ProdukteBilder";
+$SHOPftphost="localhost";
+$SHOPftpuser="pepper";
+$SHOPftppwd="pepper";
+$div16["ID"]="391";
+$div07["ID"]="";
+$versand["ID"]="411";
+$nachn["ID"]="411";
+$minder["ID"]="391";
+$treuh["ID"]="391";
+$paypal["ID"]="391";
+$div16["NR"]="1002";
+$div07["NR"]="";
+$versand["NR"]="1003";
+$nachn["NR"]="1003";
+$minder["NR"]="1002";
+$treuh["NR"]="1002";
+$paypal["NR"]="1002";
+$div16["TXT"]="Diverse";
+$div07["TXT"]="";
+$versand["TXT"]="Versandkosten";
+$nachn["TXT"]="Versandkosten";
+$minder["TXT"]="Diverse";
+$treuh["TXT"]="Diverse";
+$paypal["TXT"]="Diverse";
+$bgcol[1]="#ddddff";
+$bgcol[2]="#ddffdd";
+$preA="P_";
+$preK="P_";
+$auftrnr="1";
+$kdnum="1";
+$pricegroup="382";
+$showErr="true";
+?>
\ No newline at end of file
--- /dev/null
+<?
+// $Id: confedit.php,v 0.10 2006/02/06 11:34:30 hli Exp $
+if (!isset($_SERVER['PHP_AUTH_USER'])) {
+ Header("WWW-Authenticate: Basic realm=\"Configurations-Editor\"");
+ Header("HTTP/1.0 401 Unauthorized");
+ echo "Sie müssen sich autentifizieren\n";
+ exit;
+} else {
+ include "conf.php";
+ require_once "DB.php";
+ $db=@DB::connect($ERPdns);
+ if (!DB::isError($db)) {
+ $sql="select id,pricegroup from pricegroup";
+ $pgs=$db->getall($sql);
+ }
+ function pg($sel) {
+ global $pgs;
+ echo "\t<option value=0";
+ if ($sel==0) echo " selected";
+ echo ">Standard VK\n";
+ if ($pgs) foreach ($pgs as $row) {
+ echo "\t<option value=".$row[0];
+ if ($sel==$row[0]) echo " selected";
+ echo ">".$row[1]."\n";
+ }
+ }
+ if ($_SERVER['PHP_AUTH_USER']<>$ERPftpuser || $_SERVER['PHP_AUTH_PW']<>$ERPftppwd) {
+ Header("WWW-Authenticate: Basic realm=\"My Realm\"");
+ Header("HTTP/1.0 401 Unauthorized");
+ echo "Sie müssen sich autentifizieren\n";
+ exit;
+ }
+ if ($_POST["ok"]=="sichern") {
+ $ok=true;
+ $dsnP="pgsql://".$_POST["ERPuser"].":".$_POST["ERPpass"]."@".$_POST["ERPhost"]."/".$_POST["ERPdbname"];
+ $dbP=DB::connect($dsnP);
+ if (DB::isError($dbP)||!$dbP) {
+ $ok=false;
+ echo "Keine Verbindung zur ERP<br>";
+ echo $dbP->userinfo;
+ }
+ else {
+ $rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["div16NR"]."'");
+ $_POST["div16ID"]=$rs[0][0];
+ $div16txt=$rs[0][1];
+ $rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["div07NR"]."'");
+ $_POST["div07ID"]=$rs[0][0];
+ $div07txt=$rs[0][1];
+ $rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["versandNR"]."'");
+ $_POST["versandID"]=$rs[0][0];
+ $versandtxt=$rs[0][1];
+ $rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["nachnNR"]."'");
+ $_POST["nachnID"]=$rs[0][0];
+ $nachntxt=$rs[0][1];
+ $rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["minderNR"]."'");
+ $_POST["minderID"]=$rs[0][0];
+ $mindertxt=$rs[0][1];
+ $rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["paypalNR"]."'");
+ $_POST["paypalID"]=$rs[0][0];
+ $paypaltxt=$rs[0][1];
+ $rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["treuhNR"]."'");
+ $_POST["treuhID"]=$rs[0][0];
+ $treuhtxt=$rs[0][1];
+ $rs=$dbP->getall("select id from employee where login = '".$_POST["ERPusrN"]."'");
+ $_POST["ERPusrID"]=$rs[0][0];
+ }
+ $dsnM="mysql://".$_POST["SHOPuser"].":".$_POST["SHOPpass"]."@".$_POST["SHOPhost"]."/".$_POST["SHOPdbname"];
+ $dbM=DB::connect($dsnM);
+ if (DB::isError($dbM)||!$dbM) {
+ $ok=false;
+ echo "Keine Verbindung zum Shop<br>";
+ echo $dbM->userinfo;
+ };
+ if (ok) {
+ $f=fopen("conf.php","w");
+ $v="1.5";
+ $d=date("Y/m/d H:i:s");
+ fputs($f,"<?\n// Verbindung zur ERP-db\n");
+ fputs($f,"\$ERPuser=\"".$_POST["ERPuser"]."\";\n");
+ fputs($f,"\$ERPpass=\"".$_POST["ERPpass"]."\";\n");
+ fputs($f,"\$ERPhost=\"".$_POST["ERPhost"]."\";\n");
+ fputs($f,"\$ERPdbname=\"".$_POST["ERPdbname"]."\";\n");
+ fputs($f,"\$ERPdns=\"pgsql://\$ERPuser:\$ERPpass@\$ERPhost/\$ERPdbname\";\n");
+ fputs($f,"\$ERPusr[\"Name\"]=\"".$_POST["ERPusrN"]."\";\n");
+ fputs($f,"\$ERPusr[\"ID\"]=\"".$_POST["ERPusrID"]."\";\n");
+ fputs($f,"\$ERPdir=\"".$_POST["ERPdir"]."\";\n");
+ fputs($f,"\$ERPimgdir=\"".$_POST["ERPimgdir"]."\";\n");
+ fputs($f,"\$maxSize=\"".$_POST["maxSize"]."\";\n");
+ fputs($f,"\$ERPftphost=\"".$_POST["ERPftphost"]."\";\n");
+ fputs($f,"\$ERPftpuser=\"".$_POST["ERPftpuser"]."\";\n");
+ fputs($f,"\$ERPftppwd=\"".$_POST["ERPftppwd"]."\";\n");
+ fputs($f,"//Verbindung zur osCommerce-db\n");
+ fputs($f,"\$SHOPuser=\"".$_POST["SHOPuser"]."\";\n");
+ fputs($f,"\$SHOPpass=\"".$_POST["SHOPpass"]."\";\n");
+ fputs($f,"\$SHOPhost=\"".$_POST["SHOPhost"]."\";\n");
+ fputs($f,"\$SHOPdbname=\"".$_POST["SHOPdbname"]."\";\n");
+ fputs($f,"\$SHOPdns=\"mysql://\$SHOPuser:\$SHOPpass@\$SHOPhost/\$SHOPdbname\";\n");
+ fputs($f,"\$SHOPdir=\"".$_POST["SHOPdir"]."\";\n");
+ fputs($f,"\$SHOPimgdir=\"".$_POST["SHOPimgdir"]."\";\n");
+ fputs($f,"\$SHOPftphost=\"".$_POST["SHOPftphost"]."\";\n");
+ fputs($f,"\$SHOPftpuser=\"".$_POST["SHOPftpuser"]."\";\n");
+ fputs($f,"\$SHOPftppwd=\"".$_POST["SHOPftppwd"]."\";\n");
+ fputs($f,"\$div16[\"ID\"]=\"".$_POST["div16ID"]."\";\n");
+ fputs($f,"\$div07[\"ID\"]=\"".$_POST["div07ID"]."\";\n");
+ fputs($f,"\$versand[\"ID\"]=\"".$_POST["versandID"]."\";\n");
+ fputs($f,"\$nachn[\"ID\"]=\"".$_POST["nachnID"]."\";\n");
+ fputs($f,"\$minder[\"ID\"]=\"".$_POST["minderID"]."\";\n");
+ fputs($f,"\$treuh[\"ID\"]=\"".$_POST["treuhID"]."\";\n");
+ fputs($f,"\$paypal[\"ID\"]=\"".$_POST["paypalID"]."\";\n");
+ fputs($f,"\$div16[\"NR\"]=\"".$_POST["div16NR"]."\";\n");
+ fputs($f,"\$div07[\"NR\"]=\"".$_POST["div07NR"]."\";\n");
+ fputs($f,"\$versand[\"NR\"]=\"".$_POST["versandNR"]."\";\n");
+ fputs($f,"\$nachn[\"NR\"]=\"".$_POST["nachnNR"]."\";\n");
+ fputs($f,"\$minder[\"NR\"]=\"".$_POST["minderNR"]."\";\n");
+ fputs($f,"\$treuh[\"NR\"]=\"".$_POST["treuhNR"]."\";\n");
+ fputs($f,"\$paypal[\"NR\"]=\"".$_POST["paypalNR"]."\";\n");
+ fputs($f,"\$div16[\"TXT\"]=\"".$div16txt."\";\n");
+ fputs($f,"\$div07[\"TXT\"]=\"".$div07txt."\";\n");
+ fputs($f,"\$versand[\"TXT\"]=\"".$versandtxt."\";\n");
+ fputs($f,"\$nachn[\"TXT\"]=\"".$nachntxt."\";\n");
+ fputs($f,"\$minder[\"TXT\"]=\"".$mindertxt."\";\n");
+ fputs($f,"\$treuh[\"TXT\"]=\"".$treuhtxt."\";\n");
+ fputs($f,"\$paypal[\"TXT\"]=\"".$paypaltxt."\";\n");
+ fputs($f,"\$bgcol[1]=\"#ddddff\";\n");
+ fputs($f,"\$bgcol[2]=\"#ddffdd\";\n");
+ fputs($f,"\$preA=\"".$_POST["preA"]."\";\n");
+ fputs($f,"\$preK=\"".$_POST["preK"]."\";\n");
+ fputs($f,"\$auftrnr=\"".$_POST["auftrnr"]."\";\n");
+ fputs($f,"\$kdnum=\"".$_POST["kdnum"]."\";\n");
+ fputs($f,"\$pricegroup=\"".$_POST["pricegroup"]."\";\n");
+ fputs($f,"\$showErr=\"true\";\n");
+ fputs($f,"?>");
+ fclose($f);
+ require "conf.php";
+ } else {
+ $ERPuser=$_POST["ERPuser"];
+ $ERPpass=$_POST["ERPpass"];
+ $ERPhost=$_POST["ERPhost"];
+ $ERPdbname=$_POST["ERPdbname"];
+ $ERPusrN=$_POST["ERPusrN"];
+ $ERPdir=$_POST["ERPdir"];
+ $ERPimgdir=$_POST["ERPimgdir"];
+ $maxSize=$_POST["maxSize"];
+ $ERPftphost=$_POST["ERPftphost"];
+ $ERPftpuser=$_POST["ERPftpuser"];
+ $ERPftppwd=$_POST["ERPftppwd"];
+ $SHOPuser=$_POST["SHOPuser"];
+ $SHOPpass=$_POST["SHOPpass"];
+ $SHOPhost=$_POST["SHOPhost"];
+ $SHOPdbname=$_POST["SHOPdbname"];
+ $SHOPdir=$_POST["SHOPdir"];
+ $SHOPimgdir=$_POST["SHOPimgdir"];
+ $SHOPftphost=$_POST["SHOPftphost"];
+ $SHOPftpuser=$_POST["SHOPftpuser"];
+ $SHOPftppwd=$_POST["SHOPftppwd"];
+ $div16NR=$_POST["div16NR"];
+ $div07NR=$_POST["div07NR"];
+ $versandNR=$_POST["versandNR"];
+ $nachnNR=$_POST["nachnNR"];
+ $treuhNR=$_POST["treuhNR"];
+ $minderNR=$_POST["minderNR"];
+ $paypalNR=$_POST["paypalNR"];
+ $preA=$_POST["preA"];
+ $preK=$_POST["preK"];
+ $kdnum=$_POST["kdnum"];
+ $pricegroup=$_POST["pricegroup"];
+ $auftrnr=$_POST["auftrnr"];
+ }
+ } else {
+ require "conf.php";
+ }
+ ?>
+<html>
+<body>
+<center>
+<table style="background-color:#cccccc" border="0">
+<form name="ConfEdit" method="post" action="confedit.php">
+<input type="hidden" name="div16ID" value="<?= $div16["ID"] ?>">
+<input type="hidden" name="div07ID" value="<?= $div07["ID"] ?>">
+<input type="hidden" name="minderID" value="<?= $minder["ID"] ?>">
+<input type="hidden" name="versandID" value="<?= $versand["ID"] ?>">
+<input type="hidden" name="nachnID" value="<?= $nachn["ID"] ?>">
+<input type="hidden" name="paypalID" value="<?= $paypal["ID"] ?>">
+<input type="hidden" name="treuhID" value="<?= $treuh["ID"] ?>">
+<input type="hidden" name="ERPusrID" value="<?= $ERPusr["ID"] ?>">
+
+<tr><th>Daten</th><th>Lx-ERP</th><th></th><th>Shop</th></tr>
+<tr>
+ <td>db-Host</td>
+ <td colspan="2"><input type="text" name="ERPhost" size="25" value="<?= $ERPhost ?>"></td>
+ <td><input type="text" name="SHOPhost" size="25" value="<?= $SHOPhost ?>"></td>
+</tr>
+<tr>
+ <td>Database</td>
+ <td colspan="2"><input type="text" name="ERPdbname" size="20" value="<?= $ERPdbname ?>"></td>
+ <td><input type="text" name="SHOPdbname" size="20" value="<?= $SHOPdbname ?>"></td>
+</tr>
+<tr>
+ <td>db-User Name</td>
+ <td colspan="2"><input type="text" name="ERPuser" size="15" value="<?= $ERPuser ?>"></td>
+ <td><input type="text" name="SHOPuser" size="15" value="<?= $SHOPuser ?>"></td>
+</tr>
+<tr>
+ <td>db-User PWD</td>
+ <td colspan="2"><input type="text" name="ERPpass" size="15" value="<?= $ERPpass ?>"></td>
+ <td><input type="text" name="SHOPpass" size="15" value="<?= $SHOPpass ?>"></td>
+</tr>
+<tr>
+ <td>User-ID</td>
+ <td colspan="2"><input type="text" name="ERPusrN" size="10" value="<?= $ERPusr["Name"] ?>">
+ <input type="checkbox" name="a1" <?= (empty($ERPusr["ID"])?"":"checked") ?>></td>
+ <td></td>
+</tr>
+<tr>
+ <td>CSV-Dir</td>
+ <td colspan="2"><input type="text" name="ERPdir" size="30" value="<?= $ERPdir ?>"></td>
+ <td><input type="text" name="SHOPdir" size="30" value="<?= $SHOPdir ?>"></td>
+</tr>
+<tr>
+ <td>Image-Dir</td>
+ <td colspan="2"><input type="text" name="ERPimgdir" size="30" value="<?= $ERPimgdir ?>"></td>
+ <td><input type="text" name="SHOPimgdir" size="30" value="<?= $SHOPimgdir ?>"></td>
+</tr>
+<tr>
+ <td>FTP-Host</td>
+ <td colspan="2"><input type="text" name="ERPftphost" size="20" value="<?= $ERPftphost ?>"></td>
+ <td><input type="text" name="SHOPftphost" size="20" value="<?= $SHOPftphost ?>"></td>
+</tr>
+<tr>
+ <td>FTP-User</td>
+ <td colspan="2"><input type="text" name="ERPftpuser" size="15" value="<?= $ERPftpuser ?>"></td>
+ <td><input type="text" name="SHOPftpuser" size="15" value="<?= $SHOPftpuser ?>"></td>
+</tr>
+<tr>
+ <td>FTP-User PWD</td>
+ <td colspan="2"><input type="text" name="ERPftppwd" size="15" value="<?= $ERPftppwd ?>"></td>
+ <td><input type="text" name="SHOPftppwd" size="15" value="<?= $SHOPftppwd ?>"></td>
+</tr>
+<tr>
+ <td>ID Diverse 16%</td>
+ <td><input type="text" name="div16NR" size="10" value="<?= $div16["NR"] ?>">
+ <input type="checkbox" name="a1" <?= (empty($div16["ID"])?"":"checked") ?>></td>
+ <td>ID Diverse 7%</td>
+ <td><input type="text" name="div07NR" size="10" value="<?= $div07["NR"] ?>">
+ <input type="checkbox" name="a1" <?= (empty($div07["ID"])?"":"checked") ?>></td>
+</tr>
+<tr>
+ <td>ID Versand</td>
+ <td><input type="text" name="versandNR" size="10" value="<?= $versand["NR"] ?>">
+ <input type="checkbox" name="a1" <?= (empty($versand["ID"])?"":"checked") ?>></td>
+ <td>ID Nachname</td>
+ <td><input type="text" name="nachnNR" size="10" value="<?= $nachn["NR"] ?>">
+ <input type="checkbox" name="a1" <?= (empty($nachn["ID"])?"":"checked") ?>></td>
+</tr>
+<tr>
+ <td>ID Paypal</td>
+ <td><input type="text" name="paypalNR" size="10" value="<?= $paypal["NR"] ?>">
+ <input type="checkbox" name="a1" <?= (empty($paypal["ID"])?"":"checked") ?>></td>
+ <td>ID Treuhand</td>
+ <td><input type="text" name="treuhNR" size="10" value="<?= $treuh["NR"] ?>">
+ <input type="checkbox" name="a1" <?= (empty($treuh["ID"])?"":"checked") ?>></td>
+</tr>
+<tr>
+ <td>ID Mindermenge</td>
+ <td><input type="text" name="minderNR" size="10" value="<?= $minder["NR"] ?>">
+ <input type="checkbox" name="a1" <?= (empty($minder["ID"])?"":"checked") ?>></td>
+ <td>Preisgruppe</td>
+ <td><select name="pricegroup">
+<? pg($pricegroup); ?>
+ </select></td>
+</tr>
+<tr>
+ <td colspan="2">Auftragsnummern durch</td>
+ <td><input type="radio" name="auftrnr" value="1" <?= ($auftrnr==1)?"checked":"" ?>> LxO</td>
+ <td><input type="radio" name="auftrnr" value="0" <?= ($auftrnr<>1)?"checked":"" ?>> Shop</td>
+</tr>
+<tr>
+ <td colspan="2">Kundennummern durch</td>
+ <td><input type="radio" name="kdnum" value="1" <?= ($kdnum==1)?"checked":"" ?>> LxO</td>
+ <td><input type="radio" name="kdnum" value="0" <?= ($kdnum<>1)?"checked":"" ?>> Shop</td>
+</tr>
+<tr>
+ <td colspan="2">Nummernerweiterung</td>
+ <td>Auftrag<input type="text" name="preA" size="5" value="<?= $preA ?>"></td>
+ <td>Kunde<input type="text" name="preK" size="5" value="<?= $preK ?>"></td>
+</tr>
+<!--tr>
+ <td>Bildergrösse (byte)</td>
+ <td><input type="text" name="maxSize" size="10" value="<?= $maxSize ?>"></td>
+ <td></td>
+</tr-->
+
+
+
+
+<tr><td colspan="4" align="center"><input type="submit" name="ok" value="sichern"></td></tr>
+</form>
+</table>
+</center>
+</body>
+</html>
+<? } ?>
--- /dev/null
+<?
+// $Id: diff.php,v 1.1 2004/12/17 13:50:15 hli Exp $
+require_once "DB.php";
+require_once "conf.php";
+if (!$db) {
+ $db=DB::connect($SHOPdns);
+ if (!$db) dbFehler("",$db->getDebugInfo());
+ if (DB::isError($db)) {
+ dbFehler("",$db->getDebugInfo());
+ die ($db->getDebugInfo());
+ };
+ $db2=DB::connect($ERPdns);
+ if (!$db2) dbFehler("",$db2->getDebugInfo());
+ if (DB::isError($db2)) {
+ dbFehler("",$db2->getDebugInfo());
+ die ($db2->getDebugInfo());
+ };
+}
+if ($_POST["ok"]) {
+ $sql="select Kategorie_ID from kategorien where Unterkategorie_von = '@PhPepperShop@'";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $no=$rs[0]["Kategorie_ID"];
+ foreach($_POST as $key=>$val) {
+ if ($key=="ok") continue;
+ if ($key=="alle") continue;
+ $sql="update artikel_kategorie set FK_Kategorie_ID=$no where FK_Artikel_ID=$val";
+ echo "$key ";
+ if ($db->query($sql)) { echo "deaktiviert<br>"; }
+ else { echo "konnte nicht deaktiviert werden<br>"; };
+ }
+} else {
+$sql="select Kategorie_ID from kategorien where Unterkategorie_von = '@PhPepperShop@'";
+$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+if ($rs) {
+ $no="K.FK_Kategorie_ID<>".$rs[0]["Kategorie_ID"];
+} else {
+ $no="1";
+}
+$sql="select partnumber from parts where shop='1' order by partnumber";
+$erp=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+if ($erp) foreach ($erp as $zeile) { $arE[]=$zeile["partnumber"]; };
+$sql="select Name,Artikel_ID,Artikel_NR from artikel A left join artikel_kategorie K on A.Artikel_ID=K.FK_Artikel_ID where $no";
+$shop=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+if ($shop) foreach ($shop as $zeile) {
+ $arS[]=$zeile["Artikel_NR"];
+ $arID[$zeile["Artikel_NR"]]=array("id"=>$zeile["Artikel_ID"],"name"=>$zeile["Name"]);
+}
+$result=@array_diff($arS,$arE);
+if ($result) {
+?>
+<html>
+<head><title>Artikelpflege</title>
+<script language="JavaScript">
+<!--
+ function sel() {
+ val=document.doppel.alle.checked;
+ cnt=document.doppel.length;
+ for (i=0; i<cnt; i++) {
+ document.doppel.elements[i].checked=val;
+ }
+ }
+//-->
+</script>
+</head>
+<body>
+Folgende Artikel sind in der ERP nicht mehr als Shopartikel markiert.<br>
+Markieren Sie die Artikel, die deaktiviert werden sollen.<br>
+<form name='doppel' method='post' action='diff.php'>
+<table>
+<?
+foreach ($result as $data) {
+ echo "\t<tr><td><input type='checkbox' name='".$data."' value='".$arID[$data]["id"]."'></td><td>".$data."</td><td>".$arID[$data]["name"]."</td></tr>\n";
+}
+?>
+ <tr><td><input type='checkbox' name='alle' value='1' onClick="sel()"></td><td></td><td>alle Artikel</td></tr>
+ <tr><td colspan='3'><input type='submit' name='ok' value='ok'></td></tr>
+</table>
+<form>
+<? }
+ else { "Artikelbestand identisch"; };
+} ?>
+<a href="trans.php">zurück</a>
--- /dev/null
+<?
+/***************************************************************
+* $Id: erpexport.php 2006/02/06 13:50:30 hli Exp $
+*Author: Holger Lindemann
+*Copyright: (c) 2004 Lx-System
+*License: non free
+*eMail: info@lx-system.de
+*Version: 1.0.1
+*ERP: Lx-Office ERP
+***************************************************************/
+?>
+<html>
+ <head><title>Lx-ERP Export der Shopartikel</title>
+ <link type="text/css" REL="stylesheet" HREF="css/main.css"></link>
+ <script language="JavaScript">
+ <!--
+ function pepper() {
+ document.fld.PN.value="Artikel-Nr"; document.fld.partnumber.checked=true;
+ document.fld.BEZ.value="Name"; document.fld.desctiption.checked=true;
+ document.fld.GEWICHT.value="Gewicht"; document.fld.weight.checked=true;
+ document.fld.MWST.value="MwSt-Satz"; document.fld.rate.checked=true;
+ document.fld.VK.value="Preis"; document.fld.sellprice.checked=true;
+ document.fld.PG.value="Kategorien"; document.fld.partsgroup.checked=true;
+ document.fld.BESCHR.value="Beschreibung"; document.fld.notes.checked=true;
+ document.fld.PG.value="Lagerbestand"; document.fld.onhand.checked=true;
+ document.fld.encl.value="";
+ document.fld.deli.value=";";
+ document.fld.crln.value="\\n";
+ document.fld.head.checked=true;
+ document.fld.shop.value="pepper";
+ }
+ //-->
+ </script>
+<body>
+
+<?php
+require_once "DB.php";
+require_once "conf.php";
+
+$db=DB::connect($ERPdns);
+if (!$db) dbFehler("",$db->getDebugInfo());
+if (DB::isError($db)) {
+ dbFehler("",$db->getDebugInfo());
+ die ($db->getDebugInfo());
+};
+/****************************************************
+* dbFehler
+* in: sql,err = string
+* out:
+* Fehlermeldungen ausgeben
+*****************************************************/
+function dbFehler($sql,$err) {
+global $showErr;
+ if ($showErr)
+ echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
+}
+
+function shopartikel() {
+global $db;
+ $sql ="SELECT P.partnumber,P.description,P.unit,P.weight,t.rate,P.sellprice,P.listprice,P.priceupdate,PG.partsgroup,P.notes,P.image FROM ";
+ $sql.="parts P left join partsgroup PG on PG.id=P.partsgroup_id ";
+ $sql.="left join chart c on c.id = P.income_accno_id ";
+ $sql.="left join tax T on T.taxkey=C.taxkey_id ";
+ $sql.="where shop = 't'";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ return $rs;
+}
+if ($_POST["export"]) {
+ $data=shopartikel();
+ $delim=($_POST["deli"])?$_POST["deli"]:",";
+ if (get_magic_quotes_gpc()) {
+ $crln = stripslashes($_POST["crln"]);
+ }
+ $crln = str_replace('\\r', "\015", $crln);
+ $crln = str_replace('\\n', "\012", $crln);
+ $crln = str_replace('\\t', "\011", $crln);
+ $encl=$_POST["encl"];
+ $i=0;
+ $f=fopen($ERPdir,"w");
+ if ($_POST["partnumber"]) {$header.=$_POST["PN"].$delim; };
+ if ($_POST["desctiption"]) {$header.=$_POST["BEZ"].$delim; };
+ if ($_POST["unit"]) {$header.=$_POST["EINHEIT"].$delim; };
+ if ($_POST["weight"]) {$header.=$_POST["GEWICHT"].$delim; };
+ if ($_POST["onhand"]) {$header.=$_POST["LAGER"].$delim; };
+ if ($_POST["rate"]) {$header.=$_POST["MWST"].$delim; };
+ if ($_POST["sellprice"]) {$header.=$_POST["VK"].$delim; };
+ if ($_POST["listprice"]) {$header.=$_POST["EK"].$delim; };
+ if ($_POST["priceupdate"]) {$header.=$_POST["PDATE"].$delim; };
+ if ($_POST["partsgroup"]) {$header.=$_POST["PG"].$delim; };
+ if ($_POST["notes"]) {$header.=$_POST["BESCHR"].$delim; };
+ if ($_POST["image"]) {$header.=$_POST["IMAGE"].$delim; };
+ $header=substr($header,0,-1);
+?>
+<table class="liste">
+<!-- BEGIN Artikel -->
+<?
+function downloadImage($image,$name) {
+global $ERPftphost,$ERPftpuser,$ERPftppwd,$ERPimgdir, $maxSize, $iconSize;
+ $conn_id = ftp_connect($ERPftphost);
+ ftp_login($conn_id,$ERPftpuser,$ERPftppwd);
+ $src=$ERPimgdir."/".$image;
+ $typ=substr($image,strrpos($image,"."));
+ echo "tmp/".$name."_gr$typ $src";
+ $upload=ftp_get($conn_id,"tmp/".$name."_gr$typ","$src",FTP_BINARY);
+ ftp_quit($conn_id);
+ if (!$upload) { echo "Ftp download war fehlerhaft!"; return false; };
+ echo "convert -resize $iconSize tmp/".$name."_gr$typ tmp/".$name."_kl$typ";
+ exec("convert -resize $iconSize tmp/".$name."_gr$typ tmp/".$name."_kl$typ",$aus,$rc);
+ print_r($aus); echo "!$rc!";
+}
+ $i=0;
+ $f=fopen($ERPdir,"w");
+ if ($_POST["head"]) fputs($f,$header.$crln);
+ foreach($data as $zeile) {
+ $file=""; $html="";
+ if ($_POST["shop"]=="pepper") {
+ if (preg_match("/^\[.*\].*/",$zeile["partsgroup"])) { $PG=$zeile["partsgroup"]; }
+ else { $PG="[".$zeile["partsgroup"]."]"; };
+ $mwst=$zeile["rate"]*100;
+ } else if ($_POST["shop"]=="oscomm") {
+ $mwst=sprintf("%01.4f",($zeile["rate"]*100));
+ $PG=$zeile["partsgroup"];
+ } else {
+ $PG=$zeile["partsgroup"];
+ $mwst=$zeile["rate"]*100;
+ };
+ $LineCol = $bgcol[$i%2+1];
+ if ($_POST["partnumber"]) {$file.=$encl.$zeile["partnumber"].$encl.$delim; $html.="<td>".$zeile["partnumber"]."</td>";};
+ if ($_POST["desctiption"]) {$file.=$encl.strtr($zeile["description"],chr(13).chr(10)," ").$encl.$delim; $html.="<td>".$zeile["description"]."</td>";};
+ if ($_POST["unit"]) {$file.=$encl.$zeile["unit"].$encl.$delim; $html.="<td>".$zeile["unit"]."</td>";};
+ if ($_POST["onhand"]) {$file.=$encl.$zeile["onhand"].$encl.$delim; $html.="<td>".$zeile["onhand"]."</td>";};
+ if ($_POST["weight"]) {$file.=$encl.$zeile["weight"].$encl.$delim; $html.="<td>".$zeile["weight"]."</td>";};
+ if ($_POST["rate"]) {$file.=$encl.$mwst.$encl.$delim; $html.="<td>".$mwst."</td>";};
+ if ($_POST["sellprice"]) {$file.=$encl.(sprintf("%02.2f",$zeile["sellprice"])).$encl.$delim; $html.="<td>".(sprintf("%02.2f",$zeile["sellprice"]))."</td>";};
+ if ($_POST["listprice"]) {$file.=$encl.(sprintf("%02.2f",$zeile["listprice"])).$encl.$delim; $html.="<td>".(sprintf("%02.2f",$zeile["listprice"]))."</td>";};
+ if ($_POST["priceupdate"]) {$file.=$encl.$zeile["priceupdate"].$encl.$delim; $html.="<td>".$zeile["priceupdate"]."</td>";};
+ if ($_POST["partsgroup"]) {$file.=$encl.$PG.$encl.$delim; $html.="<td>".$zeile["partsgroup"]."</td>";};
+ if ($_POST["notes"]) {$file.=$encl.strtr($zeile["notes"],chr(13).chr(10)," ").$encl.$delim; $html.="<td>".$zeile["notes"]."</td>";};
+ if ($_POST["image"]) {$file.=$encl.$zeile["image"].$encl.$delim; $html.="<td>".$zeile["image"]."</td>";};
+ $i++;
+ fputs($f,substr($file,0,-1).$crln);
+ if ($zeile["image"] && $_POST["image"]) { downloadImage($zeile["image"],$zeile["partnumber"]); }
+ if ($_POST["show"]) {
+?>
+ <tr class="smal" onMouseover="this.bgColor='#FF0000';" onMouseout="this.bgColor='<?= $LineCol ?>';" bgcolor="<?= $LineCol ?>">
+ <?= $html ?>
+ </tr>
+<? }
+ }
+?>
+<!-- END Artikel -->
+</table>
+Anzahl der Artikel: <?= $i ?><br>
+Export am : <?= date("d.m.Y : H:i") ?><br>
+download <a href="tmp/shopartikel.csv">Exportfile</a><br><hr>
+<?
+ fclose($f);
+} // if ($export)
+?>
+Export der Shopartikel aus Lx-ERP <br>
+Mögliche Felder
+<form name="fld" action="erpexport.php" method="post">
+<input type="hidden" name="shop" value="">
+<table>
+ <tr>
+ <td><input type="checkbox" name="partnumber" value="1">Artikelnummer</td>
+ <td><input type="checkbox" name="desctiption" value="1">Bezeichnung</td>
+ <td><input type="checkbox" name="unit" value="1">Einheit</td>
+ <td><input type="checkbox" name="weight" value="1">Gewicht</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="PN" size="23"></td>
+ <td><input type="text" name="BEZ" size="23"></td>
+ <td><input type="text" name="EINHEIT" size="23"></td>
+ <td><input type="text" name="GEWICHT" size="23"></td>
+ </tr>
+ <tr><td colspan=5></td></tr>
+ <tr>
+ <td><input type="checkbox" name="sellprice" value="1">Verkaufspreis</td>
+ <td><input type="checkbox" name="listprice" value="1">Listenpreis</td>
+ <td><input type="checkbox" name="onhand" value="1">Lagerbestand</td>
+ <td><input type="checkbox" name="rate" value="1">MwSt</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="VK" size="23"></td>
+ <td><input type="text" name="EK" size="23"></td>
+ <td><input type="text" name="LAGER" size="23"></td>
+ <td><input type="text" name="MWST" size="23"></td>
+ </tr>
+ <tr><td colspan=5></td></tr>
+ <tr>
+ <td><input type="checkbox" name="partsgroup" value="1">Gruppe</td>
+ <td><input type="checkbox" name="notes" value="1">Beschreibung</td>
+ <td><input type="checkbox" name="image" value="1">Bild</td>
+ <td><input type="checkbox" name="show" value="1" checked>HTML-Anzeige</td>
+ </tr>
+ <tr>
+ <td><input type="text" name="PG" size="23"></td>
+ <td><input type="text" name="BESCHR" size="23"></td>
+ <td><input type="text" name="IMAGE" size="23"></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>Feldtrenner <input type="text" name="deli" size="2" value=","></td>
+ <td>Feldumrahmung <input type="text" name="encl" size="2" value="""></td>
+ <td>Zeilenende <input type="text" name="crln" size="2" value="\n"></td>
+ <td><input type="checkbox" name="head" value="1" checked>Headline</td>
+ </tr>
+ <tr>
+ <td colspan=5><input type="submit" name="export" value="Export"> <input type="button" name="pep" value="Peppershop" onClick="pepper()"> <input type="button" name="osc" value="osCommerce" onClick="oscomm()"></td>
+ </tr>
+</table>
+<a href="trans.php">zurück</a>
+</form>
+</body>
+</html>
--- /dev/null
+<?
+/***************************************************************
+*Author: Holger Lindemann
+*Copyright: (c) 2004 Lx-System
+*License: non free
+*eMail: info@lx-system.de
+*Version: 1.0.1
+*Shop: PHPeppershop 1.5
+*ERP: Lx-Office ERP
+***************************************************************/
+// -----------------------------------------------------------------------
+// Damit jedes andere Modul ueberpruefen kann ob dieses hier schon "included" ist
+// wird folgende Vairable auf true gesetzt (Name = Ext. Modulname + Dateiname ohne .php)
+$erp_export_erp_export = true;
+
+?>
+<html>
+ <head><title>Lx-ERP Export der Shopartikel</title>
+ <link type="text/css" REL="stylesheet" HREF="css/main.css"></link>
+ <script language="JavaScript">
+ <!--
+ function pepper() {
+ }
+ //-->
+ </script>
+<body>
+
+<?php
+$inip=get_cfg_var("include_path");
+ini_set("include_path",$inip.":/usr/share/pear/:.");
+
+require_once "DB.php";
+require_once "conf.php";
+
+$db=DB::connect($SHOPdns);
+if (!$db) dbFehler("",$db->getDebugInfo());
+if (DB::isError($db)) {
+ dbFehler("",$db->getDebugInfo());
+ die ($db->getDebugInfo());
+};
+$db2=DB::connect($ERPdns);
+if (!$db2) dbFehler("",$db2->getDebugInfo());
+if (DB::isError($db2)) {
+ dbFehler("",$db2->getDebugInfo());
+ die ($db2->getDebugInfo());
+};
+/****************************************************
+* dbFehler
+* in: sql,err = string
+* out:
+* Fehlermeldungen ausgeben
+*****************************************************/
+function dbFehler($sql,$err) {
+global $showErr;
+ if ($showErr)
+ echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
+}
+function checkBestellung($status) {
+global $db;
+ if ($status=="B") { $where="";} // B = alle Bestellungeb, N = neue, Y = alte
+ else { $where="where Bestellung_bezahlt = '$status'";}
+ $sql="select * from bestellung $where order by Datum";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ return (count($rs)>0)?count($rs):false;
+}
+function getBestellKunde($BID) {
+global $db;
+ $sql="select * from kunde left join bestellung_kunde on Kunden_ID=FK_Kunden_ID where FK_Bestellungs_ID=$BID";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ return $rs[0]["Kunden_Nr"];
+}
+function sonderkosten($transID,$data,$id,$f) {
+global $db2,$versand,$nachn,$minder,$treuh,$paypal;
+ $sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
+ $sql.=$transID.",".${$id}["ID"].",'".${$id}["TXT"]."',1,".$data.",'mal',0,0)";
+ fputs($f,"$transID,".${$id}["ID"].",'".${$id}["TXT"]."',1,$data\n");
+ if (!$db2->query($sql)) { return false; }
+ else { return true; };
+}
+function insBestArtikel($zeile,$transID) {
+global $db,$db2,$div07,$div16,$f,
+ $versandID,$nachnID,$minderID,$treuhID,$paypalID;
+ $BID=$zeile["Bestellungs_ID"];
+ $sql ="select * from artikel left join artikel_bestellung on Artikel_ID=FK_Artikel_ID ";
+ $sql.="left join bestellung on Bestellungs_ID=FK_Bestellungs_ID where Bestellungs_ID=$BID";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $ok=true;
+ foreach ($rs as $zeile) {
+ $sql="select * from parts where partnumber='".$zeile["Artikel_Nr"]."'";
+ $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ( $rs2[0]["id"]) {$artID=$rs2[0]["id"]; }
+ else { $artID=($zeile["MwSt_Satz"]=="7")?$div07["ID"]:$div16["ID"]; };
+ //$preis=round($zeile["Preis"]/($zeile["MwSt_Satz"]+100)*100,2);
+ $preis=$zeile["Preis"];
+ $notes=$zeile["Artikelname"];
+ $vari=split(chr(254),$zeile["Variation"]);
+ if ($vari) { for($cnt=0; $cnt<count($vari); $cnt++) {
+ $notes.="\n".$vari[$cnt];
+ $cnt++;
+ $preis+=trim($vari[$cnt]) * $zeile["Anzahl"];
+ }
+ };
+ $opts=split(chr(254),$zeile["Optionen"]);
+ if ($opts) { for($cnt=0; $cnt<count($opts); $cnt++) {
+ $notes.="\n".$opts[$cnt];
+ $cnt++;
+ $preis+=trim($opts[$cnt]) * $zeile["Anzahl"];
+ }
+ }
+ $sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
+ $sql.=$transID.",".$artID.",'".$notes."',".$zeile["Anzahl"].",".$preis.",'Stck',0,0)";
+ if (!$db2->query($sql)) { $ok=false; break; };
+ fputs($f,$transID.",".$artID.",'".$zeile["Artikelname"]."',".$zeile["Anzahl"].",".$preis."\n");
+ echo "-".$artID." ".$zeile["Anzahl"]." x ".$preis." ".$zeile["Artikelname"]."<br>";
+ }
+ if ($zeile["Versandkosten"]) {
+ $rc=sonderkosten($transID,$zeile["Versandkosten"],"versand",$f);
+ }
+ if ($zeile["Nachnamebetrag"]) {
+ $rc=sonderkosten($transID,$zeile["Nachnamebetrag"],"nachn",$f);
+ }
+ if ($zeile["Mindermengenzuschlag"]) {
+ $rc=sonderkosten($transID,$zeile["Mindermengenzuschlag"],"minder",$f);
+ }
+ if ($zeile["Treuhandkosten"]) {
+ $rc=sonderkosten($transID,$zeile["Treuhandkosten"],"treuh",$f);
+ }
+ if ($zeile["Paypalkosten"]) {
+ $rc=sonderkosten($transID,$zeile["Paypalkosten"],"paypal",$f);
+ }
+ if ($ok) {
+ $sql="update bestellung set Bestellung_bezahlt='Y' WHERE Bestellungs_ID =$BID";
+ $rc=$db->query($sql);
+ fputs($f,"ok\n");
+ return true;
+ } else {
+ $sql="delete from orderitems where trans_id=$transID";
+ $rc=$db->query($sql);
+ $sql="delete from oe where id=$transID";
+ $rc=$db->query($sql);
+ fputs($f,"Fehler (insBestArtikel)!!!!\n");
+ return false;
+ }
+}
+function getBestellung_() {
+global $db,$db2,$ERPusr,$f;
+ $sql="select * from bestellung where Bestellung_bezahlt='N' order by Bestellungs_ID";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $ok=true;
+ foreach ($rs as $zeile) {
+ $kdnr=getBestellKunde($zeile["Bestellungs_ID"]);
+ $newID=uniqid (rand());
+ $sql="insert into oe (notes) values ('$newID')";
+ $rc=$db2->query($sql);
+ $sql="select * from oe where notes = '$newID'";
+ $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ $Bezahlung=$zeile["Bezahlungsart"];
+ if ($Bezahlung=="Lastschrift") {
+ $sql="select * from kunde where Kunden_Nr=$kdnr";
+ $kd=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $Bezahlung.="\nKontoinhaber: ".$kd[0]["kontoinhaber"]."\n";
+ $Bezahlung.="Bankname: ".$kd[0]["bankname"]."\n";
+ $Bezahlung.="Blz: ".$kd[0]["blz"]."\n";
+ $Bezahlung.="KontoNr: ".$kd[0]["kontonummer"];
+ }
+ $sql ="update oe set ordnumber=".$zeile["Bestellungs_ID"].", transdate='".$zeile["Datum"]."', intnotes='".$zeile["Anmerkung"];
+ $sql.="', customer_id=$kdnr, amount=".($zeile["Rechnungsbetrag"]+$zeile["MwSt"]).", netamount=".$zeile["Rechnungsbetrag"];
+ $sql.=", reqdate='".$zeile["Datum"]."', notes='$Bezahlung', taxincluded='f', curr='EUR',employee_id=".$ERPusr["ID"].", vendor_id=0 ";
+ $sql.="where id=".$rs2[0]["id"];
+ $rc=$db2->query($sql);
+ fputs($f,"ordnumber=".$zeile["Bestellungs_ID"].", transdate='".$zeile["Datum"]."', customer_id=$kdnr, amount=".($zeile["Rechnungsbetrag"]+$zeile["MwSt"]).", notes=".$zeile["Bezahlungsart"]."\n");
+ echo $rs2[0]["id"]."<br>";
+ if (!insBestArtikel($zeile,$rs2[0]["id"])) { $ok=false; break; };
+ }
+ return $ok;
+}
+function chkKdData($data) {
+global $db2;
+ $sql="select * from customer where id = ".$data["Kunden_Nr"];
+ $rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ($rs[0]["zipcode"]<>$data["Plz"]) $set.="zipcode='".$data["Plz"]."',";
+ if ($rs[0]["city"]<>$data["Ort"]) $set.="city='".$data["Ort"]."',";
+ if ($rs[0]["land"]<>$data["Land"]) $set.="land='".$data["Land"]."',";
+ if ($rs[0]["phone"]<>$data["Tel"])$set.="phone='".$data["Tel"]."',";
+ if ($rs[0]["fax"]<>$data["Fax"]) $set.="fax='".$data["Fax"]."',";
+ if ($rs[0]["email"]<>$data["Email"])$set.="email='".$data["Email"]."',";
+ if ($rs[0]["notes"]<>$data["Beschreibung"])$set.="notes='".$data["Beschreibung"]."',";
+ if ($data["Firma"]) {
+ if ($rs[0]["name"]<>$data["Firma"]) $set.="set name='".$data["Firma"]."',";
+ if ($rs[0]["name2"]<>$data["Anrede"]." ".$data["Vorname"]." ".$data["Nachname"]) $set.="name2='".$data["Anrede"]." ".$data["Vorname"]." ".$data["Nachname"]."',";
+ } else {
+ if ($rs[0]["name"]<>$data["Nachname"].", ".$data["Vorname"]) $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',";
+ }
+ if ($data["Strasse"]) {
+ if ($rs[0]["street"]<>$data["Strasse"]) $set.="street='".$data["Strasse"]."',";
+ } else if ($data["Postfach"]) {
+ if ($rs[0]["street"]<>$data["Postfach"]) $set.="street='".$data["Postfach"]."',";
+ };
+ if ($set) {
+ $sql="update customer set ".substr($set,0,-1)." where id=".$rs[0]["id"];
+ $rc=$db2->query($sql);
+ }
+}
+function insKdData($data) {
+global $db2;
+ $newID=$data["Kunden_ID"];
+ $sql="insert into customer (name) values ('$newID')";
+ $rc=$db2->query($sql);
+ $sql="select * from customer where name = '$newID'";
+ $rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ($data["Firma"]) { $set.="set name='".$data["Firma"]."',name2='".$data["Anrede"]." ".$data["Vorname"]." ".$data["Nachname"]."',"; }
+ else { $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',"; }
+ if ($data["Strasse"]) { $set.="street='".$data["Strasse"]."',"; }
+ else if ($data["Postfach"]) { $set.="street='".$data["Postfach"]."',"; };
+ $set.="zipcode='".$data["Plz"]."',";
+ $set.="city='".$data["Ort"]."',";
+ $set.="land='".$data["Land"]."',";
+ $set.="phone='".$data["Tel"]."',";
+ $set.="fax='".$data["Fax"]."',";
+ $set.="email='".$data["Email"]."',";
+ $set.="notes='".$data["Beschreibung"]."',";
+ $set.="taxincluded='f' ";
+ $sql="update customer ".$set;
+ $sql.="where id=".$rs[0]["id"];
+ $rc=$db2->query($sql);
+ return $rs[0]["id"];
+}
+function checkKunde() {
+global $db,$f;
+ $sql="select * from kunde left join bestellung_kunde on FK_Kunden_ID=Kunden_ID left join bestellung on Bestellungs_ID=FK_Bestellungs_ID where Bestellung_bezahlt='N'";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $ok=true;
+ $anzahl=count($rs);
+ $neu=0; $old=0;
+ foreach ($rs as $zeile) {
+ if ($zeile["Kunden_Nr"]>0) {
+ chkKdData($zeile);
+ $old++;
+ } else {
+ $zeile["Kunden_Nr"]=insKdData($zeile);
+ if ($zeile["Kunden_Nr"]>0) {
+ $sql="update kunde set Kunden_Nr='".$zeile["Kunden_Nr"]."' where k_ID=".$zeile["k_ID"];
+ $rc=$db->query($sql);
+ } else {
+ $ok=false; break;
+ }
+ $neu++;
+ }
+ fputs($f,$zeile["Nachname"]." ".$zeile["Firma"]."\n");
+ fputs($f,"\n----------------------------------------\n\n");
+ }
+ return ($ok)?array($anzahl,$neu,$old):false;
+}
+
+function savedata($str) {
+global $f;
+ foreach ($str as $val) {
+ $str.=$val.",";
+ }
+ fputs($f,substr($str,0,-1)."\n");
+}
+
+$f=fopen("./module/export_to_erp/tmp/".date("y-m-dH:i").".shop","w");
+$ok=checkBestellung("N");
+if ($ok) {
+ echo "Es liegen $ok Bestellungen vor. <br>";
+ fputs($f,"Es liegen $ok Bestellungen vor. \n");
+ $ok=checkKunde();
+ if ($ok) {
+ echo $ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).<br>";
+ fputs($f,$ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).\n");
+ $ok=getBestellung_();
+ if ($ok) { echo "Daten transferiert!"; fputs($f,"Daten transferiert!\n");}
+ else { echo "Fehler (Bestellungen)! ! ! "; fputs($f,"Fehler (Bestellungen)! ! !\n");};
+ } else {
+ echo "Fehler (Kunden)! ! ! "; fputs($f,"Fehler (Kunden)! ! !\n");
+ }
+} else { echo "Keine Bestellungen!<br>"; fputs($f,"keine Bestellungen\n");};
+
+fclose($f);
+
+if ($backlink == 6) {
+ echo "<button type='button' onClick='self.location.href=\"./module_admin_aufruf.php?darstellen=6\"'>Zurück zur Moduladministration</button>";
+}
+else {
+ echo "<button type='button' onClick='self.location.href=\"./module_admin_aufruf.php?darstellen=1&".urlencode($window_source)."=".urlencode($previous_selected_module)."\"'>Zurück zur Modulverwaltung</button>";
+}
+
+?>
+</body>
+</html>
--- /dev/null
+<?php
+// Filename: initialize_module.php
+//
+// Modul: Externes PhPepperShopmodul: log_viewer
+//
+// Autoren: José Fontanil & Reto Glanzmann
+//
+// Zweck: Definition des Log-Viewer Moduls
+//
+// Sicherheitsstatus: *** ADMIN ***
+//
+// Version: 1.5\r
+//
+// CVS-Version / Datum: $Id: initialize_module.php,v 1.1 2004/06/29 08:47:16 hli Exp $ $Dl: 26.05.04 11:20:43$
+//
+// -----------------------------------------------------------------------
+// PhPepperShop Shopsystem
+// Copyright (C) 2001-2004 Jose Fontanil, Reto Glanzmann
+//
+// Lizenz
+// ======
+//
+// Die verbindliche PhPepperShop Lizenz ist in folgender
+// Datei definiert: PhPepperShop_license.txt
+// -----------------------------------------------------------------------
+// API Version der hier verwendeten PhPepperShop Modulschnittstelle:
+$pps_module_api = '1.0';
+
+// Informationen zu externen PhPepperShop Modulen:
+// ===============================================
+// Module bestehen meistens aus zwei Verzeichnissen: {shopdir}/shop/module/modul_name
+// und {shopdir}/shop/Admin/module/modul_name. Im Admin-Modulverzeichnis muss mindestens
+// diese Datei (initialize_module.php) vorhanden sein. Es gibt auch reine Administrations-
+// module, welche nur Dateien im Admin-Unterverzeichnis haben und keine Dateien im kunden-
+// seitigen Verzeichnis benoetigen.
+// - Ein Modul kann aber ohne weiteres auch eigene Unterverzeichnisse besitzen, sowie auch
+// Submodule haben.
+// - Damit Module Daten persistent speichern koennen, duerfen sie waehrend der Installation
+// eigene Tabellen erstellen und bestehende um eigene Attribute erweitern. Bei einer De-
+// installation werden diese Datenbankerweiterungen wieder entfernt.
+// - User-Security Scripte befinden sich in {shopdir}/shop/module/modul_name,
+// die Admin-Security-Scripts befinden sich im Admin-Pendant.
+// - Module koenne (zumindest im Moment) noch keine eigenen Interfaces haben.
+// - Module koennen weitere Module als Voraussetzung angeben.
+
+// Definition der Variablen:
+// =========================
+// Die weiter unten definierten Variablen dienen der Beschreibung des Moduls. Diese muss
+// sehr ausfuehrlich sein, damit das automatisierte Installations- und Deinstallationsscript
+// durchlaufen kann. Nomenklatur:
+// x.) Bezeichnung : Leitet eine weitere Definition ein. x ist eine Laufnummer
+// ! Beschreibung : Beschreibung umschreibt Hinweise zum Thema der Bezeichnung
+// --> Einschraenkung : Mit --> werden ZWINGEND ZU BEFOLGENDE Einschraenkungen der Bezeichnung genannt
+
+// --------------------------------------------------------------------------------------
+// ******************************* DEFINITION DES MODULS *******************************
+// --------------------------------------------------------------------------------------
+
+// 1.) Name des Moduls (entspricht dem Verzeichnisname des Moduls)
+// --> Der Name eines externen PhPepperShop Moduls darf hoechstens 40 Zeichen lang sein.
+// --> Der Name muss mindestens 3 Zeichen lang sein.
+// --> Er darf NUR aus alphanummerischen Zeichen und dem Underscore Zeichen (_) bestehen.
+// --> Dieser Name ist gleichzeitig auch der Name des Verzeichnisses des Moduls.
+$moduldef['modulname'] = 'export_to_erp';
+
+// 2.) Bezeichnung des Moduls
+// ! Dies ist die Bezeichnung des Moduls und unterliegt somit weniger Restriktionen als der Modulname
+// --> Der Name darf hoechstens 40 Zeichen lang sein
+// --> Der Name muss mindestens 3 Zeichen lang sein.
+$moduldef['modulbezeichnung'] = 'ERP Export';
+
+// 3.) Versionschecknummern
+// ! Diese Nummern definieren die zu verwendende PhPepperShop Versionen. Die Versionisierung
+// ist wie folgt: Die erste und zweite Nummer (durch Punkt getrennt) ergeben ein Release.
+// Jedes unterstuetzte Release muss explizit angegeben werden. Die dritte (durch einen
+// Punkt getrennte Nummer (eigentlich ein String), definiert Versionen des Releases. Alle
+// Versionen eines Releases sind kompatibel, es sei denn man definiert auch die Versions-
+// Nummer, dann sind alle aelteren Versionen des angegebenen Releases inkompatibel.
+// Bsp. 1.4;1.5 = Das Modul ist kompatibel zu den Releases 1.4 und 1.5. Dies schliesst auch
+// alle Versionen der beiden Releases mit ein: 1.4.003, 1.4.004, 1.5.1, ...
+// Bsp. 1.4.005;1.5 = Hier sind alle Versionen von 1.4 mit und nach 1.4.005 kompatibel und
+// alle Versionen von 1.5.
+// ! Achtung: Man sollte keine zukuenftigen Releases angeben!
+// --> Einzelne Versionen via Strichpunkt getrennt eingeben.
+$moduldef['versionschecknummern'] = '1.4.008;1.5';
+
+// 4.) Kurzbeschreibung
+// ! Formatierungen sollen via HTML-Tags eingegeben werden.
+$moduldef['kurzbeschreibung'] = 'Eportiert Kundendaten und Bestellungen für Lx-Office ERP.
+ Neukunden werden in der ERP angelegt und die ERP-KdNr in Kundendaten eingepflegt,
+ bei Bestandskunden werden die Kundendaten abgeglichen.
+ Das Feld "Bestellung_bezahlt" ist der Merker für neue Bestellungen.
+ ';
+
+// 5.) Weiterfuehrender Link
+// ! Wenn dieser (optionale) Link angegeben ist, so kann der Shopadmin hier weitere Infos zum Modul holen.
+// --> Das Schema muss vor der URL angegeben werden (Schema = http:// oder https://, ...)
+$moduldef['weitere_infos_link'] = 'http://www.lx-office.org/';
+
+// 6.) Version dieses Moduls
+$moduldef['modulversion'] = '0.3';
+
+// 7.) Releasedatum dieser Modulversion
+// --> Format: TT.MM.JJJJ
+$moduldef['releasedatum'] = '17.12.2004';
+
+// 8.) Informationen zu den Entwicklern
+// ! Beispiel: José Fontanil <fontajos@phpeppershop.com>. Strings in <> werden als E-Mail angezeigt.
+$moduldef['entwickler_infos'] = 'Holger Lindemann, Lx-System';
+
+// 9.) Ist Submodul von
+// ! Hier kann man den Modulnamen (nicht die Modulbezeichnung!) des Hauptmoduls angeben, falls dieses
+// Modul hier ein Submodul des Hauptmoduls ist.
+// --> Der Name eines externen PhPepperShop Moduls darf hoechstens 40 Zeichen lang sein.
+// --> Der Name muss mindestens 3 Zeichen lang sein.
+// --> Er darf nur aus alphanummerischen Zeichen und dem Underscore Zeichen (_) bestehen.
+// --> Dieser Name ist gleichzeitig auch der Name des Verzeichnisses des HAUPTmoduls.
+$moduldef['submodule_of'] = '';
+
+// 10.) Fingerprint
+// ! Im Moment noch nicht benutzt - Spaeter wird hier ein MD5 Digest hinterlegbar sein, welcher dem
+// Shopadministrator erlaubt die Integritaet eines Moduls zu ueberpruefen.
+// --> MD5 Digest (32 Chars Laenge, Hexadezimales Alphabet)
+$moduldef['fingerprint'] = '32fedef6229faab095a47718bac5d666';
+
+// 11.) Unterstuetzte Locales (Sprachen und optional Laender) - dient (vorerst) nur zur Anzeige fuer den Shopadmin
+// --> Format: ISO-639-1 fuer alleinstehende Sprachen (Bsp. de;en;fr;sp;...)
+// --> Format: ISO-639-2 fuer Sprachen inkl. Laender (Bsp. de_CH;de_DE;en_GB;en_US)
+// --> Wenn das Modul weder Sprach-, noch Laenderabhaengig ist kann all angegeben werden.
+// --> Die einzelnen Angaben koennen Strichpunkt separiert eingegeben werden. ISO-639-1 und -2 koennen gemixt werden.
+$moduldef['locales'] = 'all';
+
+// 12.) Interfaces, bei welchen sich das Modul registrieren soll
+// ! Dies ist ein etwas komplexerer Eingabetyp - es ist ein mehrdimensionaler Array - mehr nicht.
+// ! Pro Interface, bei welchem sich das Modul registrieren will, sind vier Angaben noetig:
+// (1) Interface_ID, (2) Datei, worin sich die auszufuehrende Funktion befindet,
+// (3) Name der auszufuehrenden Funktion, (4) Filtertyp
+// --> Format: array('i_id'=>'w','file'=>'x','func'=>'y','filter'=>'z')
+// --> w = Interface_ID, Format: positive Integerzahl (max. Digits == 11)
+// --> x = Dateiname, Format: Dateiname.Extension (kein Pfad)
+// --> y = Funktionsname, Format: Name der Funktion ohne Klammern mit Argumenten
+// --> z = Filtertyp, Format: one_way oder filter
+// Registrierung beim ersten Interface:
+$moduldef['interfaces'] = array();
+
+// 13.) Eigene Tabellen, welche angelegt werden sollen
+// ! Hier werden die eigens fuer dieses Modul zu erstellenden Tabellen angegeben
+// ! Wenn keine Tabellen erstellt werden muessen, einfach leerer Array definieren
+// --> Achtung: Eine Tabelle muss mindestens EIN Attribut besitzen, sonst wird sie nicht angelegt.
+// --> Format: array('table_name'=>'x','table_beschreibung'=>'y','attribute'=>z)
+// --> x = Name der Tabelle: MySQL Restriktionen (max. 64 Zeichen, keine Sonderzeichen, ...)
+// --> y = Beschreibung der Tabelle: Alphanummerische Zeichen, Kurzbeschrieb des Zwecks
+// --> z = Die Attribute der Tabelle, Format:
+// array('name'=>a,'typ'=>b,'laenge'=>c,'zusatz'=>d,'null'=>e,'default'=>f,'extra'=>g,
+// 'primary'=>h,'index'=>i,'unique'=>j,'volltext'=>k,'beschreibung'=>l)
+// --> a = Name des Attributs: (Alphanummerische Zeichen, siehe reservierte Woerter von MySQL)
+// --> b = Typ: Datentyp dieses Tabellenattributs (z.B. int, varchar, text, ...)
+// --> c = Laenge: Positive Integerzahl oder leer lassen (manchmal auch als maxlength interpretiert)
+// --> d = Zusatz: '' | 'BINARY' | 'UNSIGNED' | 'UNSIGNED ZEROFILL'
+// --> e = Null Setting: 'NULL | 'NOT NULL'
+// --> f = Default: Defaultwert bei Neuerstellung in einer Zeile (max. Zeichenlaenge = 255)
+// --> g = Extra: '' | 'auto_increment'
+// --> h = Primary: '0' = ist NICHT Primary Key | '1' = IST Primary Key
+// --> i = Index: '0' = Nein | '1' = Ja
+// --> j = Unique: '0' = Nein | '1' = Ja
+// --> k = Volltext Index: '0' = Nein | '1' = Ja (nicht bei allen Typen moeglich)
+// --> l = Beschreibung: Wird nur hier und im Modulprozess verwendet (max. Chars = 255)
+// Beschreibung der ersten eigenen Tabelle:
+$moduldef['eigene_tabellen'] = array();
+
+// 14.) Zu erweiternde, schon bestehende Tabellen
+// ! Hier werden die Tabellen beschrieben, welche schon existieren und durch weitere Attribute
+// erweitert werden sollen.
+// ! Wenn keine Tabellen erweitert werden sollen, einfach leerer Array definieren
+// --> Format: Dasselbe Format wie bei $moduldef['eigene_tabellen']. Die Beschreibung
+// einer schon bestehenden Tabelle wird ignoriert, der Name muss aber stimmen.
+$moduldef['erweiterte_tabellen'] = array();
+
+// 15.) Submodule
+// ! Wenn dieses Modul aus mehreren weiteren Modulen besteht, so koennen diese hier angegeben werden.
+// ! Wenn keine Submodule existieren, einfach einen leeren String angeben. (Strichpunkt getrennte Liste)
+// --> Format: 'submodul_name_1;submodul_name2;...;submodul_namex'
+$moduldef['submodule'] = '';
+
+// 16.) Vorausgesetzte Module
+// ! Hier werden Module angegeben, welche korrekt installiert vorhanden sein muessen, damit dieses
+// Modul ueberhaupt erst installiert wird. (Strichpunkt getrennte Liste)
+// ! Wenn keine solchen Module gibt, einfach einen leeren String uebergeben
+// --> Format: 'required_modul_name_1;required_modul_name2;...;required_modul_namex'
+$moduldef['required_modules'] = '';
+
+// 17.) Security ID
+// ! Mit der Security_ID kann man dem Modul den Zugang zu verschiedenen Interfaces sperren.
+// Auf diese Weise kann ein kompromittiertes Modul nur begrenzt Schaden anrichten.
+// ! Die niedrigste Stufe der Security_ID ist = 1, die höchste Stufe = 32768. Je hoeher die
+// angegebene Security_ID ist, desto höher ist auch die Zahl der erlaubten Interfaces
+// ! Welches Interface, welche minimale Security_ID erfordert um benutzt werden zu koennen,
+// ist in der Tabelle module_interfaces mit den Interfaceeintraegen ersichtlich.
+// --> Format: 'required_modul_name_1;required_modul_name2;...;required_modul_namex'
+$moduldef['security_id'] = '1';
+
+// 18.) Valid Hosts
+// ! Erweiterte Security wird es in der naechsten API-Version noch mit der valid_hosts Angabe geben.
+// Die Datenbank ist dafuer schon vorbereitet. (all = Alle Hosts, im Moment die Standardeinstellung)
+// Ausgewertet wird die Angabe aber noch nicht.
+// --> Format: all = Alle hosts | localhost = nur dieser Rechner | mehrere Rechner via ; getrennt angeben
+$moduldef['valid_hosts'] = 'all';
+
+// 19.) Name des Administrationsmenus
+// ! Im Administrationstool hat das Verwaltungsmenu dieses Moduls einen Namen, hier kann man
+// einen Namen definieren, wenn man keinen angibt, wird einfach die Modulbezeichnung verwendet
+// --> Format: Maximale Laenge 40 Zeichen, moeglichst keine Sonderzeichen verwenden
+$moduldef['admin_menu_name'] = 'ERP Export';
+
+// 20.) URL zur Datei, wo das Admin-Verwaltungsmenu liegt
+// ! Diese URL ist entweder absolut oder (besser) relativ zum {shopdir}/shop/Admin/module/modul_name Verzeichnis
+// Die hier angegebene Datei wird 'verlinkt' und mit dem in 'admin_menu_name' Namen versehen.
+// Info: Achtung: Jeder Link in dieser Datei muss folgende GET-Parameter mitgeben:
+// - darstellen=".$HTTP_GET_VARS['darstellen']
+// - installed_selection=".$HTTP_GET_VARS['installed_selection']
+// - backlink=".$HTTP_GET_VARS['backlink']
+// --> Format: URL
+//$moduldef['admin_menu_link'] = 'show_log_viewer.php';
+$moduldef['admin_menu_link'] = 'export_to_erp.php';
+
+// 21.) URL zum Icon des Adminmenus
+// ! Diese URL ist relativ zum {shopdir}/shop/Admin/ Verzeichnis (sonst gibt es einen include-Fehler
+// Die hier angegebene Datei wird 'verlinkt' und mit dem in 'admin_menu_name' Namen versehen.
+// --> Format: URL
+// --> Format Icon: 48px x 48px, GIF oder PNG oder JPG.
+$moduldef['admin_menu_img'] = 'modul_admin_img.gif';
+
+// --------------------------------------------------------------------------------------
+// ***************************** ENDE DEFINITION DES MODULS *****************************
+// --------------------------------------------------------------------------------------
+
+
+// Bitte unterhalb dieser Zeile keine Aenderungen mehr vornehmen.
+
+
+// -----------------------------------------------------------------------
+// Damit jedes andere Modul ueberpruefen kann ob dieses hier schon "included" ist
+// wird folgende Vairable auf true gesetzt (Name = Ext. Modulname + Dateiname ohne .php)
+$module_name_inkl_prefix = $module_modulname.'_initialize_module';
+$$module_name_inkl_prefix = true;
+
+// 'Mitsenden' der hier verwendeten API-Version
+$moduldef['pps_module_api'] = $pps_module_api;
+
+// Moduldefinitionsarray loeschen und somit den Speicher wieder freigeben
+
+// End of file -----------------------------------------------------------
+?>
--- /dev/null
+
+[Shop]
+
+[Shop--Warenexport]
+module=pepper/shopimport_db.php
+
+[Shop--Bestellungen]
+module=pepper/pepperexport.php
+
+[Shop--Konfiguration]
+module=pepper/confedit.php
+
--- /dev/null
+<?
+/***************************************************************
+* $Id: pepperexport.php,v 2.0 2006/02/06 13:49:11 hli Exp $
+*Author: Holger Lindemann
+*Copyright: (c) 2004 Lx-System
+*License: non free
+*eMail: info@lx-system.de
+*Version: 1.3.0
+*Shop: PHPeppershop 2.0
+*ERP: Lx-Office ERP >= 2.2.0
+***************************************************************/
+?>
+<html>
+ <head><title>Lx-ERP Export der Shopartikel</title>
+ <link type="text/css" REL="stylesheet" HREF="css/main.css"></link>
+<body>
+
+<?php
+require_once "DB.php";
+require_once "conf.php";
+$db=DB::connect($SHOPdns);
+if (!$db) dbFehler("",$db->getDebugInfo());
+if (DB::isError($db)) {
+ dbFehler("",$db->getDebugInfo());
+ die ($db->getDebugInfo());
+};
+$db2=DB::connect($ERPdns);
+if (!$db2) dbFehler("",$db2->getDebugInfo());
+if (DB::isError($db2)) {
+ dbFehler("",$db2->getDebugInfo());
+ die ($db2->getDebugInfo());
+};
+/****************************************************
+* dbFehler
+* in: sql,err = string
+* out:
+* Fehlermeldungen ausgeben
+*****************************************************/
+function dbFehler($sql,$err) {
+global $showErr;
+ if ($showErr)
+ echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
+}
+function checkBestellung($status) {
+global $db;
+ if ($status=="B") { $where="";} // B = alle Bestellungeb, N = neue, Y = alte
+ else { $where="where Bestellung_bezahlt = '$status'";}
+ $sql="select * from bestellung $where and Datum is not null and Bestellung_abgeschlossen = 'Y' order by Datum";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ return (count($rs)>0)?count($rs):false;
+}
+function getBestellKunde($BID) {
+global $db;
+ $sql="select * from kunde left join bestellung_kunde on Kunden_ID=FK_Kunden_ID where FK_Bestellungs_ID=$BID";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ return $rs[0]["Kunden_Nr"];
+}
+function sonderkosten($transID,$data,$id,$f) {
+global $db2,$versand,$nachn,$minder,$treuh,$paypal;
+ $sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
+ $sql.=$transID.",".${$id}["ID"].",'".${$id}["TXT"]."',1,".$data.",'mal',0,0)";
+ fputs($f,"$transID,".${$id}["ID"].",'".${$id}["TXT"]."',1,$data\n");
+ if (!$db2->query($sql)) { return false; }
+ else { return true; };
+}
+function insBestArtikel($zeile,$transID) {
+global $db,$db2,$div07,$div16,$f,
+ $versandID,$nachnID,$minderID,$treuhID,$paypalID;
+ $BID=$zeile["Bestellungs_ID"];
+ $sql ="select * from artikel left join artikel_bestellung on Artikel_ID=FK_Artikel_ID ";
+ $sql.="left join bestellung on Bestellungs_ID=FK_Bestellungs_ID where Bestellungs_ID=$BID";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $ok=true;
+ foreach ($rs as $zeile) {
+ $sql="select * from parts where partnumber='".$zeile["Artikel_Nr"]."'";
+ $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ( $rs2[0]["id"]) {$artID=$rs2[0]["id"]; }
+ else { $artID=($zeile["MwSt_Satz"]=="7")?$div07["ID"]:$div16["ID"]; };
+ //$preis=round($zeile["Preis"]/($zeile["MwSt_Satz"]+100)*100,2);
+ $preis=$zeile["Preis"];
+ $notes=$zeile["Artikelname"];
+ $vari=split(chr(254),$zeile["Variation"]);
+ if ($vari) { for($cnt=0; $cnt<count($vari); $cnt++) {
+ $notes.="\n".$vari[$cnt];
+ $cnt++;
+ $preis+=trim($vari[$cnt]) * $zeile["Anzahl"];
+ }
+ };
+ $opts=split(chr(254),$zeile["Optionen"]);
+ if ($opts) { for($cnt=0; $cnt<count($opts); $cnt++) {
+ $notes.="\n".$opts[$cnt];
+ $cnt++;
+ $preis+=trim($opts[$cnt]) * $zeile["Anzahl"];
+ }
+ }
+ if ($zeile["Zusatztexte"]) {
+ $zusatz=strtr($zeile["Zusatztexte"],"þ","\n");
+ $notes.="\n".$zusatz;
+ }
+ $sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
+ $sql.=$transID.",".$artID.",'".$notes."',".$zeile["Anzahl"].",".$preis.",'Stck',0,0)";
+ $rc=$db2->query($sql);
+ if (!$rc) { $ok=false; break; };
+ fputs($f,$transID.",".$artID.",'".$zeile["Artikelname"]."',".$zeile["Anzahl"].",".$preis."\n");
+ echo " - Artikel:[ BuNr.:$artID ArtNr:<b> ".$zeile["Anzahl"]." x ".$zeile["Artikel_Nr"]."</b> :".$zeile["Artikelname"]." ]<br>";
+ }
+ if ($zeile["Versandkosten"] && $ok) {
+ $ok=sonderkosten($transID,$zeile["Versandkosten"],"versand",$f);
+ }
+ if ($zeile["Nachnamebetrag"] && $ok) {
+ $ok=sonderkosten($transID,$zeile["Nachnamebetrag"],"nachn",$f);
+ }
+ if ($zeile["Mindermengenzuschlag"] && $ok) {
+ $ok=sonderkosten($transID,$zeile["Mindermengenzuschlag"],"minder",$f);
+ }
+ if ($zeile["Treuhandkosten"] && $ok) {
+ $ok=sonderkosten($transID,$zeile["Treuhandkosten"],"treuh",$f);
+ }
+ if ($zeile["Paypalkosten"] && $ok) {
+ $ok=sonderkosten($transID,$zeile["Paypalkosten"],"paypal",$f);
+ }
+ if ($ok) {
+ $sql="update bestellung set Bestellung_bezahlt='Y' WHERE Bestellungs_ID =$BID";
+ $rc=$db->query($sql);
+ fputs($f,"ok\n");
+ return true;
+ } else {
+ $sql="delete from orderitems where trans_id=$transID";
+ $rc=$db->query($sql);
+ $sql="delete from oe where id=$transID";
+ $rc=$db->query($sql);
+ fputs($f,"Fehler (insBestArtikel)!!!!\n");
+ return false;
+ }
+}
+function getNextAnr() {
+global $db2;
+ $sql="select * from defaults";
+ $sql1="update defaults set sonumber=";
+ $rc=$db2->query("BEGIN");
+ $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ $auftrag=$rs2[0]["sonumber"]+1;
+ $rc=$db2->query($sql1.$auftrag);
+ $rc=$db2->query("COMMIT");
+ return $auftrag;
+}
+function getNextKnr() {
+global $db2;
+ $sql="select * from defaults";
+ $sql1="update defaults set customernumber='";
+ $rc=$db2->query("BEGIN");
+ $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ $kdnr=$rs2[0]["customernumber"]+1;
+ $rc=$db2->query($sql1.$kdnr."'");
+ $rc=$db2->query("COMMIT");
+ return $kdnr;
+}
+function getBestellung() {
+global $db,$db2,$ERPusr,$f,$preA,$auftrnr;
+ $sql="select * from bestellung where Bestellung_bezahlt='N' order by Bestellungs_ID";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $ok=true;
+ foreach ($rs as $zeile) {
+ $kdnr=getBestellKunde($zeile["Bestellungs_ID"]);
+ echo "Kunde:[ Buchungsnummer:$kdnr ] ";
+ $newID=uniqid (rand());
+ if (ereg("&r=([0-9]+)",$zeile["Bestellung_string"],$refnr)) {
+ $refnr=$refnr[1];
+ } else {
+ $refnr=$zeile["Bestellungs_ID"];
+ }
+ if ($auftrnr) {
+ $anr=$preA.getNextAnr();
+ } else {
+ $anr=$preA.$refnr;
+ }
+ $sql="insert into oe (notes,ordnumber,cusordnumber) values ('$newID','$anr','$refnr')";
+ $rc=$db2->query($sql);
+ $sql="select * from oe where notes = '$newID'";
+ $rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ $Bezahlung=$zeile["Bezahlungsart"];
+ if ($Bezahlung=="Lastschrift") {
+ $sql="select * from kunde where Kunden_Nr=$kdnr";
+ $kd=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $Bezahlung.="\nKontoinhaber: ".$kd[0]["kontoinhaber"]."\n";
+ $Bezahlung.="Bankname: ".$kd[0]["bankname"]."\n";
+ $Bezahlung.="Blz: ".$kd[0]["blz"]."\n";
+ $Bezahlung.="KontoNr: ".$kd[0]["kontonummer"];
+ }
+ $sql ="update oe set transdate='".$zeile["Datum"]."', intnotes='".$zeile["Anmerkung"];
+ $sql.="', customer_id=$kdnr, amount=".$zeile["Rechnungsbetrag"].", netamount=".($zeile["Rechnungsbetrag"]-$zeile["MwSt"]);
+ $sql.=", reqdate='".$zeile["Datum"]."', notes='$Bezahlung', taxincluded='f', curr='EUR',employee_id=".$ERPusr["ID"].", vendor_id=0 ";
+ $sql.="where id=".$rs2[0]["id"];
+ $rc=$db2->query($sql);
+ fputs($f,"ordnumber=".$zeile["Bestellungs_ID"].", transdate='".$zeile["Datum"]."', customer_id=$kdnr, amount=".($zeile["Rechnungsbetrag"]+$zeile["MwSt"]).", notes=".$zeile["Bezahlungsart"]."\n");
+ echo "Auftrag:[ Buchungsnummer:".$rs2[0]["id"]." AuftrNr:<b>".$anr."</b> ]<br>";
+ if (!insBestArtikel($zeile,$rs2[0]["id"])) { $ok=false; echo " Fehler<br>"; break; } else { echo " ok<br>"; };
+ }
+ return $ok;
+}
+function chkKdData($data) {
+global $db2;
+ $sql="select * from customer where id = ".$data["Kunden_Nr"];
+ $rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ($rs[0]["zipcode"]<>$data["PLZ"]) $set.="zipcode='".$data["PLZ"]."',";
+ if ($rs[0]["city"]<>$data["Ort"]) $set.="city='".$data["Ort"]."',";
+ if ($rs[0]["country"]<>$data["Land"]) $set.="country='".$data["Land"]."',";
+ if ($rs[0]["phone"]<>$data["Tel"])$set.="phone='".$data["Tel"]."',";
+ if ($rs[0]["fax"]<>$data["Fax"]) $set.="fax='".$data["Fax"]."',";
+ if ($rs[0]["email"]<>$data["Email"])$set.="email='".$data["Email"]."',";
+ if ($rs[0]["notes"]<>$data["Beschreibung"])$set.="notes='".$data["Beschreibung"]."',";
+ if ($data["Firma"]) {
+ if ($rs[0]["name"]<>$data["Firma"]) $set.="set name='".$data["Firma"]."',";
+ if ($rs[0]["contact"]<>$data["Vorname"]." ".$data["Nachname"]) $set.="contact='".$data["Vorname"]." ".$data["Nachname"]."',";
+ } else {
+ if ($rs[0]["name"]<>$data["Nachname"].", ".$data["Vorname"]) $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',";
+ }
+ if ($data["Strasse"]) {
+ if ($rs[0]["street"]<>$data["Strasse"]) $set.="street='".$data["Strasse"]."',";
+ } else if ($data["Postfach"]) {
+ if ($rs[0]["street"]<>$data["Postfach"]) $set.="street='".$data["Postfach"]."',";
+ };
+ if ($set) {
+ $sql="update customer set ".substr($set,0,-1)." where id=".$rs[0]["id"];
+ $rc=$db2->query($sql);
+ }
+}
+function insKdData($data) {
+global $db2,$preK,$kdnum;
+ $newID=$data["Kunden_ID"];
+ if ($kdnum==1) {
+ $kdnr=$preK.getNextKnr();
+ } else {
+ $kdnr=$preK.$data["customers_id"];
+ }
+ $sql="insert into customer (name,customernumber) values ('$newID','$kdnr')";
+ $rc=$db2->query($sql);
+ $sql="select * from customer where name = '$newID'";
+ $rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ($data["Firma"]) { $set.="set name='".$data["Firma"]."',contact='".$data["Vorname"]." ".$data["Nachname"]."',"; }
+ else { $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',"; }
+ if ($data["Strasse"]) { $set.="street='".$data["Strasse"]."',"; }
+ else if ($data["Postfach"]) { $set.="street='".$data["Postfach"]."',"; };
+ $set.="zipcode='".$data["PLZ"]."',";
+ $set.="city='".$data["Ort"]."',";
+ $set.="country='".$data["Land"]."',";
+ $set.="phone='".$data["Tel"]."',";
+ $set.="fax='".$data["Fax"]."',";
+ $set.="email='".$data["Email"]."',";
+ $set.="notes='".$data["Beschreibung"]."',";
+ $set.="taxincluded='f' ";
+ $sql="update customer ".$set;
+ $sql.="where id=".$rs[0]["id"];
+ $rc=$db2->query($sql);
+ return $rs[0]["id"];
+}
+function checkKunde() {
+global $db,$f;
+ $sql="select * from kunde left join bestellung_kunde on FK_Kunden_ID=Kunden_ID left join bestellung on Bestellungs_ID=FK_Bestellungs_ID where Bestellung_bezahlt='N'";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $ok=true;
+ $anzahl=count($rs);
+ $neu=0; $old=0;
+ foreach ($rs as $zeile) {
+ if ($zeile["Kunden_Nr"]>0) {
+ chkKdData($zeile);
+ $old++;
+ } else {
+ $zeile["Kunden_Nr"]=insKdData($zeile);
+ if ($zeile["Kunden_Nr"]>0) {
+ $sql="update kunde set Kunden_Nr='".$zeile["Kunden_Nr"]."' where k_ID=".$zeile["k_ID"];
+ $rc=$db->query($sql);
+ } else {
+ $ok=false; break;
+ }
+ $neu++;
+ }
+ fputs($f,$zeile["Nachname"]." ".$zeile["Firma"]."\n");
+ fputs($f,"\n----------------------------------------\n\n");
+ }
+ return ($ok)?array($anzahl,$neu,$old):false;
+}
+
+function savedata($str) {
+global $f;
+ foreach ($str as $val) {
+ $str.=$val.",";
+ }
+ fputs($f,substr($str,0,-1)."\n");
+}
+
+$f=fopen("tmp/".date("y-m-dH:i").".shop","w");
+$ok=checkBestellung("N");
+if ($ok) {
+ echo "Es liegen $ok Bestellungen vor. <br>";
+ fputs($f,"Es liegen $ok Bestellungen vor. \n");
+ $ok=checkKunde();
+ if ($ok) {
+ echo $ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).<br>";
+ fputs($f,$ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).\n");
+ $ok=getBestellung();
+ if ($ok) { echo "Daten transferiert!"; fputs($f,"Daten transferiert!\n");}
+ else { echo "Fehler (Bestellungen)! ! ! "; fputs($f,"Fehler (Bestellungen)! ! !\n");};
+ } else {
+ echo "Fehler (Kunden)! ! ! "; fputs($f,"Fehler (Kunden)! ! !\n");
+ }
+} else { echo "Keine Bestellungen!<br>"; fputs($f,"keine Bestellungen\n");};
+
+fclose($f);
+
+?>
+<!--br><a href="trans.php">zurück</a-->
+</body>
+</html>
--- /dev/null
+Shop - Schnittstelle Lx-ERP <-> PHPeppershop
+
+
+Info:
+ Die Zusammenarbeit mit der Version 2.6.x wurde nicht getestet!
+
+ Die Anmeldung der Benutzer an LxO hat sich geändert. Auch wurde Lagerwesen eingeführt.
+ Damit die Schnittstelle mit Version 2.6.0 und neuer funktioniert, sollten hier Anpassungen
+ durchgeführt werden.
+
+
+Vorraussetzungen:
+ Lx-ERP Version >= 2.4.0 < 2.6.0
+ PHPeppershop 2
+ Pear DB, PHP-ImageMagick
+
+Installation:
+Das tar-File unterhalb vom Webserververzeichnis oder vom ERP-Verzeichnis entpacken.
+
+ $ cd /var/www/html
+ $ tar xzf /pfad/zu/pepper.tgz
+
+In das Verzeichnis oscomm wechseln und Schreibrechte auf die Datei conf.php und
+die Verzeichnisse pepper und tmp für den Webbenutzer (apache,www-data,httpd) vergeben.
+
+ $ chown apache pepper
+ $ chown apache pepper/conf.php
+ $ chmod 600 pepper/conf.php
+ $ chown apache pepper/tmp
+
+Bitte zuerst einen Benutzer für die ERP anlegen, der mit der Schnittstelle benutzt
+werden soll. Dann noch die Artikel 'Diverse 16%', 'Versandkosten' und 'Nachname' anlegen.
+Sollen 'PayPal','Mindermengenzuschlag' und '7%'-Artikel extra verwendet werden, legen Sie
+auch diese Artikel zunächst an.
+
+Im Browser dann folgende URL aufrufen:
+
+ http://webserver/pfad/pepperm/confedit.php
+
+ z.B.: http://localhost/pepperm/confedit.php
+
+Benutzer und Kennwort für die Erstinstallation sind:
+
+ pepper / pepper
+
+Die Maske sogfälltig ausfüllen.
+
+ db-Host db-Server für die jeweilige Anwendung
+ Database Namen der Datenbankinstanzen
+ db-User Username und Kennwort für die jeweilige Instanz
+ User-ID Mit dieser ID soll in die ERP geschrieben werden
+ CSV-Dir hier wird die csv-Datei erwartet (Schreibrechte!)
+ Image-Dir hier liegen die Bilder
+ ftp-Host Webserver der jeweiligen Anwendung
+ ftp-User Name und Kennwort für ftp-Zugang
+ ID-xxxx Interne ID der Waren. Lx-ERP:
+ Shopsprache Die Id der Voreingestellten Sprache. Nur für diese
+ werden die Artikel eingestellt.
+ Bildergröße in Byte
+
+Das Formular abschicken.
+
+Sollen später Änderungen durchgeführt werden, so muß bei der Anmeldung
+der ERP-ftp-User als Benutzer verwendet werden.
+
+
+
+Fehlerquellen:
+Befinden sich ERP und Shop nicht auf dem gleichen Server, achten Sie darauf, das
+die entsprechende Datenbank von Aussen erreichbar ist. Dazu müssen folgende Ports
+freigeschaltet werden:
+
+ MySQL 3306
+ PostgreSQL 5432
+
+Auch muß auf dem Shopserver ein ftp-Dienst eingerichtet werden, wenn Bilder über-
+tragen werden sollen. Die Firewal ist entsprechend anzupassen.
+
+Arbeiten:
+In der ERP kann nun bei den Artikeln das Häckchen Shop gesetzt werden.
+Bitte auch eine Warengruppe vergeben, da sonst alle Artikel in Default landen.
+Da die ERP nur eine Kategorieebene verwalten kann, muß der ganze Kategorienpfad
+hintelegt werden. Die einzelnen Kategorien werden durch Ausrufezeichen (!) getrennt.
+Die Hauptkategorie wird durch "[" und "]" eingeklammert.
+
--- /dev/null
+<?php
+/***************************************************************
+* $Id: shopimport_db.php,v 1.5 2006/02/06 13:49:11 hli Exp $
+*Author: Holger Lindemann
+*Copyright: (c) 2004 Lx-System
+*License: non free
+*eMail: info@lx-system.de
+*Version: 1.0.0
+*Shop: PHPeppershop 2.0
+*ERP: Lx-Office ERP
+***************************************************************/
+require_once "conf.php";
+require_once "DB.php";
+
+$db=DB::connect($SHOPdns);
+if (!$db) dbFehler("",$db->getDebugInfo());
+if (DB::isError($db)) {
+ dbFehler("",$db->getDebugInfo());
+ die ($db->getDebugInfo());
+};
+$db2=DB::connect($ERPdns);
+if (!$db2) dbFehler("",$db2->getDebugInfo());
+if (DB::isError($db2)) {
+ dbFehler("",$db2->getDebugInfo());
+ die ($db2->getDebugInfo());
+};
+/****************************************************
+* dbFehler
+* in: sql,err = string
+* out:
+* Fehlermeldungen ausgeben
+*****************************************************/
+function dbFehler($sql,$err) {
+global $showErr;
+ if ($showErr)
+ echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
+}
+
+// Ab hier Artikelexport aus ERP
+function shopartikel() {
+global $db2,$pricegroup;
+ if ($pricegroup>0) {
+ $sql="SELECT P.partnumber,P.description,P.weight,(t.rate * 100) as rate,G.price as sellprice,P.sellprice as stdprice, ";
+ $sql.="PG.partsgroup,P.notes,P.image,P.onhand FROM ";
+ $sql.="chart c left join tax t on c.taxkey_id=t.taxkey, parts P left join partsgroup PG on PG.id=P.partsgroup_id left join prices G on G.parts_id=P.id ";
+ $sql.="where P.shop='t' and c.id=p.income_accno_id and (G.pricegroup_id=$pricegroup or G.pricegroup_id is null)";
+ } else {
+ $sql="SELECT P.partnumber,P.description,P.weight,(t.rate * 100) as rate,P.sellprice,PG.partsgroup,P.notes,P.image,P.onhand FROM ";
+ $sql.="chart c left join tax t on c.taxkey_id=t.taxkey, parts P left join partsgroup PG on ";
+ $sql.="PG.id=P.partsgroup_id where P.shop='t' and c.id=p.income_accno_id";
+ }
+ $rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
+ return $rs;
+}
+
+// Ab hier Import der Daten in den Shop
+function createCategory($name,$maingroup,$tab) {
+global $db,$langs;
+ $newID=uniqid(rand());
+ $sql="insert into kategorien (Bild_gross,Bild_last_modified) values ('$newID',now())";
+ $rc=$db->query($sql);
+ $sql="select * from kategorien where Bild_gross = '$newID'";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ($rs) {
+ $id=$rs[0]["Kategorie_ID"];
+ $u=($maingroup=="Null")?"is Null":"=$maingroup";
+ $sql="select max(Positions_Nr) as Max from kategorien where Unterkategorie_von $u";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ $pos=$rs[0]["Max"]+1;
+ $sql="update kategorien set Unterkategorie_von=%s, Name='%s', Positions_Nr=%d,MwSt_Satz=%0.2f, Details_anzeigen='N', Bild_gross = Null where kategorie_ID=%d";
+ echo "($name) ";
+ $rc=$db->query(sprintf($sql,$maingroup,$name,$pos,$mwst,$id));
+ return ($rc)?$id:false;
+ } else {
+ return false;
+ }
+}
+function getCategory($name) {
+global $db;
+ if (empty($name)) $name="Default";
+ preg_match("/^(\[(.*)\])?([^!]+)!?(.*)/",$name,$ref);
+ if ($ref[1]<>""){
+ $tab=$ref[2];
+ $main=$ref[3];
+ if ($ref[4]<>"") {
+ $sub=$ref[4];
+ } else {
+ $sub=false;
+ }
+ } else if ($ref[3]<>"" and $ref[3]<>$ref[0]) {
+ $tab=false;
+ $main=$ref[3];
+ if ($ref[4]<>"") {
+ $sub=$ref[4];
+ } else {
+ $sub=false;
+ }
+ } else {
+ $tab=false;
+ $sub=false;
+ if (substr($name,0,1)=="[") {
+ $main="Default";
+ } else {
+ $main=$name;
+ }
+ }
+ $found=true;
+ // suche die Hauptgruppe
+ $sql="select * from kategorien where Name like '".$main."' and Unterkategorie_von is Null";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ($rs[0]["Kategorie_ID"]) { // gefunden
+ $maingroup=$rs[0]["Kategorie_ID"];
+ } else { // nicht gefunden, anlegen
+ $maingroup=createCategory($main,"Null","$tab");
+ }
+ echo $maingroup.":".$main." ";
+ if ($sub && $maingroup) {
+ // suche Unterkategorie wenn eine gegeben
+ $sql="select * from kategorien where Name like '$sub' and Unterkategorie_von = '$main'";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ($rs[0]["Kategorie_ID"]) { // gefunden
+ $maingroup=$rs[0]["Kategorie_ID"];
+ } else { // nicht gefunden, anlegen
+ $maingroup=createCategory($sub,"'$main'","");
+ }
+ };
+ echo $sub." ";
+ return $maingroup;
+}
+function bilder($width,$height,$dest) {
+ if (!function_exists("imagick_readimage")) { echo "Imagick-Extention nicht installiert"; return false; };
+ $handle=imagick_readimage("./tmp/tmp.file_org");
+ if (!$handle) {
+ $reason = imagick_failedreason( $handle ) ;
+ print "Lesen: $reason<BR>\n" ; flush();
+ return false;
+ }
+ if (!imagick_resize( $handle, $width, $height, IMAGICK_FILTER_UNKNOWN, 0)) {
+ $reason = imagick_failedreason( $handle ) ;
+ print "Resize: $reason<BR>\n" ; flush();
+ return false;
+ }
+ if (!imagick_writeimage( $handle,"./tmp/tmp.file_$dest")) {
+ $reason = imagick_failedreason( $handle ) ;
+ print "Schreiben: $reason<BR>\n" ; flush();
+ return false;
+ }
+ return true;
+}
+function uploadImage($image,$ArtNr) {
+global $db,$ERPftphost,$ERPftpuser,$ERPftppwd,$ERPimgdir,
+ $SHOPftphost,$SHOPftpuser,$SHOPftppwd,$SHOPimgdir,$iconsize;
+ if ($ERPftphost=="localhost") {
+ exec("cp $ERPimgdir/$image ./tmp/tmp.file_org",$aus,$rc2);
+ if ($rc2>0) { echo "[Downloadfehler: $image]<br>"; return false; };
+ } else {
+ $conn_id = ftp_connect($ERPftphost);
+ ftp_login($conn_id,$ERPftpuser,$ERPftppwd);
+ $src=$ERPimgdir."/".$image;
+ $upload=ftp_get($conn_id,"tmp/tmp.file_org","$src",FTP_BINARY);
+ if (!$upload) { echo "[Ftp Downloadfehler! $image]<br>"; return false;};
+ ftp_quit($conn_id);
+ };
+ bilder($iconsize,$iconsize,"smal");
+ $rc=preg_match("#(.+/)?([^\.]+)\.(.+)$#",$image,$treffer);
+ $gr=$treffer[2]."_gr.".$treffer[3];
+ $kl=$treffer[2]."_kl.".$treffer[3];
+ if ($SHOPftphost=="localhost") {
+ $dst=$SHOPimgdir."/".$gr;
+ exec("cp ./tmp/tmp.file_org $dst",$aus,$rc2);
+ if ($rc2>0) { echo "[Uploadfehler: $dst]<br>"; return false; };
+ $dst=$SHOPimgdir."/".$kl;
+ exec("cp ./tmp/tmp.file_smal $dst",$aus,$rc2);
+ if ($rc2>0) { echo "[Uploadfehler: $dst]<br>"; return false; };
+ } else {
+ $conn_id = ftp_connect($SHOPftphost);
+ ftp_login($conn_id,$SHOPftpuser,$SHOPftppwd);
+ ftp_chdir($conn_id,$SHOPimgdir);
+ $upload=ftp_put($conn_id,$SHOPimgdir."/$gr","tmp/tmp.file_org",FTP_BINARY);
+ if (!$upload) { echo "[Ftp Uploadfehler! $gr]<br>"; return false; };
+ $upload=ftp_put($conn_id,$SHOPimgdir."/$kl","tmp/tmp.file_smal",FTP_BINARY);
+ if (!$upload) { echo "[Ftp Uploadfehler! $kl]<br>"; return false; };
+ ftp_quit($conn_id);
+ }
+ $sql="update artikel set Bild_gross='$gr', Bild_klein='$kl' where Artikel_ID=$ArtNr";
+ $rc=$db->query($sql);
+}
+function insartikel($data) {
+global $db;
+ $newID=uniqid(rand());
+ $sql="insert into artikel (Artikel_Nr,Name) values ('".$data["partnumber"]."','$newID')";
+ $rc=$db->query($sql);
+ $sql="select * from artikel where Name='$newID'";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ($rs) {
+ $sql="insert into artikel_kategorie (FK_Artikel_ID,FK_Kategorie_ID) values (".$rs[0]["Artikel_ID"].",".$data["categories_id"].")";
+ $rc=$db->query($sql);
+ echo " insert ";
+ updartikel($data,$rs[0]["Artikel_ID"]);
+ } else { return false; }
+}
+function updartikel($data,$id) {
+global $db;
+ $sql ="update artikel set Preis=%01.2f,Gewicht=%0.2f,MwSt_Satz=%0.2f,letzteAenderung=now(),";
+ $sql.="Name='%s',Beschreibung='%s',Lagerbestand=%d where Artikel_ID=%d";
+ $preis=($data["sellprice"]>0)?$data["sellprice"]:$data["stdprice"];
+ $sql=sprintf($sql,$preis,$data["weight"],$tax[sprintf("%1.4f",$data["rate"])],$data["description"],$data["notes"],$data["onhand"],$id);
+ $rc=$db->query($sql);
+ $sql="update artikel_kategorie set FK_Kategorie_ID=".$data["categories_id"]." where FK_Artikel_ID=$id";
+ $rc=$db->query($sql);
+ echo "+++<br>";
+}
+function chkartikel($data) {
+global $db,$shop2erp;
+ if ($data["partnumber"]=="") { echo "Artikelnummer fehlt!<br>"; return false;};
+ $sql="select * from artikel A left join artikel_kategorie K on A.Artikel_id=K.FK_Artikel_ID where Artikel_Nr like '".$data["partnumber"]."'";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ echo "(".$data["partnumber"]."->".$rs[0]["Artikel_ID"].":".$data["description"].")";
+ if ($rs) {
+ if ($data["image"]) {
+ $rc=preg_match("#(.+/)?([^\.]+)\.(.+)$#",$data["image"],$treffer);
+ if ($treffer) { $data["picname"]=$treffer[2]."_gr.".$treffer[3]; }
+ else { $data["picname"]=""; };
+ }
+ $preis=($data["sellprice"]>0)?$data["sellprice"]:$data["stdprice"];
+ if ($rs[0]["Preis"]<>$preis) { updartikel($data,$rs[0]["Artikel_ID"]); }
+ else if ($rs[0]["Gewicht"]<>$data["weight"]) { updartikel($data,$rs[0]["Artikel_ID"]); }
+ else if ($rs[0]["Name"]<>$data["description"]) { updartikel($data,$rs[0]["Artikel_ID"]); }
+ else if ($rs[0]["Beschreibung"]<>$data["notes"]) { updartikel($data,$rs[0]["Artikel_ID"]); }
+ else if ($rs[0]["MwSt_Satz"]<>$tax[sprintf("%1.4f",$data["rate"])]) { updartikel($data,$rs[0]["Artikel_ID"]); }
+ else if ($rs[0]["FK_Kategorie_ID"]<>$data["$categories_id"]) { updartikel($data,$rs[0]["Artikel_ID"]); }
+ else if ($rs[0]["Lagerbestand"]<>$data["onhand"]) { updartikel($data,$rs[0]["Lagerbestand"]); }
+ else { echo "...<br>"; };
+ if ($rs[0]["Bild_gross"]<>$data["picname"] and $data["picname"]) { uploadImage($data["image"],$rs[0]["Artikel_ID"]); }
+ else if ($rs[0]["Bild_gross"] and !$data["picname"]) {
+ $sql="update artikel set Bild_gross='', Bild_klein='' where Artikel_ID=".$rs[0]["Artikel_ID"];
+ $rc=$db->query($sql);
+ }
+ } else {
+ $Artikel_ID=insartikel($data);
+ if ($data["image"]) uploadImage($data["image"],$Artikel_ID);
+ }
+}
+
+$artikel=shopartikel();
+echo "Artikelexport ERP -> PHPepper :".count($artikel)." Artikel markiert.<br>";
+if ($artikel) {
+ $sql="select Thumbnail_Breite from shop_settings";
+ $rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
+ if ($rs) {
+ $iconsize=$rs[0]["Thumbnail_Breite"];
+ } else {
+ $iconsize=100;
+ }
+ foreach ($artikel as $data) {
+ $data["categories_id"]=getCategory($data["partsgroup"]);
+ $x=chkartikel($data);
+ }
+ require ("diff.php");
+}
+
+?>
--- /dev/null
+Es liegen 1 Bestellungen vor.
+Hinterseer HH AG
+1 Kunden, davon 0 neue(r) Kunde(n).
--- /dev/null
+Es liegen 2 Bestellungen vor.
+Hinterseer HH AG
+Hinterseer HH AG
+2 Kunden, davon 0 neue(r) Kunde(n).
+ordnumber=14244073991210637086374020888, transdate='2007-01-15', customer_id=2839, amount=18.921, notes=Bezahlung per
+2842,413,'',1,10
+2842,1568,'Versandkosten',1,0.9
+ordnumber=14244073991210637086374020888, transdate='2007-01-15', customer_id=2839, amount=15.9, notes=Bezahlung per
+2843,413,'',1,10
+2843,1568,'Versandkosten',1,0.9
+Daten transferiert!
--- /dev/null
+keine Bestellungen
--- /dev/null
+Es liegen 1 Bestellungen vor.
+Hinterseer HH AG
+1 Kunden, davon 0 neue(r) Kunde(n).
--- /dev/null
+Es liegen 1 Bestellungen vor.
+Hinterseer HH AG
+1 Kunden, davon 1 neue(r) Kunde(n).
+ordnumber=14244073991210637086374020888, transdate='2007-01-15', customer_id=2839, amount=18.921, notes=Bezahlung per
+2840,413,'',1,10
+2840,1568,'Versandkosten',1,0.9
+Daten transferiert!
--- /dev/null
+Es liegen 1 Bestellungen vor.
+Hinterseer HH AG
+1 Kunden, davon 0 neue(r) Kunde(n).
+ordnumber=14244073991210637086374020888, transdate='2007-01-15', customer_id=2839, amount=21.942, notes=Bezahlung per
+2841,413,'',1,10
+2841,1568,'Versandkosten',1,0.9
+Daten transferiert!
--- /dev/null
+keine Bestellungen
--- /dev/null
+Es liegen 1 Bestellungen vor.
+Winger LED1.de
+1 Kunden, davon 1 neue(r) Kunde(n).
+ordnumber=39630669213965724371727342923, transdate='2007-02-19', customer_id=2205, amount=68.5809640336, notes=Bezahlung per PayPal
+2206,1521,'',1,54
+2206,1568,'Versandkosten',1,2.5
+Daten transferiert!
--- /dev/null
+Es liegen 2 Bestellungen vor.
+Schäfer
+Wurst Wichtel AG
+2 Kunden, davon 2 neue(r) Kunde(n).
+ordnumber=9335067731144605458730318097, transdate='2007-02-19', customer_id=2198, amount=11.48, notes=Bezahlung per Vorauskasse
+2200,1463,'',1,8.98
+2200,1568,'Versandkosten',1,2.5
+ordnumber=932625893245291655342188916, transdate='2007-02-20', customer_id=2199, amount=13.6612, notes=Bezahlung per Vorauskasse
+2201,1463,'',1,8.98
+2201,1568,'Versandkosten',1,2.5
+Daten transferiert!
--- /dev/null
+Es liegen 1 Bestellungen vor.
+Wurst Wichtel AG
+1 Kunden, davon 0 neue(r) Kunde(n).
+ordnumber=932625893245291655342188916, transdate='2007-02-20', customer_id=2199, amount=41.9765, notes=Bezahlung per Vorauskasse
+2202,1319,'',1,36.45
+2202,1568,'Versandkosten',1,2.5
+Daten transferiert!
--- /dev/null
+Es liegen 1 Bestellungen vor.
+Winger LED1.de
+1 Kunden, davon 0 neue(r) Kunde(n).
+ordnumber=39630669213965724371727342923, transdate='2007-02-19', customer_id=2205, amount=68.5809640336, notes=Bezahlung per PayPal
+2207,1521,'',1,54
+2207,1568,'Versandkosten',1,2.5
+Daten transferiert!
--- /dev/null
+Es liegen 1 Bestellungen vor.
+Biermann
+1 Kunden, davon 1 neue(r) Kunde(n).
+ordnumber=3711052164095647241747134120, transdate='2007-02-18', customer_id=2203, amount=41.5, notes=Bezahlung per Vorauskasse
+2204,1319,'',1,36.4485981308
+2204,1568,'Versandkosten',1,2.5
+Daten transferiert!
--- /dev/null
+keine Bestellungen
--- /dev/null
+keine Bestellungen
--- /dev/null
+Es liegen 1 Bestellungen vor.
+Winger LED1.de
+1 Kunden, davon 0 neue(r) Kunde(n).
+ordnumber=39630669213965724371727342923, transdate='2007-02-19', customer_id=2205, amount=68.5809640336, notes=Bezahlung per PayPal
+2208,1521,'',1,54
+2208,1568,'Versandkosten',1,2.5
+2208,413,'Diverse Artikel 16% MWSt.',1,1.82096403361
--- /dev/null
+<?
+/***************************************************************
+* $Id: trans.php,v 1.1 2004/12/17 13:50:30 hli Exp $
+*Author: Holger Lindemann
+*Copyright: (c) 2004 Lx-System
+*License: non free
+*eMail: info@lx-system.de
+*Version: 1.0.1
+*Shop: PHPepper 1.5
+*ERP: Lx-Office ERP
+***************************************************************/
+require_once "DB.php";
+require_once "conf.php";
+$LAND=array("Germany"=>"D");
+$db=DB::connect($SHOPdns);
+if (DB::isError($db)||!$db) { $shop="<font color='red'>Fehler</font>"; } else { $shop="ok"; };
+$db2=DB::connect($ERPdns);
+if (DB::isError($db2)||!$db2) { $erp="<font color='red'>Fehler</font>"; } else { $erp="ok"; };
+
+?>
+<html>
+ <head>
+ <title>Datenaustausch ERP-PHPeppershop</title>
+ </head>
+<body>
+<center>
+<table>
+ <tr>
+ <td colspan="2">
+ Eine direkte Verbindung beider Datenbanken ist erforderlich!<br>
+ Folgende Verbindungsdaten wurden gefunden:
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <b>Lx-ERP</b>
+ </td>
+ <td><?= $erp ?></td>
+ </tr>
+ <tr>
+ <td>Datenbank-Server</td>
+ <td><?= $ERPhost ?></td>
+ </tr>
+ <tr>
+ <td>Datenbank</td>
+ <td><?= $ERPdbname ?></td>
+ </tr>
+ <tr>
+ <td>
+ <b>PHPepper</b>
+ </td>
+ <td><?= $shop ?></td>
+ </tr>
+ <tr>
+ <td>Datenbank-Server</td>
+ <td><?= $SHOPhost ?></td>
+ </tr>
+ <tr>
+ <td>Datenbank</td>
+ <td><?= $SHOPdbname ?></td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <hr>
+ </td>
+ </tr>
+ <tr>
+ <td align="center"><a href="shopimport_db.php"><img src="e2s.gif" border="0"></a></td>
+ <td align="center"><a href="pepperexport.php"><img src="s2e.gif" border="0"></a></td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <hr>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ Für den Export der Artikeldaten aus der ERP in eine CSV-Datei<br>
+ oder den Import der Artikeldaten in den Shop ist nur die Verbindung<br>
+ zur entsprechenden Datenbank notwendig.<br>
+ Die CSV-Dateien werden in den konfigurierten Verzeichnissen erwartet.<br>
+ Der Webserver benötigt hier Schreibrechte.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <b>Lx-ERP</b>
+ </td>
+ <td><a href="<?= $ERPdir ?>"><?= $ERPdir ?></a></td>
+ </tr>
+ <tr>
+ <td align="center"><a href="erpexport.php"><img src="e2c.gif" border="0"></a></td>
+ <td align="center"></td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <hr>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ Copyright (c) 2004 Lx-System - Version: 1.0 - <a href="mailto:info@lx-system.de">info@lx-system.de</a>
+ </td>
+ </tr>
+</table>
+</center>
+</body>
+</html>