Subversion-Projekte lars-tiefland.content-management

Revision

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