commit 57096a4882de38f1aa0d3fd061f52b5cdfec8b38
Author: Holger Lindemann <hli@lx-system.de>
Date:   Wed Feb 20 13:39:02 2008 +0000

    Freigabe der Shopschnittstelle für PHPeppershop
    readme.first lesen!

diff --git a/pepper/c2s.gif b/pepper/c2s.gif
new file mode 100644
index 000000000..1f900541d
Binary files /dev/null and b/pepper/c2s.gif differ
diff --git a/pepper/conf.php b/pepper/conf.php
new file mode 100644
index 000000000..9ea233e63
--- /dev/null
+++ b/pepper/conf.php
@@ -0,0 +1,56 @@
+<?
+// 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
diff --git a/pepper/confedit.php b/pepper/confedit.php
new file mode 100644
index 000000000..e393f1c6a
--- /dev/null
+++ b/pepper/confedit.php
@@ -0,0 +1,302 @@
+<?
+// $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&uuml;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&uuml;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&ouml;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>
+<? } ?>
diff --git a/pepper/diff.php b/pepper/diff.php
new file mode 100644
index 000000000..c4a3a6d31
--- /dev/null
+++ b/pepper/diff.php
@@ -0,0 +1,82 @@
+<?
+// $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&uuml;ck</a>
diff --git a/pepper/e2c.gif b/pepper/e2c.gif
new file mode 100644
index 000000000..692eb8b87
Binary files /dev/null and b/pepper/e2c.gif differ
diff --git a/pepper/e2s.gif b/pepper/e2s.gif
new file mode 100644
index 000000000..1227d9801
Binary files /dev/null and b/pepper/e2s.gif differ
diff --git a/pepper/erpexport.php b/pepper/erpexport.php
new file mode 100644
index 000000000..8a40c674b
--- /dev/null
+++ b/pepper/erpexport.php
@@ -0,0 +1,216 @@
+<?
+/***************************************************************
+* $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&ouml;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="&quot;"></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&uuml;ck</a>
+</form>
+</body>
+</html>
diff --git a/pepper/export_to_erp/export_to_erp.php b/pepper/export_to_erp/export_to_erp.php
new file mode 100644
index 000000000..72d1e9cbf
--- /dev/null
+++ b/pepper/export_to_erp/export_to_erp.php
@@ -0,0 +1,291 @@
+<?
+/***************************************************************
+*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&uuml;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&uuml;ck zur Modulverwaltung</button>";
+}
+
+?>
+</body>
+</html>
diff --git a/pepper/export_to_erp/initialize_module.php b/pepper/export_to_erp/initialize_module.php
new file mode 100644
index 000000000..34c120bd7
--- /dev/null
+++ b/pepper/export_to_erp/initialize_module.php
@@ -0,0 +1,253 @@
+<?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
+//
+// 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&uuml;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&uuml;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 -----------------------------------------------------------
+?>
diff --git a/pepper/export_to_erp/modul_admin_img.gif b/pepper/export_to_erp/modul_admin_img.gif
new file mode 100644
index 000000000..ad36d0ca3
Binary files /dev/null and b/pepper/export_to_erp/modul_admin_img.gif differ
diff --git a/pepper/handbuch.pdf b/pepper/handbuch.pdf
new file mode 100644
index 000000000..b238af379
Binary files /dev/null and b/pepper/handbuch.pdf differ
diff --git a/pepper/menu.ini b/pepper/menu.ini
new file mode 100644
index 000000000..6db3fde22
--- /dev/null
+++ b/pepper/menu.ini
@@ -0,0 +1,12 @@
+
+[Shop]
+
+[Shop--Warenexport]
+module=pepper/shopimport_db.php
+
+[Shop--Bestellungen]
+module=pepper/pepperexport.php
+
+[Shop--Konfiguration]
+module=pepper/confedit.php
+
diff --git a/pepper/pepperexport.php b/pepper/pepperexport.php
new file mode 100644
index 000000000..4ed5f4345
--- /dev/null
+++ b/pepper/pepperexport.php
@@ -0,0 +1,314 @@
+<?
+/***************************************************************
+* $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&uuml;ck</a-->
+</body>
+</html>
diff --git a/pepper/readme.first b/pepper/readme.first
new file mode 100644
index 000000000..d07406078
--- /dev/null
+++ b/pepper/readme.first
@@ -0,0 +1,85 @@
+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.
+
diff --git a/pepper/s2e.gif b/pepper/s2e.gif
new file mode 100644
index 000000000..836133323
Binary files /dev/null and b/pepper/s2e.gif differ
diff --git a/pepper/shopimport_db.php b/pepper/shopimport_db.php
new file mode 100644
index 000000000..b078a3f13
--- /dev/null
+++ b/pepper/shopimport_db.php
@@ -0,0 +1,262 @@
+<?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 -&gt; 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");
+}
+
+?>
diff --git a/pepper/tmp/070115Jan0043.log b/pepper/tmp/070115Jan0043.log
new file mode 100644
index 000000000..a230391fb
--- /dev/null
+++ b/pepper/tmp/070115Jan0043.log
@@ -0,0 +1,3 @@
+Es liegen 1 Bestellungen vor. 
+Hinterseer HH AG
+1 Kunden, davon 0 neue(r) Kunde(n).
diff --git a/pepper/tmp/070115Jan0529.log b/pepper/tmp/070115Jan0529.log
new file mode 100644
index 000000000..653592abb
--- /dev/null
+++ b/pepper/tmp/070115Jan0529.log
@@ -0,0 +1,11 @@
+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!
diff --git a/pepper/tmp/070115Jan1914.log b/pepper/tmp/070115Jan1914.log
new file mode 100644
index 000000000..d3494ef22
--- /dev/null
+++ b/pepper/tmp/070115Jan1914.log
@@ -0,0 +1 @@
+keine Bestellungen
diff --git a/pepper/tmp/070115Jan2349.log b/pepper/tmp/070115Jan2349.log
new file mode 100644
index 000000000..a230391fb
--- /dev/null
+++ b/pepper/tmp/070115Jan2349.log
@@ -0,0 +1,3 @@
+Es liegen 1 Bestellungen vor. 
+Hinterseer HH AG
+1 Kunden, davon 0 neue(r) Kunde(n).
diff --git a/pepper/tmp/070115Jan4625.log b/pepper/tmp/070115Jan4625.log
new file mode 100644
index 000000000..e53b392a2
--- /dev/null
+++ b/pepper/tmp/070115Jan4625.log
@@ -0,0 +1,7 @@
+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!
diff --git a/pepper/tmp/070115Jan5404.log b/pepper/tmp/070115Jan5404.log
new file mode 100644
index 000000000..6fdfbf4b5
--- /dev/null
+++ b/pepper/tmp/070115Jan5404.log
@@ -0,0 +1,7 @@
+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!
diff --git a/pepper/tmp/070220Feb2414.log b/pepper/tmp/070220Feb2414.log
new file mode 100644
index 000000000..d3494ef22
--- /dev/null
+++ b/pepper/tmp/070220Feb2414.log
@@ -0,0 +1 @@
+keine Bestellungen
diff --git a/pepper/tmp/070220Feb2456.log b/pepper/tmp/070220Feb2456.log
new file mode 100644
index 000000000..45ee3d11c
--- /dev/null
+++ b/pepper/tmp/070220Feb2456.log
@@ -0,0 +1,7 @@
+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!
diff --git a/pepper/tmp/070220Feb3922.log b/pepper/tmp/070220Feb3922.log
new file mode 100644
index 000000000..aaf069ff0
--- /dev/null
+++ b/pepper/tmp/070220Feb3922.log
@@ -0,0 +1,11 @@
+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!
diff --git a/pepper/tmp/070220Feb4647.log b/pepper/tmp/070220Feb4647.log
new file mode 100644
index 000000000..e9230c0ae
--- /dev/null
+++ b/pepper/tmp/070220Feb4647.log
@@ -0,0 +1,7 @@
+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!
diff --git a/pepper/tmp/070220Feb5026.log b/pepper/tmp/070220Feb5026.log
new file mode 100644
index 000000000..d896dada4
--- /dev/null
+++ b/pepper/tmp/070220Feb5026.log
@@ -0,0 +1,7 @@
+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!
diff --git a/pepper/tmp/070220Feb5107.log b/pepper/tmp/070220Feb5107.log
new file mode 100644
index 000000000..c8be09f34
--- /dev/null
+++ b/pepper/tmp/070220Feb5107.log
@@ -0,0 +1,7 @@
+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!
diff --git a/pepper/tmp/070220Feb5228.log b/pepper/tmp/070220Feb5228.log
new file mode 100644
index 000000000..d3494ef22
--- /dev/null
+++ b/pepper/tmp/070220Feb5228.log
@@ -0,0 +1 @@
+keine Bestellungen
diff --git a/pepper/tmp/070220Feb5412.log b/pepper/tmp/070220Feb5412.log
new file mode 100644
index 000000000..d3494ef22
--- /dev/null
+++ b/pepper/tmp/070220Feb5412.log
@@ -0,0 +1 @@
+keine Bestellungen
diff --git a/pepper/tmp/070220Feb5559.log b/pepper/tmp/070220Feb5559.log
new file mode 100644
index 000000000..0ca74ddab
--- /dev/null
+++ b/pepper/tmp/070220Feb5559.log
@@ -0,0 +1,7 @@
+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
diff --git a/pepper/tmp/tmp.file_org b/pepper/tmp/tmp.file_org
new file mode 100644
index 000000000..bec45e921
Binary files /dev/null and b/pepper/tmp/tmp.file_org differ
diff --git a/pepper/trans.php b/pepper/trans.php
new file mode 100644
index 000000000..48f354a91
--- /dev/null
+++ b/pepper/trans.php
@@ -0,0 +1,108 @@
+<?
+/***************************************************************
+* $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&uuml;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&ouml;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>
