Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 57096a48

Von Holger Lindemann vor etwa 17 Jahren hinzugefügt

  • ID 57096a4882de38f1aa0d3fd061f52b5cdfec8b38
  • Vorgänger 0a4891e3
  • Nachfolger 274ef023

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

Unterschiede anzeigen:

pepper/conf.php
<?
// 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";
?>
pepper/confedit.php
<?
// $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>
<? } ?>
pepper/diff.php
<?
// $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>
pepper/erpexport.php
<?
/***************************************************************
* $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>
pepper/export_to_erp/export_to_erp.php
<?
/***************************************************************
*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>
pepper/export_to_erp/initialize_module.php
<?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 -----------------------------------------------------------
?>
pepper/menu.ini
[Shop]
[Shop--Warenexport]
module=pepper/shopimport_db.php
[Shop--Bestellungen]
module=pepper/pepperexport.php
[Shop--Konfiguration]
module=pepper/confedit.php
pepper/pepperexport.php
<?
/***************************************************************
* $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"]."',";
... Dieser Diff wurde abgeschnitten, weil er die maximale Anzahl anzuzeigender Zeilen überschreitet.

Auch abrufbar als: Unified diff