Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 57096a48

Von Holger Lindemann vor mehr als 16 Jahren hinzugefügt

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

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

Unterschiede anzeigen:

pepper/conf.php
1
<?
2
// Verbindung zur ERP-db
3
$ERPuser="lxoffice";
4
$ERPpass="geheim";
5
$ERPhost="localhost";
6
$ERPdbname="lxerp1";
7
$ERPdns="pgsql://$ERPuser:$ERPpass@$ERPhost/$ERPdbname";
8
$ERPusr["Name"]="demo";
9
$ERPusr["ID"]="376";
10
$ERPdir="tmp/shopartikel.csv";
11
$ERPimgdir="/usr/lib/lx-office-erp";
12
$maxSize="";
13
$ERPftphost="localhost";
14
$ERPftpuser="pepper";
15
$ERPftppwd="pepper";
16
//Verbindung zur osCommerce-db
17
$SHOPuser="root";
18
$SHOPpass="27123";
19
$SHOPhost="localhost";
20
$SHOPdbname="TestLocal";
21
$SHOPdns="mysql://$SHOPuser:$SHOPpass@$SHOPhost/$SHOPdbname";
22
$SHOPdir="tmp/shopartikel.csv";
23
$SHOPimgdir="/var/www/TestLocal/shop/ProdukteBilder";
24
$SHOPftphost="localhost";
25
$SHOPftpuser="pepper";
26
$SHOPftppwd="pepper";
27
$div16["ID"]="391";
28
$div07["ID"]="";
29
$versand["ID"]="411";
30
$nachn["ID"]="411";
31
$minder["ID"]="391";
32
$treuh["ID"]="391";
33
$paypal["ID"]="391";
34
$div16["NR"]="1002";
35
$div07["NR"]="";
36
$versand["NR"]="1003";
37
$nachn["NR"]="1003";
38
$minder["NR"]="1002";
39
$treuh["NR"]="1002";
40
$paypal["NR"]="1002";
41
$div16["TXT"]="Diverse";
42
$div07["TXT"]="";
43
$versand["TXT"]="Versandkosten";
44
$nachn["TXT"]="Versandkosten";
45
$minder["TXT"]="Diverse";
46
$treuh["TXT"]="Diverse";
47
$paypal["TXT"]="Diverse";
48
$bgcol[1]="#ddddff";
49
$bgcol[2]="#ddffdd";
50
$preA="P_";
51
$preK="P_";
52
$auftrnr="1";
53
$kdnum="1";
54
$pricegroup="382";
55
$showErr="true";
56
?>
pepper/confedit.php
1
<?
2
// $Id: confedit.php,v 0.10 2006/02/06 11:34:30 hli Exp $
3
if (!isset($_SERVER['PHP_AUTH_USER'])) {
4
       Header("WWW-Authenticate: Basic realm=\"Configurations-Editor\"");
5
       Header("HTTP/1.0 401 Unauthorized");
6
       echo "Sie m&uuml;ssen sich autentifizieren\n";
7
       exit;
8
} else {
9
	include "conf.php";
10
	require_once "DB.php";
11
	$db=@DB::connect($ERPdns);
12
	if (!DB::isError($db)) {
13
		$sql="select id,pricegroup from pricegroup";
14
		$pgs=$db->getall($sql);
15
	}
16
	function pg($sel) {
17
	global $pgs;
18
		echo "\t<option value=0";
19
		if ($sel==0) echo " selected";
20
		echo ">Standard VK\n";
21
		if ($pgs) foreach ($pgs as $row) {
22
			echo "\t<option value=".$row[0];
23
			if ($sel==$row[0]) echo " selected";
24
			echo ">".$row[1]."\n";
25
		}
26
	}
27
    if ($_SERVER['PHP_AUTH_USER']<>$ERPftpuser || $_SERVER['PHP_AUTH_PW']<>$ERPftppwd) {
28
		Header("WWW-Authenticate: Basic realm=\"My Realm\"");
29
		Header("HTTP/1.0 401 Unauthorized");
30
		echo "Sie m&uuml;ssen sich autentifizieren\n";
31
		exit;
32
	}
33
	if ($_POST["ok"]=="sichern") {
34
		$ok=true;
35
		$dsnP="pgsql://".$_POST["ERPuser"].":".$_POST["ERPpass"]."@".$_POST["ERPhost"]."/".$_POST["ERPdbname"];
36
		$dbP=DB::connect($dsnP);
37
		if (DB::isError($dbP)||!$dbP) {
38
			$ok=false; 
39
			echo "Keine Verbindung zur ERP<br>"; 
40
			echo $dbP->userinfo;
41
		}
42
		else {
43
			$rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["div16NR"]."'");
44
			$_POST["div16ID"]=$rs[0][0];
45
			$div16txt=$rs[0][1];
46
			$rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["div07NR"]."'");
47
			$_POST["div07ID"]=$rs[0][0];
48
			$div07txt=$rs[0][1];
49
			$rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["versandNR"]."'");
50
			$_POST["versandID"]=$rs[0][0];
51
			$versandtxt=$rs[0][1];
52
			$rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["nachnNR"]."'");
53
			$_POST["nachnID"]=$rs[0][0];
54
			$nachntxt=$rs[0][1];
55
			$rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["minderNR"]."'");
56
			$_POST["minderID"]=$rs[0][0];
57
			$mindertxt=$rs[0][1];
58
			$rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["paypalNR"]."'");
59
			$_POST["paypalID"]=$rs[0][0];
60
			$paypaltxt=$rs[0][1];
61
			$rs=$dbP->getall("select id,description from parts where partnumber = '".$_POST["treuhNR"]."'");
62
			$_POST["treuhID"]=$rs[0][0];
63
			$treuhtxt=$rs[0][1];
64
			$rs=$dbP->getall("select id from employee where login = '".$_POST["ERPusrN"]."'");
65
			$_POST["ERPusrID"]=$rs[0][0];
66
		}
67
		$dsnM="mysql://".$_POST["SHOPuser"].":".$_POST["SHOPpass"]."@".$_POST["SHOPhost"]."/".$_POST["SHOPdbname"];
68
		$dbM=DB::connect($dsnM);
69
		if (DB::isError($dbM)||!$dbM) { 
70
			$ok=false; 
71
			echo "Keine Verbindung zum Shop<br>"; 
72
			echo $dbM->userinfo;
73
		};
74
		if (ok) {
75
			$f=fopen("conf.php","w");
76
			$v="1.5";
77
			$d=date("Y/m/d H:i:s");
78
			fputs($f,"<?\n// Verbindung zur ERP-db\n");
79
			fputs($f,"\$ERPuser=\"".$_POST["ERPuser"]."\";\n");
80
			fputs($f,"\$ERPpass=\"".$_POST["ERPpass"]."\";\n");
81
			fputs($f,"\$ERPhost=\"".$_POST["ERPhost"]."\";\n");
82
			fputs($f,"\$ERPdbname=\"".$_POST["ERPdbname"]."\";\n");
83
			fputs($f,"\$ERPdns=\"pgsql://\$ERPuser:\$ERPpass@\$ERPhost/\$ERPdbname\";\n");
84
			fputs($f,"\$ERPusr[\"Name\"]=\"".$_POST["ERPusrN"]."\";\n");
85
			fputs($f,"\$ERPusr[\"ID\"]=\"".$_POST["ERPusrID"]."\";\n");
86
			fputs($f,"\$ERPdir=\"".$_POST["ERPdir"]."\";\n");
87
			fputs($f,"\$ERPimgdir=\"".$_POST["ERPimgdir"]."\";\n");
88
			fputs($f,"\$maxSize=\"".$_POST["maxSize"]."\";\n");
89
			fputs($f,"\$ERPftphost=\"".$_POST["ERPftphost"]."\";\n");
90
			fputs($f,"\$ERPftpuser=\"".$_POST["ERPftpuser"]."\";\n");
91
			fputs($f,"\$ERPftppwd=\"".$_POST["ERPftppwd"]."\";\n");
92
			fputs($f,"//Verbindung zur osCommerce-db\n");
93
			fputs($f,"\$SHOPuser=\"".$_POST["SHOPuser"]."\";\n");
94
			fputs($f,"\$SHOPpass=\"".$_POST["SHOPpass"]."\";\n");
95
			fputs($f,"\$SHOPhost=\"".$_POST["SHOPhost"]."\";\n");
96
			fputs($f,"\$SHOPdbname=\"".$_POST["SHOPdbname"]."\";\n");
97
			fputs($f,"\$SHOPdns=\"mysql://\$SHOPuser:\$SHOPpass@\$SHOPhost/\$SHOPdbname\";\n");
98
			fputs($f,"\$SHOPdir=\"".$_POST["SHOPdir"]."\";\n");
99
			fputs($f,"\$SHOPimgdir=\"".$_POST["SHOPimgdir"]."\";\n");
100
			fputs($f,"\$SHOPftphost=\"".$_POST["SHOPftphost"]."\";\n");
101
			fputs($f,"\$SHOPftpuser=\"".$_POST["SHOPftpuser"]."\";\n");
102
			fputs($f,"\$SHOPftppwd=\"".$_POST["SHOPftppwd"]."\";\n");
103
			fputs($f,"\$div16[\"ID\"]=\"".$_POST["div16ID"]."\";\n");
104
			fputs($f,"\$div07[\"ID\"]=\"".$_POST["div07ID"]."\";\n");
105
			fputs($f,"\$versand[\"ID\"]=\"".$_POST["versandID"]."\";\n");
106
			fputs($f,"\$nachn[\"ID\"]=\"".$_POST["nachnID"]."\";\n");
107
			fputs($f,"\$minder[\"ID\"]=\"".$_POST["minderID"]."\";\n");
108
			fputs($f,"\$treuh[\"ID\"]=\"".$_POST["treuhID"]."\";\n");
109
			fputs($f,"\$paypal[\"ID\"]=\"".$_POST["paypalID"]."\";\n");
110
			fputs($f,"\$div16[\"NR\"]=\"".$_POST["div16NR"]."\";\n");
111
			fputs($f,"\$div07[\"NR\"]=\"".$_POST["div07NR"]."\";\n");
112
			fputs($f,"\$versand[\"NR\"]=\"".$_POST["versandNR"]."\";\n");
113
			fputs($f,"\$nachn[\"NR\"]=\"".$_POST["nachnNR"]."\";\n");
114
			fputs($f,"\$minder[\"NR\"]=\"".$_POST["minderNR"]."\";\n");
115
			fputs($f,"\$treuh[\"NR\"]=\"".$_POST["treuhNR"]."\";\n");
116
			fputs($f,"\$paypal[\"NR\"]=\"".$_POST["paypalNR"]."\";\n");
117
			fputs($f,"\$div16[\"TXT\"]=\"".$div16txt."\";\n");
118
			fputs($f,"\$div07[\"TXT\"]=\"".$div07txt."\";\n");
119
			fputs($f,"\$versand[\"TXT\"]=\"".$versandtxt."\";\n");
120
			fputs($f,"\$nachn[\"TXT\"]=\"".$nachntxt."\";\n");
121
			fputs($f,"\$minder[\"TXT\"]=\"".$mindertxt."\";\n");
122
			fputs($f,"\$treuh[\"TXT\"]=\"".$treuhtxt."\";\n");
123
			fputs($f,"\$paypal[\"TXT\"]=\"".$paypaltxt."\";\n");
124
			fputs($f,"\$bgcol[1]=\"#ddddff\";\n");
125
			fputs($f,"\$bgcol[2]=\"#ddffdd\";\n");
126
			fputs($f,"\$preA=\"".$_POST["preA"]."\";\n");
127
			fputs($f,"\$preK=\"".$_POST["preK"]."\";\n");
128
			fputs($f,"\$auftrnr=\"".$_POST["auftrnr"]."\";\n");
129
			fputs($f,"\$kdnum=\"".$_POST["kdnum"]."\";\n");
130
			fputs($f,"\$pricegroup=\"".$_POST["pricegroup"]."\";\n");
131
			fputs($f,"\$showErr=\"true\";\n");
132
			fputs($f,"?>");
133
			fclose($f);
134
			require "conf.php";
135
		} else {
136
			$ERPuser=$_POST["ERPuser"];
137
			$ERPpass=$_POST["ERPpass"];
138
			$ERPhost=$_POST["ERPhost"];
139
			$ERPdbname=$_POST["ERPdbname"];
140
			$ERPusrN=$_POST["ERPusrN"];
141
			$ERPdir=$_POST["ERPdir"];
142
			$ERPimgdir=$_POST["ERPimgdir"];
143
			$maxSize=$_POST["maxSize"];
144
			$ERPftphost=$_POST["ERPftphost"];
145
			$ERPftpuser=$_POST["ERPftpuser"];
146
			$ERPftppwd=$_POST["ERPftppwd"];
147
			$SHOPuser=$_POST["SHOPuser"];
148
			$SHOPpass=$_POST["SHOPpass"];
149
			$SHOPhost=$_POST["SHOPhost"];
150
			$SHOPdbname=$_POST["SHOPdbname"];
151
			$SHOPdir=$_POST["SHOPdir"];
152
			$SHOPimgdir=$_POST["SHOPimgdir"];
153
			$SHOPftphost=$_POST["SHOPftphost"];
154
			$SHOPftpuser=$_POST["SHOPftpuser"];
155
			$SHOPftppwd=$_POST["SHOPftppwd"];
156
			$div16NR=$_POST["div16NR"];
157
			$div07NR=$_POST["div07NR"];
158
			$versandNR=$_POST["versandNR"];
159
			$nachnNR=$_POST["nachnNR"];
160
			$treuhNR=$_POST["treuhNR"];
161
			$minderNR=$_POST["minderNR"];
162
			$paypalNR=$_POST["paypalNR"];
163
			$preA=$_POST["preA"];
164
			$preK=$_POST["preK"];
165
			$kdnum=$_POST["kdnum"];
166
			$pricegroup=$_POST["pricegroup"];
167
			$auftrnr=$_POST["auftrnr"];
168
		}
169
	}	else {
170
		require "conf.php";
171
	}
172
	?>
173
<html>
174
<body>
175
<center>
176
<table style="background-color:#cccccc" border="0">
177
<form name="ConfEdit" method="post" action="confedit.php">
178
<input type="hidden" name="div16ID" value="<?= $div16["ID"] ?>">
179
<input type="hidden" name="div07ID" value="<?= $div07["ID"] ?>">
180
<input type="hidden" name="minderID" value="<?= $minder["ID"] ?>">
181
<input type="hidden" name="versandID" value="<?= $versand["ID"] ?>">
182
<input type="hidden" name="nachnID" value="<?= $nachn["ID"] ?>">
183
<input type="hidden" name="paypalID" value="<?= $paypal["ID"] ?>">
184
<input type="hidden" name="treuhID" value="<?= $treuh["ID"] ?>">
185
<input type="hidden" name="ERPusrID" value="<?= $ERPusr["ID"] ?>">
186

  
187
<tr><th>Daten</th><th>Lx-ERP</th><th></th><th>Shop</th></tr>
188
<tr>
189
	<td>db-Host</td>
190
	<td colspan="2"><input type="text" name="ERPhost" size="25" value="<?= $ERPhost ?>"></td>
191
	<td><input type="text" name="SHOPhost" size="25" value="<?= $SHOPhost ?>"></td>
192
</tr>
193
<tr>
194
	<td>Database</td>
195
	<td colspan="2"><input type="text" name="ERPdbname" size="20" value="<?= $ERPdbname ?>"></td>
196
	<td><input type="text" name="SHOPdbname" size="20" value="<?= $SHOPdbname ?>"></td>
197
</tr>
198
<tr>
199
	<td>db-User Name</td>
200
	<td colspan="2"><input type="text" name="ERPuser" size="15" value="<?= $ERPuser ?>"></td>
201
	<td><input type="text" name="SHOPuser" size="15" value="<?= $SHOPuser ?>"></td>
202
</tr>
203
<tr>
204
	<td>db-User PWD</td>
205
	<td colspan="2"><input type="text" name="ERPpass" size="15" value="<?= $ERPpass ?>"></td>
206
	<td><input type="text" name="SHOPpass" size="15" value="<?= $SHOPpass ?>"></td>
207
</tr>
208
<tr>
209
	<td>User-ID</td>
210
	<td colspan="2"><input type="text" name="ERPusrN" size="10" value="<?= $ERPusr["Name"] ?>">
211
		<input type="checkbox" name="a1" <?= (empty($ERPusr["ID"])?"":"checked") ?>></td>
212
	<td></td>
213
</tr>
214
<tr>
215
	<td>CSV-Dir</td>
216
	<td colspan="2"><input type="text" name="ERPdir" size="30" value="<?= $ERPdir ?>"></td>
217
	<td><input type="text" name="SHOPdir" size="30" value="<?= $SHOPdir ?>"></td>
218
</tr>
219
<tr>
220
	<td>Image-Dir</td>
221
	<td colspan="2"><input type="text" name="ERPimgdir" size="30" value="<?= $ERPimgdir ?>"></td>
222
	<td><input type="text" name="SHOPimgdir" size="30" value="<?= $SHOPimgdir ?>"></td>
223
</tr>
224
<tr>
225
	<td>FTP-Host</td>
226
	<td colspan="2"><input type="text" name="ERPftphost" size="20" value="<?= $ERPftphost ?>"></td>
227
	<td><input type="text" name="SHOPftphost" size="20" value="<?= $SHOPftphost ?>"></td>
228
</tr>
229
<tr>
230
	<td>FTP-User</td>
231
	<td colspan="2"><input type="text" name="ERPftpuser" size="15" value="<?= $ERPftpuser ?>"></td>
232
	<td><input type="text" name="SHOPftpuser" size="15" value="<?= $SHOPftpuser ?>"></td>
233
</tr>
234
<tr>
235
	<td>FTP-User PWD</td>
236
	<td colspan="2"><input type="text" name="ERPftppwd" size="15" value="<?= $ERPftppwd ?>"></td>
237
	<td><input type="text" name="SHOPftppwd" size="15" value="<?= $SHOPftppwd ?>"></td>
238
</tr>
239
<tr>
240
	<td>ID Diverse 16%</td>
241
	<td><input type="text" name="div16NR" size="10" value="<?= $div16["NR"] ?>">
242
		<input type="checkbox" name="a1" <?= (empty($div16["ID"])?"":"checked") ?>></td>
243
	<td>ID Diverse 7%</td>
244
	<td><input type="text" name="div07NR" size="10" value="<?= $div07["NR"] ?>">
245
		<input type="checkbox" name="a1" <?= (empty($div07["ID"])?"":"checked") ?>></td>
246
</tr>
247
<tr>
248
	<td>ID Versand</td>
249
	<td><input type="text" name="versandNR" size="10" value="<?= $versand["NR"] ?>">
250
		<input type="checkbox" name="a1" <?= (empty($versand["ID"])?"":"checked") ?>></td>
251
	<td>ID Nachname</td>
252
	<td><input type="text" name="nachnNR" size="10" value="<?= $nachn["NR"] ?>">
253
		<input type="checkbox" name="a1" <?= (empty($nachn["ID"])?"":"checked") ?>></td>
254
</tr>
255
<tr>
256
	<td>ID Paypal</td>
257
	<td><input type="text" name="paypalNR" size="10" value="<?= $paypal["NR"] ?>">
258
		<input type="checkbox" name="a1" <?= (empty($paypal["ID"])?"":"checked") ?>></td>
259
	<td>ID Treuhand</td>
260
	<td><input type="text" name="treuhNR" size="10" value="<?= $treuh["NR"] ?>">
261
		<input type="checkbox" name="a1" <?= (empty($treuh["ID"])?"":"checked") ?>></td>
262
</tr>
263
<tr>
264
	<td>ID Mindermenge</td>
265
	<td><input type="text" name="minderNR" size="10" value="<?= $minder["NR"] ?>">
266
		<input type="checkbox" name="a1" <?= (empty($minder["ID"])?"":"checked") ?>></td>
267
	<td>Preisgruppe</td>
268
	<td><select name="pricegroup">
269
<? pg($pricegroup); ?>
270
	    </select></td>
271
</tr>
272
<tr>
273
	<td colspan="2">Auftragsnummern durch</td>
274
	<td><input type="radio" name="auftrnr" value="1" <?= ($auftrnr==1)?"checked":"" ?>> LxO</td>
275
	<td><input type="radio" name="auftrnr" value="0" <?= ($auftrnr<>1)?"checked":"" ?>> Shop</td>
276
</tr>
277
<tr>
278
	<td colspan="2">Kundennummern durch</td>
279
	<td><input type="radio" name="kdnum" value="1" <?= ($kdnum==1)?"checked":"" ?>> LxO</td>
280
	<td><input type="radio" name="kdnum" value="0" <?= ($kdnum<>1)?"checked":"" ?>> Shop</td>
281
</tr>
282
<tr>
283
	<td colspan="2">Nummernerweiterung</td>
284
	<td>Auftrag<input type="text" name="preA" size="5" value="<?= $preA ?>"></td>
285
	<td>Kunde<input type="text" name="preK" size="5" value="<?= $preK ?>"></td>
286
</tr>
287
<!--tr>
288
	<td>Bildergr&ouml;sse (byte)</td>
289
	<td><input type="text" name="maxSize" size="10" value="<?= $maxSize ?>"></td>
290
	<td></td>
291
</tr-->
292

  
293

  
294

  
295

  
296
<tr><td colspan="4" align="center"><input type="submit" name="ok" value="sichern"></td></tr>
297
</form>
298
</table>
299
</center>
300
</body>
301
</html>
302
<? } ?>
pepper/diff.php
1
<?
2
// $Id: diff.php,v 1.1 2004/12/17 13:50:15 hli Exp $
3
require_once "DB.php";
4
require_once "conf.php";
5
if (!$db) {
6
	$db=DB::connect($SHOPdns);
7
	if (!$db) dbFehler("",$db->getDebugInfo());
8
	if (DB::isError($db)) {
9
		dbFehler("",$db->getDebugInfo());
10
		die ($db->getDebugInfo());
11
	};
12
	$db2=DB::connect($ERPdns);
13
	if (!$db2) dbFehler("",$db2->getDebugInfo());
14
	if (DB::isError($db2)) {
15
		dbFehler("",$db2->getDebugInfo());
16
		die ($db2->getDebugInfo());
17
	};
18
}
19
if ($_POST["ok"]) {
20
	$sql="select Kategorie_ID from kategorien where  Unterkategorie_von = '@PhPepperShop@'";
21
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
22
	$no=$rs[0]["Kategorie_ID"];
23
	foreach($_POST as $key=>$val) {
24
		if ($key=="ok") continue;
25
		if ($key=="alle") continue;
26
		$sql="update artikel_kategorie set FK_Kategorie_ID=$no where FK_Artikel_ID=$val";
27
		echo "$key ";
28
		if ($db->query($sql)) { echo "deaktiviert<br>"; }
29
		else { echo "konnte nicht deaktiviert werden<br>"; };
30
	}
31
} else {
32
$sql="select Kategorie_ID from kategorien where  Unterkategorie_von = '@PhPepperShop@'";
33
$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
34
if ($rs) {
35
	$no="K.FK_Kategorie_ID<>".$rs[0]["Kategorie_ID"];
36
} else {
37
	$no="1";
38
}
39
$sql="select partnumber from parts where shop='1' order by partnumber";
40
$erp=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
41
if ($erp) foreach ($erp as $zeile) { $arE[]=$zeile["partnumber"]; };
42
$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";
43
$shop=$db->getAll($sql,DB_FETCHMODE_ASSOC);
44
if ($shop) foreach ($shop as $zeile) {
45
	$arS[]=$zeile["Artikel_NR"];
46
	$arID[$zeile["Artikel_NR"]]=array("id"=>$zeile["Artikel_ID"],"name"=>$zeile["Name"]);
47
}
48
$result=@array_diff($arS,$arE);
49
if ($result) {
50
?>
51
<html>
52
<head><title>Artikelpflege</title>
53
<script language="JavaScript">
54
<!--
55
	function sel() {
56
		val=document.doppel.alle.checked;
57
		cnt=document.doppel.length;
58
		for (i=0; i<cnt; i++) {
59
			document.doppel.elements[i].checked=val;
60
		}
61
	}
62
//-->
63
</script>
64
</head>
65
<body>
66
Folgende Artikel sind in der ERP nicht mehr als Shopartikel markiert.<br>
67
Markieren Sie die Artikel, die deaktiviert werden sollen.<br>
68
<form name='doppel' method='post' action='diff.php'>
69
<table>
70
<?
71
foreach ($result as $data) {
72
	echo "\t<tr><td><input type='checkbox' name='".$data."' value='".$arID[$data]["id"]."'></td><td>".$data."</td><td>".$arID[$data]["name"]."</td></tr>\n";
73
}
74
?>
75
	<tr><td><input type='checkbox' name='alle' value='1' onClick="sel()"></td><td></td><td>alle Artikel</td></tr>
76
	<tr><td colspan='3'><input type='submit' name='ok' value='ok'></td></tr>
77
</table>
78
<form>
79
<? }
80
	else { "Artikelbestand identisch"; };
81
} ?>
82
<a href="trans.php">zur&uuml;ck</a>
pepper/erpexport.php
1
<?
2
/***************************************************************
3
* $Id: erpexport.php  2006/02/06 13:50:30 hli Exp $
4
*Author: Holger Lindemann
5
*Copyright: (c) 2004 Lx-System
6
*License: non free
7
*eMail: info@lx-system.de
8
*Version: 1.0.1
9
*ERP: Lx-Office ERP
10
***************************************************************/
11
?>
12
<html>
13
	<head><title>Lx-ERP Export der Shopartikel</title>
14
	<link type="text/css" REL="stylesheet" HREF="css/main.css"></link>
15
	<script language="JavaScript">
16
	<!--
17
		function pepper() {
18
			document.fld.PN.value="Artikel-Nr"; document.fld.partnumber.checked=true;
19
			document.fld.BEZ.value="Name"; document.fld.desctiption.checked=true;
20
			document.fld.GEWICHT.value="Gewicht"; document.fld.weight.checked=true;
21
			document.fld.MWST.value="MwSt-Satz"; document.fld.rate.checked=true;
22
			document.fld.VK.value="Preis"; document.fld.sellprice.checked=true;
23
			document.fld.PG.value="Kategorien"; document.fld.partsgroup.checked=true;
24
			document.fld.BESCHR.value="Beschreibung"; document.fld.notes.checked=true;
25
			document.fld.PG.value="Lagerbestand"; document.fld.onhand.checked=true;
26
			document.fld.encl.value="";
27
			document.fld.deli.value=";";
28
			document.fld.crln.value="\\n";
29
			document.fld.head.checked=true;
30
			document.fld.shop.value="pepper";
31
		}
32
	//-->
33
	</script>
34
<body>
35

  
36
<?php
37
require_once "DB.php";
38
require_once "conf.php";
39

  
40
$db=DB::connect($ERPdns);
41
if (!$db) dbFehler("",$db->getDebugInfo());
42
if (DB::isError($db)) {
43
	dbFehler("",$db->getDebugInfo());
44
	die ($db->getDebugInfo());
45
};
46
/****************************************************
47
* dbFehler
48
* in: sql,err = string
49
* out:
50
* Fehlermeldungen ausgeben
51
*****************************************************/
52
function dbFehler($sql,$err) {
53
global $showErr;
54
	if ($showErr)
55
		echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
56
}
57

  
58
function shopartikel() {
59
global $db;
60
	$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 ";
61
	$sql.="parts P left join partsgroup PG on  PG.id=P.partsgroup_id ";
62
	$sql.="left join chart c on c.id = P.income_accno_id ";
63
	$sql.="left join tax T on T.taxkey=C.taxkey_id ";
64
	$sql.="where shop = 't'";
65
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
66
	return $rs;
67
}
68
if ($_POST["export"]) {
69
	$data=shopartikel();
70
	$delim=($_POST["deli"])?$_POST["deli"]:",";
71
	if (get_magic_quotes_gpc()) {
72
		$crln = stripslashes($_POST["crln"]);
73
	}
74
	$crln = str_replace('\\r', "\015", $crln);
75
	$crln = str_replace('\\n', "\012", $crln);
76
	$crln = str_replace('\\t', "\011", $crln);
77
	$encl=$_POST["encl"];
78
	$i=0;
79
	$f=fopen($ERPdir,"w");
80
	if ($_POST["partnumber"])	{$header.=$_POST["PN"].$delim; };
81
	if ($_POST["desctiption"])	{$header.=$_POST["BEZ"].$delim; };
82
	if ($_POST["unit"])			{$header.=$_POST["EINHEIT"].$delim; };
83
	if ($_POST["weight"])		{$header.=$_POST["GEWICHT"].$delim; };
84
	if ($_POST["onhand"])		{$header.=$_POST["LAGER"].$delim; };
85
	if ($_POST["rate"])			{$header.=$_POST["MWST"].$delim; };
86
	if ($_POST["sellprice"])	{$header.=$_POST["VK"].$delim; };
87
	if ($_POST["listprice"])	{$header.=$_POST["EK"].$delim; };
88
	if ($_POST["priceupdate"])	{$header.=$_POST["PDATE"].$delim; };
89
	if ($_POST["partsgroup"])	{$header.=$_POST["PG"].$delim; };
90
	if ($_POST["notes"])		{$header.=$_POST["BESCHR"].$delim; };
91
	if ($_POST["image"])		{$header.=$_POST["IMAGE"].$delim; };
92
	$header=substr($header,0,-1);
93
?>
94
<table class="liste">
95
<!-- BEGIN Artikel -->
96
<?
97
function downloadImage($image,$name) {
98
global $ERPftphost,$ERPftpuser,$ERPftppwd,$ERPimgdir, $maxSize, $iconSize;
99
	$conn_id = ftp_connect($ERPftphost);
100
	ftp_login($conn_id,$ERPftpuser,$ERPftppwd);
101
	$src=$ERPimgdir."/".$image;
102
	$typ=substr($image,strrpos($image,"."));
103
	echo "tmp/".$name."_gr$typ $src";
104
	$upload=ftp_get($conn_id,"tmp/".$name."_gr$typ","$src",FTP_BINARY);
105
	ftp_quit($conn_id);
106
	if (!$upload) { echo "Ftp download war fehlerhaft!"; return false; };
107
	echo "convert  -resize $iconSize tmp/".$name."_gr$typ tmp/".$name."_kl$typ";
108
	exec("convert  -resize $iconSize tmp/".$name."_gr$typ tmp/".$name."_kl$typ",$aus,$rc);
109
	print_r($aus); echo "!$rc!";
110
}
111
	$i=0;
112
	$f=fopen($ERPdir,"w");
113
	if ($_POST["head"]) fputs($f,$header.$crln);
114
	foreach($data as $zeile) {
115
		$file=""; $html="";
116
		if ($_POST["shop"]=="pepper") {
117
			if (preg_match("/^\[.*\].*/",$zeile["partsgroup"])) { $PG=$zeile["partsgroup"]; }
118
			else { $PG="[".$zeile["partsgroup"]."]"; };
119
			$mwst=$zeile["rate"]*100;
120
		} else if ($_POST["shop"]=="oscomm") {
121
			$mwst=sprintf("%01.4f",($zeile["rate"]*100));
122
			$PG=$zeile["partsgroup"];
123
		} else {
124
			$PG=$zeile["partsgroup"];
125
			$mwst=$zeile["rate"]*100;
126
		};
127
		$LineCol = $bgcol[$i%2+1];
128
		if ($_POST["partnumber"])	{$file.=$encl.$zeile["partnumber"].$encl.$delim; $html.="<td>".$zeile["partnumber"]."</td>";};
129
		if ($_POST["desctiption"])	{$file.=$encl.strtr($zeile["description"],chr(13).chr(10),"  ").$encl.$delim; $html.="<td>".$zeile["description"]."</td>";};
130
		if ($_POST["unit"])			{$file.=$encl.$zeile["unit"].$encl.$delim; $html.="<td>".$zeile["unit"]."</td>";};
131
		if ($_POST["onhand"])			{$file.=$encl.$zeile["onhand"].$encl.$delim; $html.="<td>".$zeile["onhand"]."</td>";};
132
		if ($_POST["weight"])		{$file.=$encl.$zeile["weight"].$encl.$delim; $html.="<td>".$zeile["weight"]."</td>";};
133
		if ($_POST["rate"])			{$file.=$encl.$mwst.$encl.$delim; $html.="<td>".$mwst."</td>";};
134
		if ($_POST["sellprice"])	{$file.=$encl.(sprintf("%02.2f",$zeile["sellprice"])).$encl.$delim; $html.="<td>".(sprintf("%02.2f",$zeile["sellprice"]))."</td>";};
135
		if ($_POST["listprice"])	{$file.=$encl.(sprintf("%02.2f",$zeile["listprice"])).$encl.$delim; $html.="<td>".(sprintf("%02.2f",$zeile["listprice"]))."</td>";};
136
		if ($_POST["priceupdate"])	{$file.=$encl.$zeile["priceupdate"].$encl.$delim; $html.="<td>".$zeile["priceupdate"]."</td>";};
137
		if ($_POST["partsgroup"])	{$file.=$encl.$PG.$encl.$delim; $html.="<td>".$zeile["partsgroup"]."</td>";};
138
		if ($_POST["notes"])		{$file.=$encl.strtr($zeile["notes"],chr(13).chr(10),"  ").$encl.$delim; $html.="<td>".$zeile["notes"]."</td>";};
139
		if ($_POST["image"])		{$file.=$encl.$zeile["image"].$encl.$delim; $html.="<td>".$zeile["image"]."</td>";};
140
		$i++;
141
		fputs($f,substr($file,0,-1).$crln);
142
		if ($zeile["image"] && $_POST["image"]) { downloadImage($zeile["image"],$zeile["partnumber"]); }
143
		if ($_POST["show"]) {
144
?>
145
	<tr  class="smal" onMouseover="this.bgColor='#FF0000';" onMouseout="this.bgColor='<?= $LineCol ?>';" bgcolor="<?= $LineCol ?>">
146
		<?= $html ?>
147
	</tr>
148
<? 		}
149
	}
150
?>
151
<!-- END Artikel -->
152
</table>
153
Anzahl der Artikel: <?= $i ?><br>
154
Export am : <?= date("d.m.Y : H:i") ?><br>
155
download <a href="tmp/shopartikel.csv">Exportfile</a><br><hr>
156
<?
157
	fclose($f);
158
} // if ($export)
159
?>
160
Export der Shopartikel aus Lx-ERP <br>
161
M&ouml;gliche Felder
162
<form name="fld" action="erpexport.php" method="post">
163
<input type="hidden" name="shop" value="">
164
<table>
165
	<tr>
166
		<td><input type="checkbox" name="partnumber" value="1">Artikelnummer</td>
167
		<td><input type="checkbox" name="desctiption" value="1">Bezeichnung</td>
168
		<td><input type="checkbox" name="unit" value="1">Einheit</td>
169
		<td><input type="checkbox" name="weight" value="1">Gewicht</td>
170
	</tr>
171
	<tr>
172
		<td><input type="text" name="PN" size="23"></td>
173
		<td><input type="text" name="BEZ" size="23"></td>
174
		<td><input type="text" name="EINHEIT" size="23"></td>
175
		<td><input type="text" name="GEWICHT" size="23"></td>
176
	</tr>
177
	<tr><td colspan=5></td></tr>
178
	<tr>
179
		<td><input type="checkbox" name="sellprice" value="1">Verkaufspreis</td>
180
		<td><input type="checkbox" name="listprice" value="1">Listenpreis</td>
181
		<td><input type="checkbox" name="onhand" value="1">Lagerbestand</td>
182
		<td><input type="checkbox" name="rate" value="1">MwSt</td>
183
	</tr>
184
	<tr>
185
		<td><input type="text" name="VK" size="23"></td>
186
		<td><input type="text" name="EK" size="23"></td>
187
		<td><input type="text" name="LAGER" size="23"></td>
188
		<td><input type="text" name="MWST" size="23"></td>
189
	</tr>
190
	<tr><td colspan=5></td></tr>
191
	<tr>
192
		<td><input type="checkbox" name="partsgroup" value="1">Gruppe</td>
193
		<td><input type="checkbox" name="notes" value="1">Beschreibung</td>
194
		<td><input type="checkbox" name="image" value="1">Bild</td>
195
		<td><input type="checkbox" name="show" value="1" checked>HTML-Anzeige</td>
196
	</tr>
197
	<tr>
198
		<td><input type="text" name="PG" size="23"></td>
199
		<td><input type="text" name="BESCHR" size="23"></td>
200
		<td><input type="text" name="IMAGE" size="23"></td>
201
		<td></td>
202
	</tr>
203
	<tr>
204
		<td>Feldtrenner <input type="text" name="deli" size="2" value=","></td>
205
		<td>Feldumrahmung <input type="text" name="encl" size="2" value="&quot;"></td>
206
		<td>Zeilenende <input type="text" name="crln" size="2" value="\n"></td>
207
		<td><input type="checkbox" name="head" value="1" checked>Headline</td>
208
	</tr>
209
	<tr>
210
		<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>
211
	</tr>
212
</table>
213
<a href="trans.php">zur&uuml;ck</a>
214
</form>
215
</body>
216
</html>
pepper/export_to_erp/export_to_erp.php
1
<?
2
/***************************************************************
3
*Author: Holger Lindemann
4
*Copyright: (c) 2004 Lx-System
5
*License: non free
6
*eMail: info@lx-system.de
7
*Version: 1.0.1
8
*Shop: PHPeppershop 1.5
9
*ERP: Lx-Office ERP
10
***************************************************************/
11
// -----------------------------------------------------------------------
12
// Damit jedes andere Modul ueberpruefen kann ob dieses hier schon "included" ist
13
// wird folgende Vairable auf true gesetzt (Name = Ext. Modulname + Dateiname ohne .php)
14
$erp_export_erp_export = true;
15

  
16
?>
17
<html>
18
	<head><title>Lx-ERP Export der Shopartikel</title>
19
	<link type="text/css" REL="stylesheet" HREF="css/main.css"></link>
20
	<script language="JavaScript">
21
	<!--
22
		function pepper() {
23
		}
24
	//-->
25
	</script>
26
<body>
27

  
28
<?php
29
$inip=get_cfg_var("include_path");
30
ini_set("include_path",$inip.":/usr/share/pear/:.");
31

  
32
require_once "DB.php";
33
require_once "conf.php";
34

  
35
$db=DB::connect($SHOPdns);
36
if (!$db) dbFehler("",$db->getDebugInfo());
37
if (DB::isError($db)) {
38
	dbFehler("",$db->getDebugInfo());
39
	die ($db->getDebugInfo());
40
};
41
$db2=DB::connect($ERPdns);
42
if (!$db2) dbFehler("",$db2->getDebugInfo());
43
if (DB::isError($db2)) {
44
	dbFehler("",$db2->getDebugInfo());
45
	die ($db2->getDebugInfo());
46
};
47
/****************************************************
48
* dbFehler
49
* in: sql,err = string
50
* out:
51
* Fehlermeldungen ausgeben
52
*****************************************************/
53
function dbFehler($sql,$err) {
54
global $showErr;
55
	if ($showErr)
56
		echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
57
}
58
function checkBestellung($status) {
59
global $db;
60
	if ($status=="B") { $where="";}  // B = alle Bestellungeb, N = neue, Y = alte
61
	else { $where="where Bestellung_bezahlt = '$status'";}
62
	$sql="select * from bestellung $where order by Datum";
63
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
64
	return (count($rs)>0)?count($rs):false;
65
}
66
function getBestellKunde($BID) {
67
global $db;
68
	$sql="select * from kunde left join bestellung_kunde on Kunden_ID=FK_Kunden_ID where  FK_Bestellungs_ID=$BID";
69
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
70
	return $rs[0]["Kunden_Nr"];
71
}
72
function sonderkosten($transID,$data,$id,$f) {
73
global $db2,$versand,$nachn,$minder,$treuh,$paypal;
74
	$sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
75
	$sql.=$transID.",".${$id}["ID"].",'".${$id}["TXT"]."',1,".$data.",'mal',0,0)";
76
	fputs($f,"$transID,".${$id}["ID"].",'".${$id}["TXT"]."',1,$data\n");
77
	if (!$db2->query($sql)) { return false; }
78
	else { return true; };
79
}
80
function insBestArtikel($zeile,$transID) {
81
global $db,$db2,$div07,$div16,$f,
82
	$versandID,$nachnID,$minderID,$treuhID,$paypalID;
83
	$BID=$zeile["Bestellungs_ID"];
84
	$sql ="select * from artikel left join artikel_bestellung on Artikel_ID=FK_Artikel_ID ";
85
	$sql.="left join bestellung on Bestellungs_ID=FK_Bestellungs_ID where Bestellungs_ID=$BID";
86
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
87
	$ok=true;
88
	foreach ($rs as $zeile) {
89
		$sql="select * from parts where partnumber='".$zeile["Artikel_Nr"]."'";
90
		$rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
91
		if ( $rs2[0]["id"]) {$artID=$rs2[0]["id"]; }
92
		else { $artID=($zeile["MwSt_Satz"]=="7")?$div07["ID"]:$div16["ID"]; };
93
		//$preis=round($zeile["Preis"]/($zeile["MwSt_Satz"]+100)*100,2);
94
		$preis=$zeile["Preis"];
95
		$notes=$zeile["Artikelname"];
96
		$vari=split(chr(254),$zeile["Variation"]);
97
		if ($vari) { for($cnt=0; $cnt<count($vari); $cnt++) {
98
				$notes.="\n".$vari[$cnt];
99
				$cnt++;
100
				$preis+=trim($vari[$cnt]) * $zeile["Anzahl"];
101
			}
102
		};
103
		$opts=split(chr(254),$zeile["Optionen"]);
104
		if ($opts) { for($cnt=0; $cnt<count($opts); $cnt++) {
105
				$notes.="\n".$opts[$cnt];
106
				$cnt++;
107
				$preis+=trim($opts[$cnt]) * $zeile["Anzahl"];
108
			}
109
		}		
110
		$sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
111
		$sql.=$transID.",".$artID.",'".$notes."',".$zeile["Anzahl"].",".$preis.",'Stck',0,0)";
112
		if (!$db2->query($sql)) { $ok=false; break; };
113
		fputs($f,$transID.",".$artID.",'".$zeile["Artikelname"]."',".$zeile["Anzahl"].",".$preis."\n");
114
		echo "-".$artID." ".$zeile["Anzahl"]." x ".$preis." ".$zeile["Artikelname"]."<br>";
115
	}
116
	if ($zeile["Versandkosten"]) {
117
		$rc=sonderkosten($transID,$zeile["Versandkosten"],"versand",$f);
118
	}
119
	if ($zeile["Nachnamebetrag"]) {
120
		$rc=sonderkosten($transID,$zeile["Nachnamebetrag"],"nachn",$f);
121
	}	
122
	if ($zeile["Mindermengenzuschlag"]) {
123
		$rc=sonderkosten($transID,$zeile["Mindermengenzuschlag"],"minder",$f);
124
	}	
125
	if ($zeile["Treuhandkosten"]) {
126
		$rc=sonderkosten($transID,$zeile["Treuhandkosten"],"treuh",$f);
127
	}	
128
	if ($zeile["Paypalkosten"]) {
129
		$rc=sonderkosten($transID,$zeile["Paypalkosten"],"paypal",$f);
130
	}	
131
	if ($ok) {
132
		$sql="update bestellung set Bestellung_bezahlt='Y' WHERE Bestellungs_ID =$BID";
133
		$rc=$db->query($sql);
134
		fputs($f,"ok\n");
135
		return true;
136
	} else {
137
		$sql="delete from orderitems where trans_id=$transID";
138
		$rc=$db->query($sql);
139
		$sql="delete from oe where id=$transID";
140
		$rc=$db->query($sql);
141
		fputs($f,"Fehler (insBestArtikel)!!!!\n");
142
		return false;
143
	}
144
}
145
function getBestellung_() {
146
global $db,$db2,$ERPusr,$f;
147
	$sql="select * from bestellung where Bestellung_bezahlt='N' order by Bestellungs_ID";
148
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
149
	$ok=true;
150
	foreach ($rs as $zeile) {
151
		$kdnr=getBestellKunde($zeile["Bestellungs_ID"]);
152
		$newID=uniqid (rand());
153
		$sql="insert into oe (notes) values ('$newID')";
154
		$rc=$db2->query($sql);
155
		$sql="select * from oe where notes = '$newID'";
156
		$rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
157
		$Bezahlung=$zeile["Bezahlungsart"];
158
		if ($Bezahlung=="Lastschrift") {
159
			$sql="select * from kunde where Kunden_Nr=$kdnr";
160
			$kd=$db->getAll($sql,DB_FETCHMODE_ASSOC);
161
			$Bezahlung.="\nKontoinhaber: ".$kd[0]["kontoinhaber"]."\n";
162
			$Bezahlung.="Bankname: ".$kd[0]["bankname"]."\n";
163
			$Bezahlung.="Blz: ".$kd[0]["blz"]."\n";
164
			$Bezahlung.="KontoNr: ".$kd[0]["kontonummer"];
165
		}
166
		$sql ="update oe set ordnumber=".$zeile["Bestellungs_ID"].", transdate='".$zeile["Datum"]."', intnotes='".$zeile["Anmerkung"];
167
		$sql.="', customer_id=$kdnr, amount=".($zeile["Rechnungsbetrag"]+$zeile["MwSt"]).", netamount=".$zeile["Rechnungsbetrag"];
168
		$sql.=", reqdate='".$zeile["Datum"]."', notes='$Bezahlung', taxincluded='f', curr='EUR',employee_id=".$ERPusr["ID"].", vendor_id=0 ";
169
		$sql.="where id=".$rs2[0]["id"];
170
		$rc=$db2->query($sql);
171
		fputs($f,"ordnumber=".$zeile["Bestellungs_ID"].", transdate='".$zeile["Datum"]."', customer_id=$kdnr, amount=".($zeile["Rechnungsbetrag"]+$zeile["MwSt"]).", notes=".$zeile["Bezahlungsart"]."\n");
172
		echo $rs2[0]["id"]."<br>";
173
		if (!insBestArtikel($zeile,$rs2[0]["id"])) { $ok=false; break; };
174
	}
175
	return $ok;
176
}
177
function chkKdData($data) {
178
global $db2;
179
	$sql="select * from customer where id = ".$data["Kunden_Nr"];
180
	$rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
181
	if ($rs[0]["zipcode"]<>$data["Plz"]) $set.="zipcode='".$data["Plz"]."',";
182
	if ($rs[0]["city"]<>$data["Ort"]) $set.="city='".$data["Ort"]."',";
183
	if ($rs[0]["land"]<>$data["Land"]) $set.="land='".$data["Land"]."',";
184
	if ($rs[0]["phone"]<>$data["Tel"])$set.="phone='".$data["Tel"]."',";
185
	if ($rs[0]["fax"]<>$data["Fax"])  $set.="fax='".$data["Fax"]."',";
186
	if ($rs[0]["email"]<>$data["Email"])$set.="email='".$data["Email"]."',";
187
	if ($rs[0]["notes"]<>$data["Beschreibung"])$set.="notes='".$data["Beschreibung"]."',";
188
	if ($data["Firma"]) {
189
		if ($rs[0]["name"]<>$data["Firma"]) $set.="set name='".$data["Firma"]."',";
190
		if ($rs[0]["name2"]<>$data["Anrede"]." ".$data["Vorname"]." ".$data["Nachname"]) $set.="name2='".$data["Anrede"]." ".$data["Vorname"]." ".$data["Nachname"]."',";
191
	} else {
192
		if ($rs[0]["name"]<>$data["Nachname"].", ".$data["Vorname"]) $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',";
193
	}
194
	if ($data["Strasse"]) {
195
		if ($rs[0]["street"]<>$data["Strasse"]) $set.="street='".$data["Strasse"]."',";
196
	} else if ($data["Postfach"]) {
197
		if ($rs[0]["street"]<>$data["Postfach"]) $set.="street='".$data["Postfach"]."',";
198
	};
199
	if ($set) {
200
		$sql="update customer set ".substr($set,0,-1)." where id=".$rs[0]["id"];
201
		$rc=$db2->query($sql);
202
	}
203
}
204
function insKdData($data) {
205
global $db2;
206
	$newID=$data["Kunden_ID"];
207
	$sql="insert into customer (name) values ('$newID')";
208
	$rc=$db2->query($sql);
209
	$sql="select * from customer where name = '$newID'";
210
	$rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
211
	if ($data["Firma"]) { $set.="set name='".$data["Firma"]."',name2='".$data["Anrede"]." ".$data["Vorname"]." ".$data["Nachname"]."',"; }
212
	else { $set.="set name='".$data["Nachname"].", ".$data["Vorname"]."',"; }
213
	if ($data["Strasse"]) { $set.="street='".$data["Strasse"]."',"; }
214
	else if ($data["Postfach"]) { $set.="street='".$data["Postfach"]."',"; };
215
	$set.="zipcode='".$data["Plz"]."',";
216
	$set.="city='".$data["Ort"]."',";
217
	$set.="land='".$data["Land"]."',";
218
	$set.="phone='".$data["Tel"]."',";
219
	$set.="fax='".$data["Fax"]."',";
220
	$set.="email='".$data["Email"]."',";
221
	$set.="notes='".$data["Beschreibung"]."',";
222
	$set.="taxincluded='f' ";
223
	$sql="update customer ".$set;
224
	$sql.="where id=".$rs[0]["id"];
225
	$rc=$db2->query($sql);
226
	return $rs[0]["id"];
227
}
228
function checkKunde() {
229
global $db,$f;
230
	$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'";
231
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
232
	$ok=true;
233
	$anzahl=count($rs);
234
	$neu=0; $old=0;
235
	foreach ($rs as $zeile) {
236
		if ($zeile["Kunden_Nr"]>0) {
237
			chkKdData($zeile);
238
			$old++;
239
		} else {
240
			$zeile["Kunden_Nr"]=insKdData($zeile);
241
			if ($zeile["Kunden_Nr"]>0) {
242
				$sql="update kunde set Kunden_Nr='".$zeile["Kunden_Nr"]."' where k_ID=".$zeile["k_ID"];
243
				$rc=$db->query($sql);
244
			} else {
245
				$ok=false; break;
246
			}
247
			$neu++;
248
		}
249
		fputs($f,$zeile["Nachname"]." ".$zeile["Firma"]."\n");
250
		fputs($f,"\n----------------------------------------\n\n");
251
	}
252
	return ($ok)?array($anzahl,$neu,$old):false;
253
}
254

  
255
function savedata($str) {
256
global $f;
257
	foreach ($str as $val) {
258
		$str.=$val.",";
259
	}
260
	fputs($f,substr($str,0,-1)."\n");
261
}
262

  
263
$f=fopen("./module/export_to_erp/tmp/".date("y-m-dH:i").".shop","w");
264
$ok=checkBestellung("N");
265
if ($ok) {
266
	echo "Es liegen $ok Bestellungen vor. <br>";
267
	fputs($f,"Es liegen $ok Bestellungen vor. \n");
268
	$ok=checkKunde();
269
	if ($ok) {
270
		echo $ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).<br>";
271
		fputs($f,$ok[0]." Kunden, davon ".$ok[1]." neue(r) Kunde(n).\n");
272
		$ok=getBestellung_();
273
		if ($ok) { echo "Daten transferiert!";  fputs($f,"Daten transferiert!\n");}
274
		else { echo "Fehler (Bestellungen)! ! ! ";   fputs($f,"Fehler (Bestellungen)! ! !\n");};
275
	} else {
276
		 echo "Fehler (Kunden)! ! ! ";   fputs($f,"Fehler (Kunden)! ! !\n");
277
	}
278
} else { echo "Keine Bestellungen!<br>";  fputs($f,"keine Bestellungen\n");};
279

  
280
fclose($f);
281

  
282
if ($backlink == 6) {
283
    echo "<button type='button' onClick='self.location.href=\"./module_admin_aufruf.php?darstellen=6\"'>Zur&uuml;ck zur Moduladministration</button>";
284
}
285
else {
286
    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>";
287
}
288

  
289
?>
290
</body>
291
</html>
pepper/export_to_erp/initialize_module.php
1
<?php
2
// Filename: initialize_module.php
3
//
4
// Modul: Externes PhPepperShopmodul: log_viewer
5
//
6
// Autoren: Jos? Fontanil & Reto Glanzmann
7
//
8
// Zweck: Definition des Log-Viewer Moduls
9
//
10
// Sicherheitsstatus:                     *** ADMIN ***
11
//
12
// Version: 1.5
13
//
14
// 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$
15
//
16
// -----------------------------------------------------------------------
17
// PhPepperShop Shopsystem
18
// Copyright (C) 2001-2004  Jose Fontanil, Reto Glanzmann
19
// 
20
// Lizenz
21
// ======
22
// 
23
// Die verbindliche PhPepperShop Lizenz ist in folgender 
24
// Datei definiert: PhPepperShop_license.txt
25
// -----------------------------------------------------------------------
26
// API Version der hier verwendeten PhPepperShop Modulschnittstelle:
27
$pps_module_api = '1.0';
28

  
29
// Informationen zu externen PhPepperShop Modulen:
30
// ===============================================
31
// Module bestehen meistens aus zwei Verzeichnissen: {shopdir}/shop/module/modul_name
32
// und {shopdir}/shop/Admin/module/modul_name. Im Admin-Modulverzeichnis muss mindestens
33
// diese Datei (initialize_module.php) vorhanden sein. Es gibt auch reine Administrations-
34
// module, welche nur Dateien im Admin-Unterverzeichnis haben und keine Dateien im kunden-
35
// seitigen Verzeichnis benoetigen.
36
// - Ein Modul kann aber ohne weiteres auch eigene Unterverzeichnisse besitzen, sowie auch
37
//   Submodule haben.
38
// - Damit Module Daten persistent speichern koennen, duerfen sie waehrend der Installation
39
//   eigene Tabellen erstellen und bestehende um eigene Attribute erweitern. Bei einer De-
40
//   installation werden diese Datenbankerweiterungen wieder entfernt.
41
// - User-Security Scripte befinden sich in {shopdir}/shop/module/modul_name,
42
//   die Admin-Security-Scripts befinden sich im Admin-Pendant.
43
// - Module koenne (zumindest im Moment) noch keine eigenen Interfaces haben.
44
// - Module koennen weitere Module als Voraussetzung angeben.
45

  
46
// Definition der Variablen:
47
// =========================
48
// Die weiter unten definierten Variablen dienen der Beschreibung des Moduls. Diese muss
49
// sehr ausfuehrlich sein, damit das automatisierte Installations- und Deinstallationsscript
50
// durchlaufen kann. Nomenklatur:
51
// x.) Bezeichnung    : Leitet eine weitere Definition ein. x ist eine Laufnummer
52
// ! Beschreibung     : Beschreibung umschreibt Hinweise zum Thema der Bezeichnung
53
// --> Einschraenkung : Mit --> werden ZWINGEND ZU BEFOLGENDE Einschraenkungen der Bezeichnung genannt
54

  
55
// --------------------------------------------------------------------------------------
56
// ******************************* DEFINITION DES MODULS *******************************
57
// --------------------------------------------------------------------------------------
58

  
59
//  1.) Name des Moduls (entspricht dem Verzeichnisname des Moduls)
60
//      --> Der Name eines externen PhPepperShop Moduls darf hoechstens 40 Zeichen lang sein.
61
//      --> Der Name muss mindestens 3 Zeichen lang sein.
62
//      --> Er darf NUR aus alphanummerischen Zeichen und dem Underscore Zeichen (_) bestehen.
63
//      --> Dieser Name ist gleichzeitig auch der Name des Verzeichnisses des Moduls.
64
$moduldef['modulname'] = 'export_to_erp';
65

  
66
// 2.) Bezeichnung des Moduls
67
//      ! Dies ist die Bezeichnung des Moduls und unterliegt somit weniger Restriktionen als der Modulname
68
//      --> Der Name darf hoechstens 40 Zeichen lang sein
69
//      --> Der Name muss mindestens 3 Zeichen lang sein.
70
$moduldef['modulbezeichnung'] = 'ERP Export';
71

  
72
// 3.) Versionschecknummern
73
//      ! Diese Nummern definieren die zu verwendende PhPepperShop Versionen. Die Versionisierung
74
//        ist wie folgt: Die erste und zweite Nummer (durch Punkt getrennt) ergeben ein Release.
75
//        Jedes unterstuetzte Release muss explizit angegeben werden. Die dritte (durch einen
76
//        Punkt getrennte Nummer (eigentlich ein String), definiert Versionen des Releases. Alle
77
//        Versionen eines Releases sind kompatibel, es sei denn man definiert auch die Versions-
78
//        Nummer, dann sind alle aelteren Versionen des angegebenen Releases inkompatibel.
79
//        Bsp. 1.4;1.5     = Das Modul ist kompatibel zu den Releases 1.4 und 1.5. Dies schliesst auch
80
//                           alle Versionen der beiden Releases mit ein: 1.4.003, 1.4.004, 1.5.1, ...
81
//        Bsp. 1.4.005;1.5 = Hier sind alle Versionen von 1.4 mit und nach 1.4.005 kompatibel und
82
//                           alle Versionen von 1.5.
83
//      ! Achtung: Man sollte keine zukuenftigen Releases angeben!
84
//      --> Einzelne Versionen via Strichpunkt getrennt eingeben.
85
$moduldef['versionschecknummern'] = '1.4.008;1.5';
86

  
87
//  4.) Kurzbeschreibung
88
//      ! Formatierungen sollen via HTML-Tags eingegeben werden.
89
$moduldef['kurzbeschreibung'] = 'Eportiert Kundendaten und Bestellungen f&uuml;r Lx-Office ERP.
90
				 Neukunden werden in der ERP angelegt und die ERP-KdNr in Kundendaten eingepflegt,
91
				 bei Bestandskunden werden die Kundendaten abgeglichen.
92
				 Das Feld "Bestellung_bezahlt" ist der Merker f&uuml;r neue Bestellungen.
93
                                ';
94

  
95
//  5.) Weiterfuehrender Link
96
//      ! Wenn dieser (optionale) Link angegeben ist, so kann der Shopadmin hier weitere Infos zum Modul holen.
97
//      --> Das Schema muss vor der URL angegeben werden (Schema = http:// oder https://, ...)
98
$moduldef['weitere_infos_link'] = 'http://www.lx-office.org/';
99

  
100
//  6.) Version dieses Moduls
101
$moduldef['modulversion'] = '0.3';
102

  
103
//  7.) Releasedatum dieser Modulversion
104
//      --> Format: TT.MM.JJJJ
105
$moduldef['releasedatum'] = '17.12.2004';
106

  
107
//  8.) Informationen zu den Entwicklern
108
//      ! Beispiel: Jos? Fontanil <fontajos@phpeppershop.com>. Strings in <> werden als E-Mail angezeigt.
109
$moduldef['entwickler_infos'] = 'Holger Lindemann, Lx-System';
110

  
111
//  9.) Ist Submodul von
112
//      ! Hier kann man den Modulnamen (nicht die Modulbezeichnung!) des Hauptmoduls angeben, falls dieses
113
//        Modul hier ein Submodul des Hauptmoduls ist.
114
//      --> Der Name eines externen PhPepperShop Moduls darf hoechstens 40 Zeichen lang sein.
115
//      --> Der Name muss mindestens 3 Zeichen lang sein.
116
//      --> Er darf nur aus alphanummerischen Zeichen und dem Underscore Zeichen (_) bestehen.
117
//      --> Dieser Name ist gleichzeitig auch der Name des Verzeichnisses des HAUPTmoduls.
118
$moduldef['submodule_of'] = '';
119

  
120
// 10.) Fingerprint
121
//      ! Im Moment noch nicht benutzt - Spaeter wird hier ein MD5 Digest hinterlegbar sein, welcher dem
122
//        Shopadministrator erlaubt die Integritaet eines Moduls zu ueberpruefen.
123
//      --> MD5 Digest (32 Chars Laenge, Hexadezimales Alphabet)
124
$moduldef['fingerprint'] = '32fedef6229faab095a47718bac5d666';
125

  
126
// 11.) Unterstuetzte Locales (Sprachen und optional Laender) - dient (vorerst) nur zur Anzeige fuer den Shopadmin
127
//      --> Format: ISO-639-1 fuer alleinstehende Sprachen (Bsp. de;en;fr;sp;...)
128
//      --> Format: ISO-639-2 fuer Sprachen inkl. Laender (Bsp. de_CH;de_DE;en_GB;en_US)
129
//      --> Wenn das Modul weder Sprach-, noch Laenderabhaengig ist kann all angegeben werden.
130
//      --> Die einzelnen Angaben koennen Strichpunkt separiert eingegeben werden. ISO-639-1 und -2 koennen gemixt werden.
131
$moduldef['locales'] = 'all';
132

  
133
// 12.) Interfaces, bei welchen sich das Modul registrieren soll
134
//      ! Dies ist ein etwas komplexerer Eingabetyp - es ist ein mehrdimensionaler Array - mehr nicht.
135
//      ! Pro Interface, bei welchem sich das Modul registrieren will, sind vier Angaben noetig:
136
//        (1) Interface_ID, (2) Datei, worin sich die auszufuehrende Funktion befindet,
137
//        (3) Name der auszufuehrenden Funktion, (4) Filtertyp
138
//      --> Format: array('i_id'=>'w','file'=>'x','func'=>'y','filter'=>'z')
139
//          --> w = Interface_ID, Format: positive Integerzahl (max. Digits == 11)
140
//          --> x = Dateiname, Format: Dateiname.Extension (kein Pfad)
141
//          --> y = Funktionsname, Format: Name der Funktion ohne Klammern mit Argumenten
142
//          --> z = Filtertyp, Format: one_way oder filter
143
// Registrierung beim ersten Interface:
144
$moduldef['interfaces'] = array();
145

  
146
// 13.) Eigene Tabellen, welche angelegt werden sollen
147
//      ! Hier werden die eigens fuer dieses Modul zu erstellenden Tabellen angegeben
148
//      ! Wenn keine Tabellen erstellt werden muessen, einfach leerer Array definieren
149
//      --> Achtung: Eine Tabelle muss mindestens EIN Attribut besitzen, sonst wird sie nicht angelegt.
150
//      --> Format: array('table_name'=>'x','table_beschreibung'=>'y','attribute'=>z)
151
//          --> x = Name der Tabelle: MySQL Restriktionen (max. 64 Zeichen, keine Sonderzeichen, ...)
152
//          --> y = Beschreibung der Tabelle: Alphanummerische Zeichen, Kurzbeschrieb des Zwecks
153
//          --> z = Die Attribute der Tabelle, Format:
154
//                  array('name'=>a,'typ'=>b,'laenge'=>c,'zusatz'=>d,'null'=>e,'default'=>f,'extra'=>g,
155
//                        'primary'=>h,'index'=>i,'unique'=>j,'volltext'=>k,'beschreibung'=>l)
156
//                  --> a = Name des Attributs: (Alphanummerische Zeichen, siehe reservierte Woerter von MySQL)
157
//                  --> b = Typ: Datentyp dieses Tabellenattributs (z.B. int, varchar, text, ...)
158
//                  --> c = Laenge: Positive Integerzahl oder leer lassen (manchmal auch als maxlength interpretiert)
159
//                  --> d = Zusatz: '' | 'BINARY' | 'UNSIGNED' | 'UNSIGNED ZEROFILL'
160
//                  --> e = Null Setting: 'NULL | 'NOT NULL'
161
//                  --> f = Default: Defaultwert bei Neuerstellung in einer Zeile (max. Zeichenlaenge = 255)
162
//                  --> g = Extra: '' | 'auto_increment'
163
//                  --> h = Primary: '0' = ist NICHT Primary Key | '1' = IST Primary Key
164
//                  --> i = Index: '0' = Nein | '1' = Ja
165
//                  --> j = Unique: '0' = Nein | '1' = Ja
166
//                  --> k = Volltext Index: '0' = Nein | '1' = Ja (nicht bei allen Typen moeglich)
167
//                  --> l = Beschreibung: Wird nur hier und im Modulprozess verwendet (max. Chars = 255)
168
// Beschreibung der ersten eigenen Tabelle:
169
$moduldef['eigene_tabellen'] = array();
170

  
171
// 14.) Zu erweiternde, schon bestehende Tabellen
172
//      ! Hier werden die Tabellen beschrieben, welche schon existieren und durch weitere Attribute
173
//        erweitert werden sollen.
174
//      ! Wenn keine Tabellen erweitert werden sollen, einfach leerer Array definieren
175
//      --> Format: Dasselbe Format wie bei $moduldef['eigene_tabellen']. Die Beschreibung
176
//                  einer schon bestehenden Tabelle wird ignoriert, der Name muss aber stimmen.
177
$moduldef['erweiterte_tabellen'] = array();
178

  
179
// 15.) Submodule
180
//      ! Wenn dieses Modul aus mehreren weiteren Modulen besteht, so koennen diese hier angegeben werden.
181
//      ! Wenn keine Submodule existieren, einfach einen leeren String angeben.  (Strichpunkt getrennte Liste)
182
//      --> Format: 'submodul_name_1;submodul_name2;...;submodul_namex'
183
$moduldef['submodule'] = '';
184

  
185
// 16.) Vorausgesetzte Module
186
//      ! Hier werden Module angegeben, welche korrekt installiert vorhanden sein muessen, damit dieses
187
//        Modul ueberhaupt erst installiert wird. (Strichpunkt getrennte Liste)
188
//      ! Wenn keine solchen Module gibt, einfach einen leeren String uebergeben
189
//      --> Format: 'required_modul_name_1;required_modul_name2;...;required_modul_namex'
190
$moduldef['required_modules'] = '';
191

  
192
// 17.) Security ID
193
//      ! Mit der Security_ID kann man dem Modul den Zugang zu verschiedenen Interfaces sperren.
194
//        Auf diese Weise kann ein kompromittiertes Modul nur begrenzt Schaden anrichten.
195
//      ! Die niedrigste Stufe der Security_ID ist = 1, die h?chste Stufe = 32768. Je hoeher die
196
//        angegebene Security_ID ist, desto h?her ist auch die Zahl der erlaubten Interfaces
197
//      ! Welches Interface, welche minimale Security_ID erfordert um benutzt werden zu koennen,
198
//        ist in der Tabelle module_interfaces mit den Interfaceeintraegen ersichtlich.
199
//      --> Format: 'required_modul_name_1;required_modul_name2;...;required_modul_namex'
200
$moduldef['security_id'] = '1';
201

  
202
// 18.) Valid Hosts
203
//      ! Erweiterte Security wird es in der naechsten API-Version noch mit der valid_hosts Angabe geben.
204
//        Die Datenbank ist dafuer schon vorbereitet. (all = Alle Hosts, im Moment die Standardeinstellung)
205
//        Ausgewertet wird die Angabe aber noch nicht.
206
//      --> Format: all = Alle hosts | localhost = nur dieser Rechner | mehrere Rechner via ; getrennt angeben
207
$moduldef['valid_hosts'] = 'all';
208

  
209
// 19.) Name des Administrationsmenus
210
//      ! Im Administrationstool hat das Verwaltungsmenu dieses Moduls einen Namen, hier kann man
211
//        einen Namen definieren, wenn man keinen angibt, wird einfach die Modulbezeichnung verwendet
212
//      --> Format: Maximale Laenge 40 Zeichen, moeglichst keine Sonderzeichen verwenden
213
$moduldef['admin_menu_name'] = 'ERP Export';
214

  
215
// 20.) URL zur Datei, wo das Admin-Verwaltungsmenu liegt
216
//      ! Diese URL ist entweder absolut oder (besser) relativ zum {shopdir}/shop/Admin/module/modul_name Verzeichnis
217
//        Die hier angegebene Datei wird 'verlinkt' und mit dem in 'admin_menu_name' Namen versehen.
218
//        Info: Achtung: Jeder Link in dieser Datei muss folgende GET-Parameter mitgeben:
219
//        - darstellen=".$HTTP_GET_VARS['darstellen']
220
//        - installed_selection=".$HTTP_GET_VARS['installed_selection']
221
//        - backlink=".$HTTP_GET_VARS['backlink']
222
//      --> Format: URL
223
//$moduldef['admin_menu_link'] = 'show_log_viewer.php';
224
$moduldef['admin_menu_link'] = 'export_to_erp.php';
225

  
226
// 21.) URL zum Icon des Adminmenus
227
//      ! Diese URL ist relativ zum {shopdir}/shop/Admin/ Verzeichnis (sonst gibt es einen include-Fehler
228
//        Die hier angegebene Datei wird 'verlinkt' und mit dem in 'admin_menu_name' Namen versehen.
229
//      --> Format: URL
230
//      --> Format Icon: 48px x 48px, GIF oder PNG oder JPG.
231
$moduldef['admin_menu_img'] = 'modul_admin_img.gif';
232

  
233
// --------------------------------------------------------------------------------------
234
// ***************************** ENDE DEFINITION DES MODULS *****************************
235
// --------------------------------------------------------------------------------------
236

  
237

  
238
// Bitte unterhalb dieser Zeile keine Aenderungen mehr vornehmen.
239

  
240

  
241
// -----------------------------------------------------------------------
242
// Damit jedes andere Modul ueberpruefen kann ob dieses hier schon "included" ist
243
// wird folgende Vairable auf true gesetzt (Name = Ext. Modulname + Dateiname ohne .php)
244
$module_name_inkl_prefix = $module_modulname.'_initialize_module';
245
$$module_name_inkl_prefix = true;
246

  
247
// 'Mitsenden' der hier verwendeten API-Version
248
$moduldef['pps_module_api'] = $pps_module_api;
249

  
250
// Moduldefinitionsarray loeschen und somit den Speicher wieder freigeben
251

  
252
// End of file -----------------------------------------------------------
253
?>
pepper/menu.ini
1

  
2
[Shop]
3

  
4
[Shop--Warenexport]
5
module=pepper/shopimport_db.php
6

  
7
[Shop--Bestellungen]
8
module=pepper/pepperexport.php
9

  
10
[Shop--Konfiguration]
11
module=pepper/confedit.php
12

  
pepper/pepperexport.php
1
<?
2
/***************************************************************
3
* $Id: pepperexport.php,v 2.0 2006/02/06 13:49:11 hli Exp $
4
*Author: Holger Lindemann
5
*Copyright: (c) 2004 Lx-System
6
*License: non free
7
*eMail: info@lx-system.de
8
*Version: 1.3.0
9
*Shop: PHPeppershop 2.0
10
*ERP: Lx-Office ERP >= 2.2.0
11
***************************************************************/
12
?>
13
<html>
14
	<head><title>Lx-ERP Export der Shopartikel</title>
15
	<link type="text/css" REL="stylesheet" HREF="css/main.css"></link>
16
<body>
17

  
18
<?php
19
require_once "DB.php";
20
require_once "conf.php";
21
$db=DB::connect($SHOPdns);
22
if (!$db) dbFehler("",$db->getDebugInfo());
23
if (DB::isError($db)) {
24
	dbFehler("",$db->getDebugInfo());
25
	die ($db->getDebugInfo());
26
};
27
$db2=DB::connect($ERPdns);
28
if (!$db2) dbFehler("",$db2->getDebugInfo());
29
if (DB::isError($db2)) {
30
	dbFehler("",$db2->getDebugInfo());
31
	die ($db2->getDebugInfo());
32
};
33
/****************************************************
34
* dbFehler
35
* in: sql,err = string
36
* out:
37
* Fehlermeldungen ausgeben
38
*****************************************************/
39
function dbFehler($sql,$err) {
40
global $showErr;
41
	if ($showErr)
42
		echo "</td></tr></table><font color='red'>$sql : $err</font><br>";
43
}
44
function checkBestellung($status) {
45
global $db;
46
	if ($status=="B") { $where="";}  // B = alle Bestellungeb, N = neue, Y = alte
47
	else { $where="where Bestellung_bezahlt = '$status'";}
48
	$sql="select * from bestellung $where and Datum is not null  and Bestellung_abgeschlossen = 'Y' order by Datum";
49
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
50
	return (count($rs)>0)?count($rs):false;
51
}
52
function getBestellKunde($BID) {
53
global $db;
54
	$sql="select * from kunde left join bestellung_kunde on Kunden_ID=FK_Kunden_ID where  FK_Bestellungs_ID=$BID";
55
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
56
	return $rs[0]["Kunden_Nr"];
57
}
58
function sonderkosten($transID,$data,$id,$f) {
59
global $db2,$versand,$nachn,$minder,$treuh,$paypal;
60
	$sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
61
	$sql.=$transID.",".${$id}["ID"].",'".${$id}["TXT"]."',1,".$data.",'mal',0,0)";
62
	fputs($f,"$transID,".${$id}["ID"].",'".${$id}["TXT"]."',1,$data\n");
63
	if (!$db2->query($sql)) { return false; }
64
	else { return true; };
65
}
66
function insBestArtikel($zeile,$transID) {
67
global $db,$db2,$div07,$div16,$f,
68
	$versandID,$nachnID,$minderID,$treuhID,$paypalID;
69
	$BID=$zeile["Bestellungs_ID"];
70
	$sql ="select * from artikel left join artikel_bestellung on Artikel_ID=FK_Artikel_ID ";
71
	$sql.="left join bestellung on Bestellungs_ID=FK_Bestellungs_ID where Bestellungs_ID=$BID";
72
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
73
	$ok=true;
74
	foreach ($rs as $zeile) {
75
		$sql="select * from parts where partnumber='".$zeile["Artikel_Nr"]."'";
76
		$rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
77
		if ( $rs2[0]["id"]) {$artID=$rs2[0]["id"]; }
78
		else { $artID=($zeile["MwSt_Satz"]=="7")?$div07["ID"]:$div16["ID"]; };
79
		//$preis=round($zeile["Preis"]/($zeile["MwSt_Satz"]+100)*100,2);
80
		$preis=$zeile["Preis"];
81
		$notes=$zeile["Artikelname"];
82
		$vari=split(chr(254),$zeile["Variation"]);
83
		if ($vari) { for($cnt=0; $cnt<count($vari); $cnt++) {
84
				$notes.="\n".$vari[$cnt];
85
				$cnt++;
86
				$preis+=trim($vari[$cnt]) * $zeile["Anzahl"];
87
			}
88
		};
89
		$opts=split(chr(254),$zeile["Optionen"]);
90
		if ($opts) { for($cnt=0; $cnt<count($opts); $cnt++) {
91
				$notes.="\n".$opts[$cnt];
92
				$cnt++;
93
				$preis+=trim($opts[$cnt]) * $zeile["Anzahl"];
94
			}
95
		}
96
		if ($zeile["Zusatztexte"]) {
97
			$zusatz=strtr($zeile["Zusatztexte"],"þ","\n");
98
			$notes.="\n".$zusatz;
99
		}
100
		$sql="insert into orderitems (trans_id, parts_id, description, qty, sellprice, unit, ship, discount) values (";
101
		$sql.=$transID.",".$artID.",'".$notes."',".$zeile["Anzahl"].",".$preis.",'Stck',0,0)";
102
		$rc=$db2->query($sql);
103
		if (!$rc) { $ok=false; break; };
104
		fputs($f,$transID.",".$artID.",'".$zeile["Artikelname"]."',".$zeile["Anzahl"].",".$preis."\n");
105
		echo " - Artikel:[ BuNr.:$artID ArtNr:<b> ".$zeile["Anzahl"]." x ".$zeile["Artikel_Nr"]."</b> :".$zeile["Artikelname"]." ]<br>";
106
	}
107
	if ($zeile["Versandkosten"] && $ok) {
108
		$ok=sonderkosten($transID,$zeile["Versandkosten"],"versand",$f);
109
	}
110
	if ($zeile["Nachnamebetrag"] && $ok) {
111
		$ok=sonderkosten($transID,$zeile["Nachnamebetrag"],"nachn",$f);
112
	}
113
	if ($zeile["Mindermengenzuschlag"] && $ok) {
114
		$ok=sonderkosten($transID,$zeile["Mindermengenzuschlag"],"minder",$f);
115
	}
116
	if ($zeile["Treuhandkosten"] && $ok) {
117
		$ok=sonderkosten($transID,$zeile["Treuhandkosten"],"treuh",$f);
118
	}
119
	if ($zeile["Paypalkosten"] && $ok) {
120
		$ok=sonderkosten($transID,$zeile["Paypalkosten"],"paypal",$f);
121
	}
122
	if ($ok) {
123
		$sql="update bestellung set Bestellung_bezahlt='Y' WHERE Bestellungs_ID =$BID";
124
		$rc=$db->query($sql);
125
		fputs($f,"ok\n");
126
		return true;
127
	} else {
128
		$sql="delete from orderitems where trans_id=$transID";
129
		$rc=$db->query($sql);
130
		$sql="delete from oe where id=$transID";
131
		$rc=$db->query($sql);
132
		fputs($f,"Fehler (insBestArtikel)!!!!\n");
133
		return false;
134
	}
135
}
136
function getNextAnr() {
137
global $db2;
138
	$sql="select * from defaults";
139
	$sql1="update defaults set sonumber=";
140
	$rc=$db2->query("BEGIN");
141
	$rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
142
	$auftrag=$rs2[0]["sonumber"]+1;
143
	$rc=$db2->query($sql1.$auftrag);
144
	$rc=$db2->query("COMMIT");
145
	return $auftrag;
146
}
147
function getNextKnr() {
148
global $db2;
149
	$sql="select * from defaults";
150
	$sql1="update defaults set customernumber='";
151
	$rc=$db2->query("BEGIN");
152
	$rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
153
	$kdnr=$rs2[0]["customernumber"]+1;
154
	$rc=$db2->query($sql1.$kdnr."'");
155
	$rc=$db2->query("COMMIT");
156
	return $kdnr;
157
}
158
function getBestellung() {
159
global $db,$db2,$ERPusr,$f,$preA,$auftrnr;
160
	$sql="select * from bestellung where Bestellung_bezahlt='N' order by Bestellungs_ID";
161
	$rs=$db->getAll($sql,DB_FETCHMODE_ASSOC);
162
	$ok=true;
163
	foreach ($rs as $zeile) {
164
		$kdnr=getBestellKunde($zeile["Bestellungs_ID"]);
165
		echo "Kunde:[ Buchungsnummer:$kdnr ] ";
166
		$newID=uniqid (rand());
167
		if (ereg("&r=([0-9]+)",$zeile["Bestellung_string"],$refnr)) {
168
                        $refnr=$refnr[1];
169
                } else {
170
                        $refnr=$zeile["Bestellungs_ID"];
171
                }
172
                if ($auftrnr) {
173
                        $anr=$preA.getNextAnr();
174
                } else {
175
                        $anr=$preA.$refnr;
176
                }
177
                $sql="insert into oe (notes,ordnumber,cusordnumber) values ('$newID','$anr','$refnr')";
178
		$rc=$db2->query($sql);
179
		$sql="select * from oe where notes = '$newID'";
180
		$rs2=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
181
		$Bezahlung=$zeile["Bezahlungsart"];
182
		if ($Bezahlung=="Lastschrift") {
183
			$sql="select * from kunde where Kunden_Nr=$kdnr";
184
			$kd=$db->getAll($sql,DB_FETCHMODE_ASSOC);
185
			$Bezahlung.="\nKontoinhaber: ".$kd[0]["kontoinhaber"]."\n";
186
			$Bezahlung.="Bankname: ".$kd[0]["bankname"]."\n";
187
			$Bezahlung.="Blz: ".$kd[0]["blz"]."\n";
188
			$Bezahlung.="KontoNr: ".$kd[0]["kontonummer"];
189
		}
190
		$sql ="update oe set transdate='".$zeile["Datum"]."', intnotes='".$zeile["Anmerkung"];
191
		$sql.="', customer_id=$kdnr, amount=".$zeile["Rechnungsbetrag"].", netamount=".($zeile["Rechnungsbetrag"]-$zeile["MwSt"]);
192
		$sql.=", reqdate='".$zeile["Datum"]."', notes='$Bezahlung', taxincluded='f', curr='EUR',employee_id=".$ERPusr["ID"].", vendor_id=0 ";
193
		$sql.="where id=".$rs2[0]["id"];
194
		$rc=$db2->query($sql);
195
		fputs($f,"ordnumber=".$zeile["Bestellungs_ID"].", transdate='".$zeile["Datum"]."', customer_id=$kdnr, amount=".($zeile["Rechnungsbetrag"]+$zeile["MwSt"]).", notes=".$zeile["Bezahlungsart"]."\n");
196
		echo "Auftrag:[ Buchungsnummer:".$rs2[0]["id"]." AuftrNr:<b>".$anr."</b> ]<br>";
197
		if (!insBestArtikel($zeile,$rs2[0]["id"])) { $ok=false; echo " Fehler<br>"; break; } else { echo " ok<br>"; };
198
	}
199
	return $ok;
200
}
201
function chkKdData($data) {
202
global $db2;
203
	$sql="select * from customer where id = ".$data["Kunden_Nr"];
204
	$rs=$db2->getAll($sql,DB_FETCHMODE_ASSOC);
205
	if ($rs[0]["zipcode"]<>$data["PLZ"]) $set.="zipcode='".$data["PLZ"]."',";
206
	if ($rs[0]["city"]<>$data["Ort"]) $set.="city='".$data["Ort"]."',";
207
	if ($rs[0]["country"]<>$data["Land"]) $set.="country='".$data["Land"]."',";
208
	if ($rs[0]["phone"]<>$data["Tel"])$set.="phone='".$data["Tel"]."',";
209
	if ($rs[0]["fax"]<>$data["Fax"])  $set.="fax='".$data["Fax"]."',";
210
	if ($rs[0]["email"]<>$data["Email"])$set.="email='".$data["Email"]."',";
211
	if ($rs[0]["notes"]<>$data["Beschreibung"])$set.="notes='".$data["Beschreibung"]."',";
212
	if ($data["Firma"]) {
213
		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