Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
    /**
4
     * @package   Content-management
5
     * @author    Lars Tiefland <tiefland@weban.de>
6
     * @copyright 2010 Webagentur Niewerth
7
     * @license   propietary http://www.weban.de
8
     * @version   $Rev: 3361 $
9
     * @filesource
10
     *
11
     */
12
 
13
    /**
14
     *
15
     * @package   Content-management
16
     * @author    Lars Tiefland <tiefland@weban.de>
17
     * @copyright 2010 Webagentur Niewerth
18
     */
19
 
20
    // SVN: $Id: change_a_status.php 3361 2011-02-24 15:34:41Z tiefland $
21
    require_once  "../Online-Shop/connect2.php";
22
    require_once  "includes/bestellungen/system/mysql_query_logged.php";
23
    require_once  "includes/bestellungen/system/bestellung_puffern.php";
24
    require_once  "includes/bestellungen/system/getBestellungSumme.php";
25
    require_once  "includes/bestellungen/system/getBestellungStatus.php";
26
    require_once  "includes/bestellungen/system/getBestellungRechnungStatus.php";
27
    require_once  "includes/bestellungen/system/artikelDatabase.php";
28
    $artikel = array();
29
    $elem = $_GET["id"];
30
    $sql = "SELECT
31
            shops_ID
32
        FROM
33
            Bestellung
34
        WHERE
35
            ID=$elem
36
    ";
37
    $res = mysql_query( $sql );
38
    $row = mysql_fetch_assoc( $res );
39
    $s_id = $row["shops_ID"];
40
    $_GET["massenschalter"] = false;
41
    if ( $_GET["a_id"] == 0 )
42
    {
43
        $_GET["massenschalter"] = true;
44
        $sql = "
45
            SELECT
46
                ab.ID AS artikel
47
            FROM
48
                artikel_to_Bestellung AS ab
49
            LEFT JOIN " . artikelDatabase( $s_id ) . " AS a
50
            ON
51
                ab.artikel = a.ID
52
            WHERE
53
                Bestellung=$elem
54
            AND
55
            (
56
                (Father >= -1) OR (Father IS NULL)
57
            )
58
        ";
59
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
60
            mysql_error() );
61
        while ( $db = mysql_fetch_assoc( $result ) )
62
        {
63
            $artikel[] = $db["artikel"];
64
        }
65
    }
66
    else
67
    {
68
        $artikel[] = $_GET["a_id"];
69
    }
70
    if ( $_GET["a_status"] && count( $artikel ) )
71
    {
72
        $prefix = "a";
73
        $status = $_GET["a_status"];
74
        $sql = "
75
            SELECT
76
                status,
77
                ID
78
            FROM
79
                artikel_to_Bestellung
80
            WHERE
81
                ID IN( " . implode( ",", $artikel ) . ")
82
        ";
83
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
84
            mysql_error() );
85
        while ( $db = mysql_fetch_assoc( $result ) )
86
        {
87
            $id = $db["ID"];
88
            $this_status_code[$id] = $status;
89
            $old_status[$id] = $db["status"];
90
            switch ( $old_status[$id] )
91
            {
92
                case "offen":
93
                    $old_status_code[$id] = "O";
94
                    break;
95
                case "freigegeben":
96
                    $old_status_code[$id] = "F";
97
                    break;
98
                case "versand":
99
                    $old_status_code[$id] = "V";
100
                    break;
101
                case "in Bearbeitung":
102
                    $old_status_code[$id] = "B";
103
                    break;
104
                case "reserviert":
105
                    $old_status_code[$id] = "R";
106
                    break;
107
                case "erledigt":
108
                    $old_status_code[$id] = "E";
109
                    break;
110
                case "abgeschlossen":
111
                    $old_status_code[$id] = "A";
112
                    break;
113
                case "storniert":
114
                    break;
115
                default:
116
                    $old_status_code[$id] = "";
117
                    break;
118
            }
119
            switch ( $status )
120
            {
121
                case "O":
122
                    $this_status[$id] = ( $old_status[$id] == "offen" && !$_GET['massenschalter'] ) ?
123
                        "":
124
                    "offen"; // Markus
125
                    $class = "status_red";
126
                    break;
127
                case "F":
128
                    $this_status[$id] = ( $old_status[$id] == "freigegeben" &&
129
                        !$_GET['massenschalter'] ) ? "":
130
                    "freigegeben";
131
                    $class = "status_yellow";
132
                    break;
133
                case "V":
134
                    $this_status[$id] = ( $old_status[$id] == "versand" && !
135
                        $_GET['massenschalter'] ) ? "":
136
                    "versand";
137
                    $class = "status_green";
138
                    break;
139
                case "B":
140
                    $this_status[$id] = ( $old_status[$id] ==
141
                        "in Bearbeitung" && !$_GET['massenschalter'] ) ? "":
142
                    "in Bearbeitung";
143
                    $class = "status_yellow";
144
                    break;
145
                case "R":
146
                    $this_status[$id] = ( $old_status[$id] == "reserviert" &&
147
                        !$_GET['massenschalter'] ) ? "":
148
                    "reserviert";
149
                    $class = "status_blue";
150
                    break;
151
                case "E":
152
                    $this_status[$id] = ( $old_status[$id] == "erledigt" &&
153
                        !$_GET['massenschalter'] ) ? "":
154
                    "erledigt";
155
                    $class = "status_green";
156
                    break;
157
                case "A":
158
                    $this_status[$id] = ( $old_status[$id] ==
159
                        "abgeschlossen" && !$_GET['massenschalter'] ) ? "":
160
                    "abgeschlossen";
161
                    $class = "status_white";
162
                    break;
163
                case "S":
164
                    $this_status[$id] = ( $old_status[$id] == "storniert" &&
165
                        !$_GET['massenschalter'] ) ? "":
166
                    "storniert";
167
                    break;
168
                default:
169
                    $this_status[$id] = "";
170
                    break;
171
            }
172
            if ( $this_status[$id] == "" )
173
            {
174
                $class = "status_off";
175
            }
176
        }
177
        $sql = "
178
            UPDATE
179
                artikel_to_Bestellung
180
            SET
181
                status='" . $this_status[$id] . "'
182
            WHERE
183
                ID IN( " . implode( ",", $artikel ) . ")
184
        ";
185
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
186
            mysql_error() );
187
 
188
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
189
        {
190
            $GLOBALS["Log"]["best"]->log( "Status für die Artikel " .
191
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
192
                " geändert", $elem );
193
        }
194
    }
195
 
196
    // Rechnungstatus
197
    if ( $_GET["r_status"] && count( $artikel ) )
198
    {
199
        $prefix = "r";
200
        $status = $_GET["r_status"];
201
        $sql = "
202
            SELECT
203
                rechnungStatus,
204
                ID
205
            FROM
206
                artikel_to_Bestellung
207
            WHERE
208
                ID IN( " . implode( ",", $artikel ) . ")
209
        ";
210
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
211
            mysql_error() );
212
        while ( $db = mysql_fetch_assoc( $result ) )
213
        {
214
            $id = $db["ID"];
215
            $this_status_code[$id] = $status;
216
            $old_status[$id] = $db["rechnungStatus"];
217
            switch ( $old_status[$id] )
218
            {
219
                case "schreiben":
220
                    $old_status_code[$id] = "S";
221
                    break;
222
                case "geschrieben":
223
                    $old_status_code[$id] = "G";
224
                    break;
225
                case "bezahlt":
226
                    $old_status_code[$id] = "B";
227
                    break;
228
                default:
229
                    $old_status_code[$id] = "";
230
                    break;
231
            }
232
            switch ( $status )
233
            {
234
                case "S":
235
 
236
                    $this_status[$id] = ( $old_status[$id] == "schreiben" &&
237
                        !$_GET['massenschalter'] ) ? "":
238
                    "schreiben";
239
                    $class = "status_red";
240
                    break;
241
                case "G":
242
                    $this_status[$id] = ( $old_status[$id] == "geschrieben" &&
243
                        !$_GET['massenschalter'] ) ? "":
244
                    "geschrieben";
245
                    $class = "status_yellow";
246
                    break;
247
                case "B":
248
                    $this_status[$id] = ( $old_status[$id] == "bezahlt" && !
249
                        $_GET['massenschalter'] ) ? "":
250
                    "bezahlt";
251
                    $class = "status_green";
252
                    break;
253
                default:
254
                    $this_status[$id] = "";
255
                    $class = "status_off";
256
                    break;
257
            }
258
        }
259
        if ( $this_status[$id] == "" )
260
        {
261
            $class = "status_off";
262
        }
263
        $sql = "
264
            UPDATE
265
                artikel_to_Bestellung
266
            SET
267
                rechnungStatus='" . $this_status[$id] . "'
268
            WHERE
269
                ID IN( " . implode( ",", $artikel ) . ")
270
        ";
271
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
272
            mysql_error() );
273
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
274
        {
275
            $GLOBALS["Log"]["best"]->log( "Rechnungsstatus für die Artikel " .
276
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
277
                " geändert", $elem );
278
        }
279
    }
280
 
281
    //Lieferscheinstatus
282
    if ( $_GET["l_status"] && count( $artikel ) )
283
    {
284
        $prefix = "l";
285
        $status = $_GET["l_status"];
286
        $sql = "
287
            SELECT
288
                lieferscheinStatus,
289
                ID
290
            FROM
291
                artikel_to_Bestellung
292
            WHERE
293
                ID IN( " . implode( ",", $artikel ) . ")
294
        ";
295
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
296
            mysql_error() );
297
        while ( $db = mysql_fetch_assoc( $result ) )
298
        {
299
            $id = $db["ID"];
300
            $this_status_code[$id] = $status;
301
            $old_status[$id] = $db["lieferscheinStatus"];
302
            switch ( $old_status[$id] )
303
            {
304
                case "schreiben":
305
                    $old_status_code[$id] = "S";
306
                    break;
307
                case "geschrieben":
308
                    $old_status_code[$id] = "G";
309
                    break;
310
                case "offen":
311
                    $old_status_code[$id] = "O";
312
                    break;
313
                default:
314
                    $old_status_code[$id] = "";
315
                    break;
316
            }
317
            switch ( $status )
318
            {
319
                case "S":
320
 
321
                    $this_status[$id] = ( $old_status[$id] == "schreiben" &&
322
                        !$_GET['massenschalter'] ) ? "":
323
                    "schreiben";
324
                    $class = "status_yellow";
325
                    break;
326
                case "G":
327
                    $this_status[$id] = ( $old_status[$id] == "geschrieben" &&
328
                        !$_GET['massenschalter'] ) ? "":
329
                    "geschrieben";
330
                    $class = "status_green";
331
                    break;
332
                case "O":
333
                    $this_status[$id] = ( $old_status[$id] == "offen" && !$_GET['massenschalter'] ) ?
334
                        "":
335
                    "offen";
336
                    $class = "status_red";
337
                    break;
338
                default:
339
                    $this_status[$id] = "";
340
                    $class = "status_off";
341
                    break;
342
            }
343
        }
344
        if ( $this_status[$id] == "" )
345
        {
346
            $class = "status_off";
347
        }
348
        $sql = "
349
            UPDATE
350
                artikel_to_Bestellung
351
            SET
352
                lieferscheinStatus='" . $this_status[$id] . "'
353
            WHERE
354
                ID IN( " . implode( ",", $artikel ) . ")
355
        ";
356
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
357
            mysql_error() );
358
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
359
        {
360
            $GLOBALS["Log"]["best"]->log( "Lieferscheinstatus für die Artikel " .
361
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
362
                " geändert", $elem );
363
        }
364
    }
365
 
366
    // Mahnungstatus
367
    if ( $_GET["m_status"] && count( $artikel ) )
368
    {
369
        $prefix = "m";
370
        $status = $_GET["m_status"];
371
        $sql = "
372
            SELECT
373
                mahnungStatus,
374
                ID
375
            FROM
376
                artikel_to_Bestellung
377
            WHERE
378
                ID IN( " . implode( ",", $artikel ) . ")
379
        ";
380
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
381
            mysql_error() );
382
        while ( $db = mysql_fetch_assoc( $result ) )
383
        {
384
            $id = $db["ID"];
385
            $this_status_code[$id] = $status;
386
            $old_status[$id] = $db["mahnungStatus"];
387
            switch ( $old_status[$id] )
388
            {
389
                case "mahnung1":
390
                    $old_status_code[$id] = "1";
391
                    break;
392
                case "mahnung2":
393
                    $old_status_code[$id] = "2";
394
                    break;
395
                case "mahnung3":
396
                    $old_status_code[$id] = "3";
397
                    break;
398
                default:
399
                    $old_status_code[$id] = "";
400
                    break;
401
            }
402
            switch ( $status )
403
            {
404
                case "1":
405
                    $this_status[$id] = ( $old_status[$id] == "mahnung1" &&
406
                        !$_GET['massenschalter'] ) ? "":
407
                    "mahnung1";
408
                    $class = "status_green";
409
                    break;
410
                case "2":
411
                    $this_status[$id] = ( $old_status[$id] == "mahnung2" &&
412
                        !$_GET['massenschalter'] ) ? "":
413
                    "mahnung2";
414
                    $class = "status_yellow";
415
                    break;
416
                case "3":
417
                    $this_status[$id] = ( $old_status[$id] == "mahnung3" &&
418
                        !$_GET['massenschalter'] ) ? "":
419
                    "mahnung3";
420
                    $class = "status_red";
421
                    break;
422
                default:
423
                    $this_status[$id] = "";
424
                    $class = "status_off";
425
                    break;
426
            }
427
        }
428
        if ( $this_status[$id] == "" )
429
        {
430
            $class = "status_off";
431
        }
432
        $sql = "
433
            UPDATE
434
                artikel_to_Bestellung
435
            SET
436
                mahnungStatus='" . $this_status[$id] . "'
437
            WHERE
438
                ID IN( " . implode( ",", $artikel ) . ")
439
        ";
440
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
441
            mysql_error() );
442
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
443
        {
444
            $GLOBALS["Log"]["best"]->log( "Mahnungsstatus für die Artikel " .
445
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
446
                " geändert", $elem );
447
        }
448
    }
449
 
450
    // Garantiestatus
451
    if ( $_GET["g_status"] && count( $artikel ) )
452
    {
453
        $prefix = "g";
454
        $status = $_GET["g_status"];
455
        $sql = "
456
            SELECT
457
                garantieStatus,
458
                ID
459
            FROM
460
                artikel_to_Bestellung
461
            WHERE
462
                ID IN( " . implode( ",", $artikel ) . ")
463
        ";
464
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
465
            mysql_error() );
466
        while ( $db = mysql_fetch_assoc( $result ) )
467
        {
468
            $id = $db["ID"];
469
            $old_status[$id] = $db["garantieStatus"];
470
            switch ( $old_status[$id] )
471
            {
472
                case "eingereicht":
473
                    $old_status_code[$id] = "E";
474
                    break;
475
                case "abgeschlossen":
476
                    $old_status_code[$id] = "A";
477
                    break;
478
                default:
479
                    $old_status_code[$id] = "";
480
                    break;
481
            }
482
            switch ( $status )
483
            {
484
                case "E":
485
 
486
                    $this_status[$id] = ( $old_status[$id] == "eingereicht" &&
487
                        !$_GET['massenschalter'] ) ? "":
488
                    "eingereicht";
489
                    $class = "status_red";
490
                    break;
491
                case "A":
492
                    $this_status[$id] = ( $old_status[$id] ==
493
                        "abgeschlossen" && !$_GET['massenschalter'] ) ? "":
494
                    "abgeschlossen";
495
                    $class = "status_green";
496
                    break;
497
                default:
498
                    $this_status[$id] = "";
499
                    $class = "status_off";
500
                    break;
501
            }
502
        }
503
        if ( $this_status[$id] == "" )
504
        {
505
            $class = "status_off";
506
        }
507
        $sql = "
508
            UPDATE
509
                artikel_to_Bestellung
510
            SET
511
                garantieStatus='" . $this_status[$id] . "'
512
            WHERE
513
                ID IN( " . implode( ",", $artikel ) . ")
514
        ";
515
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
516
            mysql_error() );
517
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
518
        {
519
            $GLOBALS["Log"]["best"]->log( "Garantiestatus für die Artikel " .
520
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
521
                " geändert", $elem );
522
        }
523
    }
524
    if ( $elem )
525
    {
526
        $sql = "
527
            SELECT
528
                erstellt_von
529
            FROM
530
                Bestellung
531
            WHERE
532
                ID=$elem
533
        ";
534
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
535
            mysql_error() );
536
        $zeile = mysql_fetch_array( $result );
537
        if ( $zeile["erstellt_von"] == '' )
538
        {
539
            $upd_fields[] = "erstellt_von='" . $_SERVER["PHP_AUTH_USER"] .
540
                "'";
541
        }
542
        $upd_fields[] = "letzte_Aenderung_von='" . $_SERVER["PHP_AUTH_USER"] .
543
            "'";
544
        $sql = "
545
            UPDATE
546
                Bestellung
547
            SET
548
            " . implode( ",", $upd_fields ) . "
549
            WHERE
550
                ID=$elem
551
        ";
552
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
553
            mysql_error() );
554
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
555
        {
556
            $GLOBALS["Log"]["best"]->log( "Statusinformationen für die Bestellung $elem geändert",
557
                $elem );
558
        }
559
 
560
        $sql = "
561
            SELECT
562
                erstellt_von,
563
                letzte_Aenderung_am,
564
                letzte_Aenderung_von
565
            FROM
566
                Bestellung
567
            WHERE
568
                ID = $elem
569
        ";
570
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
571
            mysql_error() );
572
        $row = mysql_fetch_assoc( $result );
573
        $zeit = strftime( "%H:%M:%S", strtotime( $row["letzte_Aenderung_am"] ) );
574
        $datum = strftime( "%d.%m.%Y", strtotime( $row["letzte_Aenderung_am"] ) );
575
        $ersteller = $row["erstellt_von"];
576
        bestellung_puffern( $elem );
577
    }
578
    // erstellt_von;letze_Aenderung_Datum letzte_Aenderung_zeit letze_Aenderung_von
579
    // ID_des_alten_Status;Klasse;ID_des_neuen_Status;Klasse
580
    echo "$ersteller;$datum um $zeit von " . $_SERVER["PHP_AUTH_USER"] . "|";
581
    foreach ( $artikel as $a_id => $a_nr )
582
    {
583
        //var_dump($old_status_code[$a_nr]);
584
        $rows[] = $prefix . "_" . $a_nr . "_" . $old_status_code[$a_nr] .
585
            ";status_off;" . $prefix . "_" . $a_nr . "_" . $this_status_code[$a_nr] .
586
            ";$class;" . $this_status[$a_nr];
587
    }
588
    echo implode( "|", $rows ); ?>