Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
 
4
    //$Id: xml_bestellung.php 3482 2011-03-31 06:45:30Z erling $
5
 
6
    /**
7
     * @author Malte Erling <info@weban.de>
8
     * @author Lars Tiefland <tiefland@weban.de>
9
     * @copyright 2008 Webagentur Niewerth
10
     * @package Content-management
11
     * @version $Rev: 3482 $
12
     * @license propietary
13
     * @filesource
14
     *
15
     */
16
 
17
    /**
18
     * exportiert die Bestellungen als XML-Datei
19
     * @author Malte Erling <info@weban.de>
20
     * @author Lars Tiefland <tiefland@weban.de>
21
     * @copyright 2008 Webagentur Niewerth
22
     * @package Content-management
23
     */
24
	session_start();
25
    require_once  "Config.php";
26
    require_once  "../Warenwirtschaft/includes/bestellungen/system/artikelDatabase.php";
27
 
28
	// zu verarbeitende Shops einlesen
29
	$shops_file = file("xml_bestellung_shops.txt");
30
 
31
    define( "FILE_PATH", "xml/" );
32
    define( "ARCHIVE_PATH_BASE", "xml/archiv/" );
33
    define( "ARCHIVE_PATH_EXT", date("Y") . "/" . date("m") );
34
    define( "ARCHIVE_PATH", ARCHIVE_PATH_BASE . ARCHIVE_PATH_EXT . "/" );
35
    define( "TRENNER", "\r\n" );
36
 
37
    // connect zur Datenbank
38
    require_once  "../Online-Shop/connect2.php";
39
 
40
	$main_shop_db = isset($_SERVER['argv']['main_shop_db'])?$_SERVER['argv']['main_shop_db']:"pieper_freizeit_de";
41
 
42
    //Archiv-Verzeichnisse erstellen
43
    if ( !file_exists(ARCHIVE_PATH) )
44
    {
45
        $res = chdir( ARCHIVE_PATH_BASE );
46
        $archive_path_ext = substr( ARCHIVE_PATH_EXT, 0, (strlen(ARCHIVE_PATH_EXT) -
47
            1) );
48
        $p = explode( "/", $archive_path_ext );
49
        foreach ( $p as $dir )
50
        {
51
            if ( !file_exists($dir) )
52
            {
53
                $res_d = mkdir( $dir );
54
                if ( !$res_d )
55
                {
56
                    mail( "tiefland@weban.de", "Fehler beim Export der Bestellungen",
57
                        "Konnte Verzeichnis $dir NICHT erstellen!\n" );
58
                }
59
                chdir( $dir );
60
            }
61
        }
62
    }
63
 
64
    foreach($shops_file as $key => $val){
65
		$sql = "select ID from shops where Name = '".trim($val)."'";
66
    	echo "<br>".$sql;
67
    	if($q = mysql_query($sql)){
68
    		if($r = mysql_fetch_assoc($q)){
69
				$shopID = $r['ID'];
70
			    $_SESSION[filter][shops_ID] = $shopID;
71
			    $_SESSION[shops][$shopID][database] = getDatabasefromShopID( $shopID );
72
    			getOrderInfo($shopID);
73
    		}
74
    	}
75
    }
76
 
77
 
78
 
79
 
80
    function getOrderInfo($shopID)
81
    {
82
        global $main_shop_db;
83
        $xmlFile = $shopID . "_best_bootdepot.xml";
84
        // alle Informationen zu den Bestellungen holen
85
        $config = new Config();
86
        $bestArr = array();
87
 
88
		$sql = "select
89
 
90
				b.ID as referenznummer,
91
				b.erstellt_am as bestelldatum,
92
				b.Login as loginID,
93
				b.Bemerkung as internebemerkung,
94
 
95
				l.ID as kundid,
96
				l.Anrede as Anrede,
97
				l.Vorname as Name1,
98
				l.Name1 as Name2,
99
				l.Name2 as Name3,
100
				l.Strasse as Strasse,
101
				l.Hausnummer as Hausnummer,
102
				l.Land as Land,
103
				l.PLZ as PLZ,
104
				l.ORT as Ort,
105
				l.E_Mail as Email,
106
				l.Telefon as Telefon,
107
				l.Fax as Telefax,
108
 
109
				l.liefer_Anrede as lieferAnrede,
110
				l.liefer_Firma as lieferFirma,
111
				l.liefer_Name as lieferName,
112
				l.liefer_Strasse as lieferStrasse,
113
				l.liefer_Str_Nr as lieferHausnummer,
114
				l.liefer_Land as lieferLand,
115
				l.liefer_PLZ as lieferPLZ,
116
				l.liefer_Ort as lieferOrt,
117
 
118
				a2b.rechnungStatus as rStatus
119
 
120
				from Bestellung b, Logins l, artikel_to_Bestellung a2b
121
 
122
				where b.bestellart_id = 1 and
123
				b.Login = l.ID and
124
				b.shops_ID=".$shopID." and
125
				a2b.Bestellung = b.ID and
126
               	(a2b.rechnungStatus IN ('schreiben','geschrieben'))
127
 
128
				order by b.ID desc
129
				limit 0,5
130
				";
131
		echo "<br><br>".$sql;
132
 
133
        if ( $q = mysql_query($sql) )
134
        {
135
            $i = 0;
136
            while ( $r = mysql_fetch_assoc($q) )
137
            {
138
 
139
                // Auftragskopf Start
140
                if(strlen($r['bestelldatum'])>0){
141
	                $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['bestelldatum'] =
142
	                    utf8_encode( $r['bestelldatum'] );
143
                }
144
                if(strlen($r['internebemerkung'])>0){
145
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['externebemerkung'] =
146
                    utf8_encode( $r['internebemerkung'] );
147
                }
148
                if(strlen($r['bestelldatum'])>0){
149
                	$bestellDatum = datetime2human( $r['bestelldatum'] );
150
                }
151
                if(strlen($bestellDatum['Datum'])>0){
152
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['bestellzeichen'] =
153
                    utf8_encode( "Online Order vom " . $bestellDatum['Datum'] );
154
                }
155
                if(strlen($r['referenznummer'])>0){
156
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['referenznummer'] =
157
                    utf8_encode( $r['referenznummer'] );
158
                }
159
                $bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['agbakzeptiert'] =
160
                    utf8_encode( "JA" );
161
                if(strlen($r['internebemerkung'])>0){
162
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['internebemerkung'] =
163
                    utf8_encode( $r['internebemerkung'] );
164
				}
165
 
166
                // Kundenanschrift
167
                if(strlen($r['kundid'])>0){
168
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['kundid'] =
169
                    utf8_encode( $r['kundid'] );
170
                }
171
                if(strlen($r['Anrede'])>0){
172
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Anrede'] =
173
                    utf8_encode( $r['Anrede'] );
174
                }
175
                if(strlen($r['Name1'])>0){
176
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Name1'] =
177
                    utf8_encode( $r['Name1'] );
178
                }
179
                if(strlen($r['Name2'])>0){
180
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Name2'] =
181
                    utf8_encode( $r['Name2'] );
182
                }
183
                if(strlen($r['Name3'])>0){
184
					$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Name3'] =
185
                    utf8_encode( $r['Name3'] );
186
                }
187
                if(strlen($r['Strasse'])>0){
188
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Strasse'] =
189
                    utf8_encode( $r['Strasse'] . " " . $r['Hausnummer'] );
190
                }
191
                if(strlen($r['Land'])>0){
192
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Land'] =
193
                    utf8_encode( $r['Land'] );
194
                }
195
                if(strlen($r['PLZ'])>0){
196
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['PLZ'] =
197
                    utf8_encode( $r['PLZ'] );
198
                }
199
                if(strlen($r['Ort'])>0){
200
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Ort'] =
201
                    utf8_encode( $r['Ort'] );
202
                }
203
                if(strlen($r['Email'])>0){
204
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Email'] =
205
                    utf8_encode( $r['Email'] );
206
                }
207
                if(strlen($r['Telefon'])>0){
208
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Telefon'] =
209
                    utf8_encode( $r['Telefon'] );
210
                }
211
                if(strlen($r['Telefax'])>0){
212
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['kundenanschrift']['Telefax'] =
213
                    utf8_encode( $r['Telefax'] );
214
                }
215
 
216
                // Lieferanschrift
217
                if(strlen($r['lieferAnrede'])>0){
218
					$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Anrede'] =
219
                    utf8_encode( $r['lieferAnrede'] );
220
                }
221
                if(strlen($r['lieferName'])>0){
222
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Name2'] =
223
                    utf8_encode( $r['lieferName'] );
224
                }
225
                if(strlen($r['lieferFirma'])>0){
226
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Name3'] =
227
                    utf8_encode( $r['lieferFirma'] );
228
                }
229
                if(strlen($r['lieferStrasse'])>0){
230
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Strasse'] =
231
                    utf8_encode( $r['lieferStrasse'] . " " . $r['lieferHausnummer'] );
232
                }
233
                if(strlen($r['lieferLand'])>0){
234
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Land'] =
235
                    utf8_encode( $r['lieferLand'] );
236
                }
237
                if(strlen($r['lieferPLZ'])>0){
238
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['PLZ'] =
239
                    utf8_encode( $r['lieferPLZ'] );
240
                }
241
                if(strlen($r['lieferOrt'])>0){
242
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['lieferanschrift']['Ort'] =
243
                    utf8_encode( $r['lieferOrt'] );
244
                }
245
 
246
 
247
                // Rechnungsanschrift
248
                if(strlen($r['Anrede'])>0){
249
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Anrede'] =
250
                    utf8_encode( $r['Anrede'] );
251
                }
252
                if(strlen($r['Name1'])>0){
253
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Name1'] =
254
                    utf8_encode( $r['Name1'] );
255
                }
256
                if(strlen($r['Name2'])>0){
257
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Name2'] =
258
                    utf8_encode( $r['Name2'] );
259
                }
260
                if(strlen($r['Name3'])>0){
261
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Name3'] =
262
                    utf8_encode( $r['Name3'] );
263
                }
264
                if(strlen($r['Strasse'])>0){
265
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Strasse'] =
266
                    utf8_encode( $r['Strasse'] . " " . $r['Hausnummer'] );
267
                }
268
                if(strlen($r['Land'])>0){
269
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Land'] =
270
                    utf8_encode( $r['Land'] );
271
                }
272
                if(strlen($r['PLZ'])>0){
273
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['PLZ'] =
274
                    utf8_encode( $r['PLZ'] );
275
                }
276
                if(strlen($r['Ort'])>0){
277
                	$bestArr['onlinebestellungen']['bestellung'][$i]['auftragskopf']['rechnungsanschrift']['Ort'] =
278
                	utf8_encode( $r['Ort'] );
279
                }
280
 
281
				// welche Artikel zur Bestellung?
282
                $sql_a = "select
283
 
284
							a2b.artikel as artid,
285
							a2b.Menge as bestellmenge,
286
							a.kurzbezeichnung as artikeltext1,
287
							a.beschreibung as artikeltext2,
288
							a.preis1 as basispreis
289
 
290
							from ".$main_shop_db.".artikel_to_Bestellung a2b, " .
291
                    artikelDatabase() . " a
292
 
293
							where
294
 
295
							a2b.Bestellung = " . $r['referenznummer'] . " and
296
							a2b.artikel = a.ID
297
                            and
298
                            (
299
                                (a.Father = -3)
300
                                or
301
                                    (a2b.rechnungStatus IN ('schreiben','geschrieben'))
302
                            )
303
							order by artid
304
						";
305
                	echo "<hr>" . $sql_a;
306
 
307
 
308
 
309
                if ( $q_a = mysql_query($sql_a) )
310
                {
311
                    $k = 0;
312
                    $ordervalue = 0;
313
 
314
 
315
                    while ( $r_a = mysql_fetch_assoc($q_a) )
316
                    {
317
                        $pos[$k]['positionsnr'] = $k + 1;
318
                        if(strlen($r_a['artid'])>0){
319
                        	$pos[$k]['artid'] = $r_a['artid'];
320
                        }
321
						if(strlen($r_a['ean'])>0){
322
                        	$pos[$k]['ean'] = $r_a['ean'];
323
                        }
324
                        if(strlen($r_a['artikeltext1'])>0){
325
							$pos[$k]['artikeltext1'] = $r_a['artikeltext1'];
326
						}
327
                        //$pos[$k]['artikeltext2'] = $r_a['artikeltext2'];
328
                        if(strlen($r_a['bestellmenge'])>0){
329
							$pos[$k]['bestellmenge'] = $r_a['bestellmenge'];
330
						}
331
						if(strlen($r_a['basispreis'])>0){
332
                        	$pos[$k]['basispreis'] = number_format( $r_a['basispreis'], 2, ',', '.' );
333
	                        $pos[$k]['poseinzel'] = number_format( $r_a['basispreis'], 2, ',', '.' );
334
    	                    $pos[$k]['posgesamt'] = number_format( $r_a['basispreis'] * $r_a['bestellmenge'],
335
                            2, ',', '.' );
336
                        }
337
 
338
                        $k++;
339
                        $ordervalue += $r_a['basispreis'] * $r_a['bestellmenge'];
340
                    }
341
 
342
 
343
                    $bestArr['onlinebestellungen']['bestellung'][$i]['positionen']['position'] =
344
                        $pos;
345
                    $bestArr['onlinebestellungen']['bestellung'][$i]['auftragsfuss']['poscount'] =
346
                        utf8_encode( count($pos) );
347
                    $bestArr['onlinebestellungen']['bestellung'][$i]['auftragsfuss']['ordervalue'] =
348
                        utf8_encode( number_format($ordervalue, 2, ',', '.') );
349
 
350
                }
351
 
352
                $i++;
353
 
354
 
355
            } // end while
356
 
357
            // die xml-Datei erstellen
358
 
359
            $xmlFileArchiv = ARCHIVE_PATH . $shopID . "_best_" . date( YmdHi ) . ".xml";
360
 
361
            if ( $config->parseConfig($bestArr["onlinebestellungen"], 'phparray') )
362
            {
363
                if ( $config->writeConfig(FILE_PATH . $xmlFile, 'xml', array('name' =>
364
                    'onlinebestellungen','encoding' => 'utf-8')) )
365
                {
366
                    if ( !copy(FILE_PATH . $xmlFile, $xmlFileArchiv) )
367
                    {
368
                        echo "<br>Datei konnte nicht kopiert werden!";
369
                    }
370
                    else
371
                    {
372
                        echo "<br>kopiert: " . FILE_PATH . $xmlFile . " => " . $xmlFileArchiv;
373
                    }
374
                }
375
            }
376
 
377
 
378
        }
379
        else
380
        {
381
            echo mysql_error();
382
        }
383
 
384
 
385
    }
386
 
387
    function getDatabasefromShopID( $shopID )
388
 
389
    {
390
 
391
        $db = "";
392
        $sql = "select * from shops where ID = " . $shopID . "";
393
		if ( $q = mysql_query($sql) )
394
        {
395
			if ( $r = mysql_fetch_assoc($q) )
396
            {
397
                $db = $r['database'];
398
 
399
            }
400
        }
401
 
402
        return $db;
403
    }
404
?>