Subversion-Projekte lars-tiefland.content-management

Revision

Zur aktuellen Revision | Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
    /**
4
     * @package   Content-management
5
     * @author    Lars Tiefland <tiefland@weban.de>
6
     * @copyright 2009 Webagentur Niewerth
7
     * @license   propietary http://www.weban.de
8
     * @version   $Rev: 4014 $
9
     * @filesource
10
     *
11
     */
12
 
13
    /**
14
     *
15
     * neue Version der Bestellungsübersicht
16
     *
17
     * @package   Content-management
18
     * @author    Lars Tiefland <tiefland@weban.de>
19
     * @copyright 2009 Webagentur Niewerth
20
     */
21
 
22
    // SVN: $Id: bestellungen_neu.php 4014 2011-10-21 22:10:13Z www-data $
23
 
24
    $time = microtime( true );
25
 
26
    //error_reporting( E_ERROR | E_PARSE );
27
 
28
    $max_string_lenght = 2000; // m.niewerth
29
 
30
    setlocale( LC_TIME, "de_DE" );
31
 
32
    define( "Range", 100 );
33
    define( "modul_name", "Warenwirtschaft" );
34
    define( "tool_name", "bestellung" );
35
 
36
    require_once "../Online-Shop/connect2.php";
37
    require_once "Weban_Smarty.class.php";
38
    require_once "includes/statistik/system.php";
39
    require_once "includes/bestellungen/pagination.php";
40
    require_once "includes/bestellungen/system/bestellung_puffern.php";
41
    require_once "includes/bestellungen/system/getBestellungSumme.php";
42
    require_once "includes/bestellungen/system/getBestellungStatus.php";
43
    require_once "includes/bestellungen/system/getBestellungLieferscheinStatus.php";
44
    require_once "includes/bestellungen/system/getBestellungRechnungStatus.php";
45
    require_once "includes/bestellungen/system/artikelDatabase.php";
46
    require_once "includes/bestellungen/system/mysql_query_logged.php";
47
    require_once "includes/bestellungen/system/getVersandItems.php";
48
    require_once "module/functions.common.php";
49
    require_once "includes/bestellungen/pagination.php";
50
    require_once "includes/bestellungen/createOrderText.php"; // Ma
51
 
52
    $bestellarten = getBestellarten();
53
 
54
    if ( isset( $_POST["Bestellung"] ) )
55
    {
56
        $Bestellung = $_POST["Bestellung"];
57
    } elseif ( isset( $_GET["Bestellung"] ) )
58
    {
59
        $Bestellung = $_GET["Bestellung"];
60
    }
61
    else
62
    {
63
        $Bestellung = "";
64
    }
65
 
66
 
67
    $bestellart = false;
68
    if ( is_array( $bestellarten ) && $Bestellung )
69
    {
70
        $sql = "
71
            SHOW
72
                COLUMNS
73
            FROM
74
                shops
75
            LIKE
76
                'database'
77
        ";
78
        $res = mysql_query( $sql );
79
        if ( mysql_num_rows( $res ) )
80
        {
81
            $sql = "SELECT
82
                        `database`
83
                    FROM
84
                        shops s,
85
                        Bestellung b
86
                    WHERE
87
                        s.ID=b.shops_ID
88
                    AND
89
                        b.ID=$Bestellung
90
                ";
91
            $res = mysql_query( $sql );
92
            $row = mysql_fetch_assoc( $res );
93
            if ( $row["database"] )
94
            {
95
                $database = $row["database"] . ".";
96
            }
97
        }
98
        $settings_table = $database . "web_settings";
99
        $sql = "
100
            SHOW
101
                COLUMNS
102
            FROM
103
                $settings_table
104
            LIKE
105
                'bestellart_id'
106
        ";
107
        $res = mysql_query( $sql );
108
        if ( mysql_num_rows( $res ) )
109
        {
110
            $bestellart = true;
111
            define( "BESTELLART", true );
112
        }
113
        else
114
        {
115
            $bestellart = false;
116
            define( "BESTELLART", false );
117
        }
118
    } elseif ( $Bestellung )
119
    {
120
        $sql = "
121
            SHOW
122
                COLUMNS
123
            FROM
124
                shops
125
            LIKE
126
                'database'
127
        ";
128
        $database = "";
129
        $res = mysql_query( $sql );
130
        if ( mysql_num_rows( $res ) )
131
        {
132
            $sql = "SELECT
133
                        `database`
134
                    FROM
135
                        shops s,
136
                        Bestellung b
137
                    WHERE
138
                        s.ID=b.shops_ID
139
                    AND
140
                        b.ID=$Bestellung
141
                ";
142
            $res = mysql_query( $sql );
143
            $row = mysql_fetch_assoc( $res );
144
            if ( $row["database"] )
145
            {
146
                $database = $row["database"] . ".";
147
            }
148
        }
149
        $settings_table = $database . "web_settings";
150
        $bestellart = false;
151
        define( "BESTELLART", false );
152
    }
153
 
154
    if ( $web_rechte['Warenwirtschaft']['bestellung']['mahnungStatus'] )
155
    {
156
        $mahnung = 1;
157
    }
158
 
159
    // Smarty initialisieren
160
    $GLOBALS["ui"] = new Weban_Smarty();
161
    if ( array_key_exists( "login_id", $_GET ) && $_GET["login_id"] )
162
    {
163
        $GLOBALS["ui"]->template_dir[] = "../Warenwirtschaft/templates/";
164
    }
165
    $GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] . "/templates_c/";
166
    $GLOBALS["ui"]->compile_id = "Warenwirtschaft|bestellungen";
167
    //$GLOBALS["ui"]->use_sub_dirs = true;
168
 
169
    $web_settings = array();
170
    if ( isset( $_POST["anfordern"] ) && $_POST["operation"] == "SAS" && isset( $_POST["anfordern"] ) )
171
    {
172
        $shops_ID = $_POST["shops_ID"];
173
        $query = "
174
            SELECT
175
                *
176
            FROM
177
                $settings_table
178
            WHERE
179
                shops_ID=$shops_ID
180
            ORDER BY
181
                Rang";
182
        $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() .
183
            "<hr>$query<hr>" );
184
        while ( $zeile = mysql_fetch_array( $result ) )
185
        {
186
            $web_settings[$shops_ID][$zeile["ID"]] = $zeile["Inhalt"];
187
        }
188
        set_time_limit( 180 );
189
        $kk_typ = $web_settings[$shops_ID][119];
190
        $kk_info = unserialize( $_POST["kk_info"] );
191
        if ( $kk_typ == "saferpay" )
192
        {
193
            $url = $web_settings[$shops_ID][113] . "?" . $_POST["kk_info"] . "&" . $web_settings[$shops_ID][115] .
194
                "=" . $web_settings[$shops_ID][110];
195
            $c = file_get_contents( $url );
196
            if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" )
197
            {
198
                echo "$url<br>$c";
199
            }
200
            if ( $c == "OK" )
201
            {
202
                $sql = "
203
                    UPDATE
204
                        artikel_to_Bestellung
205
                    SET
206
                        rechnungStatus='bezahlt'
207
                    WHERE
208
                        Bestellung=" . $_POST["orderid"] . "
209
                ";
210
                $res = mysql_query( $sql );
211
                if ( !$res )
212
                {
213
                    mail( "tiefland@weban.de", "MySQL-Fehler bei KK-Zahlung", mysql_error() . "\n$sql" );
214
                }
215
                $kk_info["status"] = "bezahlt";
216
                $zeit = date( "d.m.Y" ) . " um " . date( "H:i" ) . " Uhr";
217
                $bemerkung = "Zahlung am " . $zeit . " von $PHP_AUTH_USER angefordert\n";
218
                $sql = "
219
                    UPDATE
220
                        Bestellung
221
                    SET
222
                        Bemerkung=concat(Bemerkung,'$bemerkung'),
223
                        kk_info='" . serialize( $kk_info ) . "'
224
                    WHERE
225
                        ID=" . $_POST["orderid"] . "
226
                ";
227
                $res = mysql_query( $sql );
228
                if ( !$res )
229
                {
230
                    mail( "tiefland@weban.de", "MySQL-Fehler bei KK-Zahlung", mysql_error() . "\n$sql" );
231
                }
232
                $url = "http://" . $_SERVER['SERVER_NAME'] .
233
                    "/Warenwirtschaft/bestellungen.php?Bestellung=" . $_POST["orderid"];
234
                $sql = "
235
                    DELETE FROM
236
                        systemtermine
237
                    WHERE
238
                        deeplink='$url'
239
                ";
240
                $res = mysql_query( $sql );
241
                if ( !$res )
242
                {
243
                    mail( "tiefland@weban.de", "MySQL-Fehler bei KK-Zahlung", mysql_error() . "\n$sql" );
244
                }
245
            }
246
            else
247
            {
248
                echo "Ein Fehler ist aufgetreten! Meldung des Systems: $c<br>";
249
            }
250
        } elseif ( $kk_typ == "acceptance" )
251
        {
252
            $url = $web_settings[$shops_ID][113] . "?" . $web_settings[$shops_ID][114] . "=" .
253
                $_POST["operation"] . "&" . $web_settings[$shops_ID][115] . "=" . $web_settings[$shops_ID][110] .
254
                "&" . $web_settings[$shops_ID][116] . "=" . $web_settings[$shops_ID][112] . "&" .
255
                $web_settings[$shops_ID][117] . "=" . $_POST["orderid"] . "&" . $web_settings[$shops_ID][118] .
256
                "=" . $web_settings[$shops_ID][111];
257
            require_once "Config.php";
258
            $cfg = new Config();
259
            $conf = $cfg->parseConfig( "$url", "xml" );
260
            if ( PEAR::isError( $conf ) )
261
            {
262
                echo "Fehler!<br>";
263
                echo $conf->getMessage();
264
            }
265
            else
266
            {
267
                $erg = $conf->toArray();
268
                //mail("tiefland@weban.de","Rueckgabewert von Paytool",$conf->toString("xml"));
269
                switch ( $erg["root"]["ncresponse"]["@"]["NCSTATUS"] )
270
                {
271
                    case 2:
272
                        echo "W&auml;hrend der Verarbeitung ist ein Fehler aufgetreten! Bitte wenden Sie sich an den Support der Kreditkartenorganisation, um den Status der Zahlung zu erfahren!";
273
                        break;
274
                    case 3:
275
                        echo "Ein technischer Fehler ist aufgetreten! Meldung des Systems: " . $erg["root"]["ncresponse"]["@"]["NCERROR"] .
276
                            ": " . $erg["root"]["ncresponse"]["@"]["NCERRORPLUS"];
277
                        break;
278
                    case 5:
279
                        echo "Ein Fehler ist aufgetreten! Meldung des Systems: " . $erg["root"]["ncresponse"]["@"]["NCERROR"] .
280
                            ": " . $erg["root"]["ncresponse"]["@"]["NCERRORPLUS"];
281
                        break;
282
                    case 0:
283
                        $sql = "
284
                            UPDATE
285
                                artikel_to_Bestellung
286
                            SET
287
                                rechnungStatus='bezahlt'
288
                            WHERE
289
                                Bestellung=" . $_POST["orderid"] . "
290
                        ";
291
                        $res = mysql_query( $sql );
292
                        if ( !$res )
293
                        {
294
                            mail( "tiefland@weban.de", "MySQL-Fehler bei KK-Zahlung", mysql_error() . "\n$sql" );
295
                        }
296
                        $kk_info["code"] = "";
297
                        $kk_info["status"] = "bezahlt";
298
                        $bemerkung = "Zahlung am " . date( "d.m.Y" ) . " um " . date( "H:i" ) .
299
                            " Uhr von $PHP_AUTH_USER angefordert\n";
300
                        $sql = "
301
                            UPDATE
302
                                Bestellung
303
                            SET
304
                                Bemerkung=concat(Bemerkung,'$bemerkung'),
305
                                kk_info='" . serialize( $kk_info ) . "'
306
                            WHERE
307
                                ID=" . $_POST["orderid"] . "
308
                        ";
309
                        $res = mysql_query( $sql );
310
                        if ( !$res )
311
                        {
312
                            mail( "tiefland@weban.de", "MySQL-Fehler bei KK-Zahlung", mysql_error() . "\n$sql" );
313
                        }
314
                        $url = "http://" . $_SERVER['SERVER_NAME'] .
315
                            "/Warenwirtschaft/bestellungen.php?Bestellung=" . $_POST["orderid"];
316
                        $sql = "
317
                            DELETE FROM
318
                                systemtermine
319
                            WHERE
320
                                deeplink='$url'
321
                        ";
322
                        $res = mysql_query( $sql );
323
                        if ( !$res )
324
                        {
325
                            mail( "tiefland@weban.de", "MySQL-Fehler bei KK-Zahlung", mysql_error() . "\n$sql" );
326
                        }
327
                        break;
328
                }
329
            }
330
        }
331
        if ( isset( $return ) )
332
        {
333
            header( "Location: " . $return );
334
        }
335
    }
336
    else
337
    {
338
        unset( $_POST["shops_ID"] );
339
    }
340
    // Manuellen Artikel einstellen
341
    if ( isset( $_POST['submit_manueller_artikel'] ) )
342
    {
343
        // preis auf das richtige format kriegen "0.00"
344
        // ein eventuelles komma durch nen punkt ersetzen
345
        $_POST['preis'] = str_replace( ",", ".", $_POST['preis'] );
346
        // wenn kein punkt dabei, dann ".00" hinzuf?gen
347
        if ( substr_count( $_POST['preis'], "." ) == 0 )
348
        {
349
            $_POST['preis'] .= ".00";
350
        }
351
        // wenn punkt, aber nur eine zahl dahinter, noch ne 0 anf?gen
352
        if ( $bla = strrchr( $_POST['preis'], "." ) )
353
        {
354
            if ( strlen( $bla ) == 2 )
355
            {
356
                $_POST['preis'] .= "0";
357
            }
358
        }
359
        $query = "
360
            INSERT INTO
361
                artikel_to_Bestellung
362
            (
363
                artikel,
364
                Bestellung,
365
                Menge,
366
                Preis_pro_stueck,
367
                status,
368
                Bezeichnung
369
            )
370
            VALUES
371
            (
372
                '999999',
373
                '" . $_GET['Bestellung'] . "',
374
                '" . $_POST['anzahl'] . "',
375
                '" . $_POST['preis'] . "',
376
                '',
377
                '" . $_POST['kurzbezeichnung'] . "'
378
			)
379
        ";
380
        $result = mysql_query_logged( $query ) or mail( "niewerth@weban.de",
381
            "Fehler in bestellung_liste_manu.php", mysql_errno() . ": " . mysql_error() .
382
            "<hr>$query<hr>", "from: content-management.de" );
383
        $rang = mysql_insert_id();
384
        if ( $rang )
385
        {
386
            mysql_query( "UPDATE artikel_to_Bestellung SET Rang=$rang WHERE ID=$rang" ) or
387
                mail( "niewerth@weban.de", "Fehler in bestellung_liste_manu.php", mysql_errno() .
388
                ": " . mysql_error() . "<hr>$query<hr>", "from: content-management.de" );
389
        }
390
    }
391
 
392
    if ( !isset( $dir ) )
393
    {
394
        $dir = "";
395
    }
396
    if ( $dir && isset( $web_rechte["Warenwirtschaft"]["bestellung"]["artikel_sortieren"] ) )
397
    {
398
        switch ( $dir )
399
        {
400
            case "up":
401
                // kleinsten Wert bestimmen
402
                $query = "
403
                    SELECT
404
                        Rang
405
                    FROM
406
                        artikel_to_Bestellung
407
                    ORDER BY
408
                        Rang";
409
                $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() );
410
                $zeile = mysql_fetch_array( $result );
411
                $primary = $zeile["Rang"];
412
 
413
                // aktuelle Position bestimmen
414
                $query = "
415
                    SELECT
416
                        Rang
417
                    FROM
418
                        artikel_to_Bestellung
419
                    WHERE
420
                        ID = $id
421
                ";
422
                $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() .
423
                    "<hr>" . $query );
424
                $zeile = mysql_fetch_array( $result );
425
 
426
                // Zielposition bestimmen
427
                $query = "
428
                    SELECT
429
                        ID,
430
                        Rang
431
                    FROM
432
                        artikel_to_Bestellung
433
                    WHERE
434
                        Rang < $zeile[Rang]
435
                    AND
436
                        Bestellung=$Bestellung
437
                    ORDER BY
438
                        Rang DESC
439
                ";
440
                $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() .
441
                    "<hr>" . $query );
442
                $zeile_rang = mysql_fetch_array( $result );
443
                $target = $zeile_rang["Rang"];
444
                $target_id = $zeile_rang["ID"];
445
 
446
                if ( $zeile["Rang"] > $primary )
447
                {
448
                    $query = "
449
                        UPDATE artikel_to_Bestellung SET
450
                            Rang=$zeile[Rang]
451
                        WHERE
452
                            Rang = $target
453
                        AND
454
                            ID=$target_id
455
                    ";
456
                    $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() );
457
                    $query = "
458
                        UPDATE
459
                            artikel_to_Bestellung
460
                        SET
461
                            Rang=$target
462
                        WHERE
463
                            ID = $id
464
                    ";
465
                    $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() );
466
                }
467
                break;
468
            case "down":
469
                // gr??ten Wert bestimmen
470
                $query = "
471
                    SELECT
472
                        Rang
473
                    FROM
474
                        artikel_to_Bestellung
475
                    ORDER BY
476
                        Rang DESC
477
                ";
478
                $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() );
479
                $zeile = mysql_fetch_array( $result );
480
                $final = $zeile["Rang"];
481
 
482
                // aktuelle Position bestimmen
483
                $query = "
484
                    SELECT
485
                        Rang
486
                    FROM
487
                        artikel_to_Bestellung
488
                    WHERE
489
                        ID = $id
490
                ";
491
                $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() .
492
                    "<hr>" . $query );
493
                $zeile = mysql_fetch_array( $result );
494
 
495
                // Zielposition bestimmen
496
                $query = "
497
                    SELECT
498
                        ID,
499
                        Rang
500
                    FROM
501
                        artikel_to_Bestellung
502
                    WHERE
503
                        Rang > $zeile[Rang]
504
                    AND
505
                        Bestellung=$Bestellung
506
                    ORDER BY
507
                        Rang
508
                ";
509
                $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() .
510
                    "<hr>" . $query );
511
                $zeile_rang = mysql_fetch_array( $result );
512
                $target = $zeile_rang["Rang"];
513
                $target_id = $zeile_rang["ID"];
514
 
515
                if ( $zeile["Rang"] < $final )
516
                {
517
                    $query = "
518
                        UPDATE
519
                            artikel_to_Bestellung
520
                        SET
521
                            Rang=$zeile[Rang]
522
                        WHERE
523
                            Rang = $target
524
                        AND
525
                            ID=$target_id
526
                    ";
527
                    $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() );
528
                    $query = "
529
                        UPDATE
530
                            artikel_to_Bestellung
531
                        SET
532
                            Rang=$target
533
                        WHERE
534
                            ID = $id
535
                    ";
536
                    $result = mysql_query( $query ) or die( mysql_errno() . ": " . mysql_error() );
537
                }
538
                break;
539
            default:
540
                break;
541
        }
542
    }
543
    if ( isset( $_POST["enterVersand"] ) && $_POST["enterVersand"] )
544
    {
545
        $vI = unserialize( base64_decode( $_POST[versandItem] ) );
546
 
547
        $query = "
548
			INSERT INTO
549
				artikel_to_Bestellung
550
			(
551
				ID,
552
				artikel,
553
				Bestellung,
554
				Menge,
555
				Preis_pro_Stueck,
556
				status,
557
				rechnungStatus,
558
				Bezeichnung
559
			)
560
			VALUES
561
			(
562
				NULL,
563
				'" . $vI["ID"] . "',
564
				'" . $_POST[Bestellung] . "',
565
				1,
566
				'" . $vI["preis"] . "',
567
				'versand',
568
				'',
569
				'" . $vI["kurz"] . "'
570
			)
571
		";
572
        $result = mysql_query_logged( $query ) or die( mysql_errno() . ": " .
573
            mysql_error() . "<hr>$query<hr>" );
574
 
575
 
576
        header( "Location: " . $_SERVER["SCRIPT_NAME"] . "?Bestellung=" . $_POST["Bestellung"] );
577
        exit;
578
    }
579
 
580
    if ( isset( $_POST["button"] ) && $_POST["button"] ==
581
        "Bestellpositionen verschieben" )
582
    {
583
        $query_s = "SELECT * FROM Bestellung WHERE ID=$b_id";
584
        $res_s = mysql_query( $query_s );
585
        $row = mysql_fetch_assoc( $res_s );
586
        $bemerkung = $row["Bemerkung"];
587
        $bemerkung .= "\r\nArtikel von " . $_SERVER["PHP_AUTH_USER"] . " am " . date( "d.m.Y" ) .
588
            " um " . date( "G:i" ) . " Uhr in Bestellung $b_id_neu verschoben.\r\n";
589
        $query_s = "
590
            SELECT
591
                *
592
            FROM
593
                artikel_to_Bestellung
594
            WHERE
595
                bestellung=$b_id
596
        ";
597
        $res_s = mysql_query( $query_s );
598
        while ( $row = mysql_fetch_assoc( $res_s ) )
599
        {
600
            $artikel = $row["artikel"];
601
            $sql = "
602
                SELECT
603
                    *
604
                FROM
605
                    " . artikelDatabase() . "
606
                WHERE
607
                    ID=$artikel
608
            ";
609
            $res = mysql_query( $sql );
610
            $father = 0;
611
            if ( mysql_num_rows( $res ) )
612
            {
613
                $row_a = mysql_fetch_assoc( $res );
614
                $father = $row_a["Father"];
615
            }
616
            if ( $father != -3 )
617
            {
618
                $query_u = "
619
                    UPDATE
620
                        artikel_to_Bestellung
621
                    SET
622
                        Bestellung=$b_id_neu
623
                    WHERE Bestellung=
624
                        $b_id
625
                    AND
626
                        ID=" . $row["ID"] . "
627
                ";
628
                $res_u = mysql_query( $query_u );
629
                //echo mysql_error() . "<br>$query_u";
630
            }
631
        }
632
        if ( $res_u )
633
        {
634
            $query_u = "
635
                UPDATE
636
                    Bestellung
637
                SET
638
                    Bemerkung='$bemerkung'
639
                WHERE
640
                    id=$b_id
641
            ";
642
            $res_u = mysql_query( $query_u );
643
        }
644
        if ( $res_u )
645
        {
646
            $query_s = "
647
                SELECT
648
                    *
649
                FROM
650
                    Bestellung
651
                WHERE
652
                    ID=$b_id
653
            ";
654
            $res_s = mysql_query( $query_s );
655
            $row = mysql_fetch_assoc( $res_s );
656
            $bemerkung = $row["Bemerkung"];
657
            $bemerkung .= "\r\nArtikel von " . $_SERVER["PHP_AUTH_USER"] . " am " . date( "d.m.Y" ) .
658
                " um " . date( "G:i" ) . " Uhr aus Bestellung $b_id &uuml;bernommen.\r\n";
659
            $query_u = "
660
                UPDATE
661
                    Bestellung
662
                SET
663
                    Bemerkung='$bemerkung'
664
                WHERE
665
                    id=$b_id_neu
666
            ";
667
            $res_u = mysql_query( $query_u );
668
            if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
669
            {
670
                $log = "Artikel Bestellung $b_id_neu verschoben.";
671
                $GLOBALS["Log"]["best"]->log( $bemerkung, $b_id );
672
                $log = "Artikel aus Bestellung $b_id &uuml;bernommen.";
673
                $GLOBALS["Log"]["best"]->log( $bemerkung, $b_id_neu );
674
            }
675
            header( "Location: " . $_SERVER["SCRIPT_NAME"] . "?Bestellung=$b_id" );
676
        }
677
    }
678
 
679
    if ( ( isset( $_GET["update"] ) && $_GET["update"] ) || ( isset( $_POST["update"] ) &&
680
        $_POST["update"] ) )
681
    {
682
        if ( $_POST["update"] )
683
        {
684
            $update = $_POST["update"];
685
        }
686
        else
687
        {
688
            $update = $_GET["update"];
689
        }
690
        if ( $_POST["cmd"] )
691
        {
692
            foreach ( array_keys( $_POST["cmd"] ) as $table )
693
            {
694
                foreach ( array_keys( $_POST["cmd"][$table] ) as $primaryKeyValue )
695
                {
696
                    $changed_id = "artikel_" . $primaryKeyValue . "_changed";
697
                    if ( $_POST[$changed_id] == 1 )
698
                    {
699
                        foreach ( array_keys( $_POST["cmd"][$table][$primaryKeyValue] ) as $tablefield )
700
                        {
701
                            $query = "
702
                                UPDATE
703
                                    $table
704
                                SET
705
                                    $tablefield = '" . html_entity_decode( $_POST["cmd"][$table][$primaryKeyValue][$tablefield] ) .
706
                                "'
707
                                WHERE
708
                                    ID = '" . $primaryKeyValue . "'
709
                            ";
710
                            $result = mysql_query_logged( $query ) or die( mysql_errno() . ": " .
711
                                mysql_error() . "<hr>$query<hr>" );
712
                        }
713
                    }
714
                }
715
            }
716
        }
717
        $upd_fields[] = "Bemerkung='" . mysql_real_escape_string( $_POST["Bemerkung"] ) .
718
            "'";
719
 
720
        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["shortline1"] ) )
721
        {
722
            $upd_fields[] = "shortline1 = '" . mysql_real_escape_string( $_POST["shortline1"] ) .
723
                "'";
724
        }
725
        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["shortline2"] ) )
726
        {
727
            $upd_fields[] = "shortline2 = '" . mysql_real_escape_string( $_POST["shortline2"] ) .
728
                "'";
729
        }
730
        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["status1"] ) )
731
        {
732
            $upd_fields[] = "status1 = '" . mysql_real_escape_string( $_POST["status1"] ) .
733
                "'";
734
        }
735
        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["Bemerkung_extern"] ) )
736
        {
737
            $upd_fields[] = "Bemerkung_extern='" . mysql_real_escape_string( $_POST["Bemerkung_extern"] ) .
738
                "'";
739
        }
740
        if ( isset( $user_rechte["Warenwirtschaft"]["bezahlstatus"]["bezahlstatus"] ) )
741
        {
742
            $upd_fields[] = "bezahlt='" . mysql_real_escape_string( $_POST["bezahlt"] ) .
743
                "'";
744
        }
745
        $query = "
746
            SELECT
747
                erstellt_von
748
            FROM
749
                Bestellung
750
            WHERE
751
                ID=$Bestellung
752
        ";
753
        $result = mysql_query_logged( $query ) or die( mysql_errno() . ": " .
754
            mysql_error() );
755
        $zeile = mysql_fetch_array( $result );
756
        if ( $zeile["erstellt_von"] == '' )
757
        {
758
            $upd_fields[] = "erstellt_von='" . $_SERVER["PHP_AUTH_USER"] . "'";
759
        }
760
        if ( $_POST["s_changed"] == 1 )
761
        {
762
            $upd_fields[] = "shops_ID=" . $_POST["s_id"];
763
        }
764
        $query = "
765
            UPDATE
766
                Bestellung
767
            SET
768
                letzte_Aenderung_von='" . $_SERVER["PHP_AUTH_USER"] . "',
769
            " . implode( ",", $upd_fields ) . "
770
            WHERE
771
                ID=$Bestellung
772
        ";
773
        $result = mysql_query_logged( $query ) or die( mysql_errno() . ": " .
774
            mysql_error() );
775
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
776
        {
777
            $GLOBALS["Log"]["best"]->log( "Daten der Bestellung geändert", $Bestellung );
778
        }
779
        if ( $_POST["logistiker_id"] )
780
        {
781
            $sql_bl = "
782
                REPLACE INTO
783
                    bestellung_logistiker
784
                SET
785
                    bestellung=$Bestellung,
786
                    logistiker=" . $_POST["logistiker_id"] . "
787
            ";
788
            $res_bl = mysql_query( $sql_bl );
789
            if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
790
            {
791
                $GLOBALS["Log"]["best"]->log( "Logistiker der Bestellung geändert", $Bestellung );
792
            }
793
        }
794
        $keys = array_keys( $update );
795
        switch ( $keys[0] )
796
        {
797
            case "current":
798
                $sql_filter[] = "Bestellung = " . $_POST["Bestellung"];
799
                $limit = "LIMIT 1";
800
                //header("Location: /Warenwirtschaft/bestellung_formular.php?Bestellung=".$_POST["Bestellung"]);
801
                break;
802
            case "prev":
803
                $sql_filter[] = "Bestellung < " . $_POST["Bestellung"];
804
                $limit = "LIMIT 1";
805
                break;
806
            case "next":
807
                $sql_filter[] = "Bestellung > " . $_POST["Bestellung"];
808
                $limit = "LIMIT 1";
809
                $order = "Bestellnummer";
810
                break;
811
            case "list":
812
            default:
813
                unset( $Bestellung, $_GET["Bestellung"], $_POST["Bestellung"] );
814
                break;
815
        }
816
    }
817
 
818
    if ( isset( $_GET["PDFexport"] ) && $_GET["PDFexport"] == "true" )
819
    {
820
        $filter_maske = false;
821
    }
822
    else
823
    {
824
        $filter_maske = true;
825
    }
826
 
827
    // Bestellung und Kundendaten löschen
828
    if ( !isset( $delete ) )
829
    {
830
        $delete = "";
831
    }
832
    // Bestellung und Kundendaten löschen
833
    if ( !isset( $delete2 ) )
834
    {
835
        $delete2 = "";
836
    }
837
    // Bestellung und Kundendaten löschen
838
    if ( !isset( $delete2_x ) )
839
    {
840
        $delete2_x = "";
841
    }
842
    if ( $delete )
843
    {
844
        require_once "delete_bestellung.php";
845
        delete_bestellung( $Bestellung, true, true );
846
        unset( $Bestellung, $_GET["Bestellung"], $_POST["Bestellung"] );
847
    }
848
 
849
    // nur Bestellung löschen
850
    if ( $delete2 || $delete2_x )
851
    {
852
        require_once "delete_bestellung.php";
853
        delete_bestellung( $Bestellung, false, true );
854
        unset( $Bestellung, $_GET["Bestellung"], $_POST["Bestellung"] );
855
    }
856
 
857
    // Filter verarbeiten und vorbelegen
858
    if ( isset( $_SESSION["filter"] ) && $_SESSION["filter"] )
859
    {
860
        $filter = $_SESSION["filter"];
861
    }
862
    if ( isset( $_GET["filter"] ) && $_GET["filter"] )
863
    {
864
        $filter = $_GET["filter"];
865
    } elseif ( isset( $_POST["filter"] ) && $_POST["filter"] )
866
    {
867
        $filter = $_POST["filter"];
868
    }
869
    if ( !isset( $filter["ausgabeart"] ) )
870
    {
871
        $filter["ausgabeart"] = 0;
872
    }
873
    if ( !isset( $filter["status"] ) )
874
    {
875
        $filter["status"] = "";
876
    }
877
    if ( !isset( $filter["zeit"] ) )
878
    {
879
        $filter["zeit"] = 0;
880
    }
881
    if ( !isset( $filter["kundensuche"] ) )
882
    {
883
        $filter["kundensuche"] = "";
884
    }
885
    if ( !isset( $filter["rechnungsstatus"] ) )
886
    {
887
        $filter["rechnungsstatus"] = "";
888
    }
889
    if ( !isset( $filter["shopID"] ) )
890
    {
891
        $filter["shopID"] = "";
892
    }
893
    if ( !isset( $filter["bestellart_id"] ) )
894
    {
895
        $filter["bestellart_id"] = "";
896
    }
897
    if ( !isset( $filter["artikelsuche"] ) )
898
    {
899
        $filter["artikelsuche"] = "";
900
    }
901
    if ( !isset( $filter["fremd_ID"] ) )
902
    {
903
        $filter["fremd_ID"] = "";
904
    }
905
    if ( !isset( $filter["bestellung_ID"] ) )
906
    {
907
        $filter["bestellung_ID"] = "";
908
    }
909
    if ( !isset( $_GET["login_id"] ) )
910
    {
911
        $_GET["login_id"] = "";
912
    }
913
    if ( !isset( $filter["order"] ) )
914
    {
915
        $filter["order"] = "";
916
    }
917
    if ( !isset( $filter["shortline1"] ) )
918
    {
919
        $filter["shortline1"] = "";
920
    }
921
    if ( !isset( $filter["status1"] ) )
922
    {
923
        $filter["status1"] = "";
924
    }
925
    if ( isset( $_GET["start"] ) && $_GET["start"] )
926
    {
927
        $filter["start"] = $_GET["start"];
928
    }
929
 
930
    if ( $filter["start"] )
931
    {
932
        SmartyPaginate::setCurrentItem( $filter["start"] );
933
    }
934
    else
935
    {
936
        $filter["start"] = SmartyPaginate::getCurrentItem();
937
    }
938
 
939
    /* Neue Ausgabefilte: 18.03.2008 Markus N. */
940
    if ( !$filter['ausgabe'] )
941
    {
942
        $filter['ausgabe'] = "bestellung";
943
    }
944
 
945
    $order = $filter["order"];
946
    // wenn ausgabeart: Schnelleditor/Bestellung
947
 
948
    if ( !isset( $desc ) )
949
    {
950
        $desc = false;
951
    }
952
    if ( $order && $order[0] == "_" )
953
    {
954
        $order = substr( $order, 1 );
955
        $desc = true;
956
    }
957
    if ( $filter["ausgabe"] == 0 || $filter["ausgabe"] == 2 )
958
    {
959
        switch ( $order )
960
        {
961
            case "Bestellnummer":
962
                $queryOrder = " ORDER BY b.ID";
963
                break;
964
            case "Bestelldatum":
965
                $queryOrder = " ORDER BY b.erstellt_am";
966
                break;
967
            case "Artikel":
968
                $queryOrder = " ORDER BY 1";
969
                break;
970
            case "Kunde":
971
                $queryOrder = " ORDER BY l.Name1";
972
                break;
973
            case "PLZ":
974
                $queryOrder = " ORDER BY l.PLZ";
975
                break;
976
            case "ORT":
977
                $queryOrder = " ORDER BY l.ORT";
978
                break;
979
            case "Land":
980
                $queryOrder = " ORDER BY l.Land";
981
                break;
982
            case "Language":
983
                $queryOrder = " ORDER BY b.Language";
984
                break;
985
            default:
986
                $queryOrder = " ORDER BY b.ID DESC";
987
                break;
988
        }
989
    }
990
    if ( $desc === true )
991
    {
992
        $queryOrder .= " DESC";
993
    }
994
    if ( is_null( $filter['bestellart_id'] ) )
995
    {
996
        if ( !isset( $web_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) )
997
        {
998
            $filter["bestellart_id"] = -1;
999
        }
1000
        else
1001
        {
1002
            $filter['bestellart_id'] = 1;
1003
        }
1004
    }
1005
    if ( isset( $web_rechte["Warenwirtschaft"]["bezahlstatus"]["bezahlstatus"] ) )
1006
    {
1007
        if ( !isset( $filter["bezahlstatus"] ) )
1008
        {
1009
            $filter["bezahlstatus"] = "";
1010
        }
1011
    }
1012
    if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) )
1013
    {
1014
        if ( $filter['bestellart_id'] != "" )
1015
        {
1016
            $bestellart_filter = " and Bestellung.bestellart_id =" . $filter['bestellart_id'];
1017
        } elseif ( $filter['bestellart_id'] == "" )
1018
        {
1019
            unset( $bestellart_filter );
1020
            unset( $filter["bestellart"] );
1021
        }
1022
        else
1023
        {
1024
            $bestellart_filter = " and Bestellung.bestellart_id = 1";
1025
            //unset($bestellart_filter);
1026
        }
1027
        //$GLOBALS["ui"]->assign( "art", $bestellarten[$filter["bestellart_id"] - 1]["name"] );
1028
    }
1029
    else
1030
    {
1031
        if ( $filter['bestellart_id'] )
1032
        {
1033
            unset( $filter["bestellart_id"] );
1034
        }
1035
        unset( $bestellart_filter );
1036
    }
1037
 
1038
    $_SESSION["filter"] = $filter;
1039
 
1040
    /* Neue Ausgabefilte: 18.03.2008 Markus N.  ende */
1041
    $ausgabearten = array( array( "id" => 0, "name" => "Bestellung" ), array( "id" =>
1042
        1, "name" => "Artikel" ), array( "id" => 2, "name" => "Schnelleditor" ) );
1043
    $ausgabearten_sel = select_tpl( "filter[ausgabeart]", $ausgabearten, "id",
1044
        "name", $filter["ausgabeart"], true );
1045
    $bestellarten_sel = "";
1046
    if ( is_array( $bestellarten ) )
1047
    {
1048
        $bestellarten_sel = select_tpl( "filter[bestellart_id]", $bestellarten, "id",
1049
            "name", $filter["bestellart_id"] );
1050
    }
1051
    $shops_neu = getShops();
1052
    $shops_sel = select_tpl( "filter[shopID]", $shops_neu, "ID", "Name", $filter["shopID"] );
1053
 
1054
    $stati = array( "op_ib" => "offen und in B.", "op_ib_re" => "of.,in B.u.res.",
1055
        "op" => "offene Posten", "ib" => "in Bearbeitung", "re" => "reserviert", "er" =>
1056
        "erledigt", "ab" => "abgeschlossen", "" => "alle" );
1057
    $zeiten = array( "alle", "heute", "gestern", "lfd. Woche", "letzte Woche",
1058
        strftime( "%B %G" ), strftime( "%B %G", strtotime( "-1 month" ) ), strftime( "%B %G",
1059
        strtotime( "-2 months" ) ), strftime( "%B %G", strtotime( "-3 months" ) ),
1060
        strftime( "%B %G", strtotime( "-4 months" ) ) );
1061
    $rstati = array( "S" => "schreiben", "G" => "geschrieben", "B" => "bezahlt", "O" =>
1062
        "ohne", "" => "alle" );
1063
 
1064
    if ( !$Bestellung )
1065
    {
1066
        // Ausgabeart bestimmen
1067
        switch ( $filter["ausgabeart"] )
1068
        {
1069
            case 0:
1070
            default:
1071
                require_once "bestellungen_liste.php";
1072
                break;
1073
            case 1:
1074
                require_once "artikel_liste.php";
1075
                break;
1076
            case 2:
1077
                require_once "schnelleditor_liste.php";
1078
                break;
1079
        }
1080
    }
1081
    else
1082
    {
1083
        // Detailseite anzeigen
1084
        require_once "bestellung_formular.php";
1085
    }
1086
 
1087
    // Variablen zu Template zuweisen
1088
    $GLOBALS["ui"]->assign( "stati", $stati );
1089
    $GLOBALS["ui"]->assign( "stati_sel", $filter["status"] );
1090
    $GLOBALS["ui"]->assign( "rstati", $rstati );
1091
    $GLOBALS["ui"]->assign( "rstati_sel", $filter["rechnungsstatus"] );
1092
    $GLOBALS["ui"]->assign( "zeiten", $zeiten );
1093
    $GLOBALS["ui"]->assign( "zeiten_sel", $filter["zeit"] );
1094
    $GLOBALS["ui"]->assign( "ausgabearten", $ausgabearten_sel );
1095
    $GLOBALS["ui"]->assign( "bestellarten", $bestellarten_sel );
1096
    $GLOBALS["ui"]->assign( "bestellart", $bestellart );
1097
    $GLOBALS["ui"]->assign( "bestellung_ID", $filter["bestellung_ID"] );
1098
    $GLOBALS["ui"]->assign( "fremd_ID", $filter["fremd_ID"] );
1099
    $GLOBALS["ui"]->assign( "artikelsuche", $filter["artikelsuche"] );
1100
    $GLOBALS["ui"]->assign( "kundensuche", $filter["kundensuche"] );
1101
    $GLOBALS["ui"]->assign( "start", $filter["start"] );
1102
    $GLOBALS["ui"]->assign( "shortline1", $filter["shortline1"] );
1103
    $GLOBALS["ui"]->assign( "webs", $webs );
1104
    $GLOBALS["ui"]->assign( "status1", $filter["status1"] );
1105
    $GLOBALS["ui"]->assign( "bezahlstatus", $filter["bezahlstatus"] );
1106
    $GLOBALS["ui"]->assign( "user_rechte", $user_rechte );
1107
    $GLOBALS["ui"]->assign( "web_rechte", $web_rechte );
1108
    $GLOBALS["ui"]->assign( "web_settings", $web_settings );
1109
    $GLOBALS["ui"]->assign( "shops", $shops_sel );
1110
    $GLOBALS["ui"]->assign( "filter_maske", $filter_maske );
1111
 
1112
    if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["shortline1"] ) )
1113
    {
1114
        if ( $web_rechte["Warenwirtschaft"]["bestellung"]["shortline1"] )
1115
        {
1116
            list( $shortline1_name, $shortline1_size ) = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["shortline1"] );
1117
        }
1118
        else
1119
        {
1120
            $shortline1_name = "Shortline1:";
1121
            $shortline1_size = 10;
1122
        }
1123
 
1124
        $GLOBALS["ui"]->assign( "shortline1_size", $shortline1_size );
1125
        $GLOBALS["ui"]->assign( "shortline1_name", $shortline1_name );
1126
    }
1127
    if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["status1"] ) )
1128
    {
1129
        if ( $web_rechte["Warenwirtschaft"]["bestellung"]["status1"] )
1130
        {
1131
            list( $status1_name, $status1_option_str ) = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["status1"],
1132
                2 );
1133
            $status1_options_arr = explode( ";", $status1_option_str );
1134
            $status1_options = array( "" );
1135
            $status1_options_filter = array( "alle" );
1136
            foreach ( $status1_options_arr as $option )
1137
            {
1138
                $status1_options[$option] = $option;
1139
                $status1_options_filter[$option] = $option;
1140
            }
1141
            //$status1_options = array_merge( $status1_options );
1142
        }
1143
        $GLOBALS["ui"]->assign( "status1_name", $status1_name );
1144
        $GLOBALS["ui"]->assign( "status1_options", $status1_options );
1145
        $GLOBALS["ui"]->assign( "status1_options_filter", $status1_options_filter );
1146
    }
1147
 
1148
    // Bezahlstatus SELECT BOX
1149
    if ( isset( $user_rechte["Warenwirtschaft"]["bezahlstatus"]["bezahlstatus"] ) )
1150
    {
1151
        $bezahlstatus_options_filter[] = "alle";
1152
        $bezahlstatus_options_filter[] = "offen";
1153
        $bezahlstatus_options_filter[] = "bezahlt";
1154
 
1155
        $GLOBALS["ui"]->assign( "bezahlstatus_name", $bezahlstatus_name );
1156
        $GLOBALS["ui"]->assign( "bezahlstatus_options", $bezahlstatus_options );
1157
        $GLOBALS["ui"]->assign( "bezahlstatus_options_filter", $bezahlstatus_options_filter );
1158
    }
1159
 
1160
    // Zeit messen
1161
    if ( defined( "DEBUG" ) )
1162
    {
1163
        $diff = round( $time2 - $time, 2 );
1164
        $sdat = date( "d.m.Y H:i:s", $time );
1165
        $edat = date( "d.m.Y H:i:s", $time2 );
1166
        $GLOBALS["ui"]->assign( "sdat", $sdat );
1167
        $GLOBALS["ui"]->assign( "edat", $edat );
1168
        $GLOBALS["ui"]->assign( "diff", number_format( $diff, 2, ',', '' ) );
1169
    }
1170
 
1171
    // Template ausgeben
1172
    $GLOBALS["ui"]->assign( "tpl_file", $tpl_file );
1173
    $GLOBALS["ui"]->assign("site",$site);
1174
    if ( $_GET["login_id"] )
1175
    {
1176
        $bestellungen_liste = $GLOBALS["ui"]->fetch( "bestellungen.tpl" );
1177
    }
1178
    else
1179
    {
1180
        $GLOBALS["ui"]->display( "bestellungen.tpl" );
1181
    }
1182
 
1183
?>