Subversion-Projekte lars-tiefland.content-management

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php

    /**
     * @package   Content-management
     * @author    Lars Tiefland <tiefland@weban.de>
     * @copyright 2010 Webagentur Niewerth
     * @license   propietary http://www.weban.de
     * @version   $Rev: 3361 $
     * @filesource
     * 
     */

    /**
     * 
     * @package   Content-management
     * @author    Lars Tiefland <tiefland@weban.de>
     * @copyright 2010 Webagentur Niewerth
     */

    // SVN: $Id: change_a_status.php 3361 2011-02-24 15:34:41Z tiefland $
    require_once  "../Online-Shop/connect2.php";
    require_once  "includes/bestellungen/system/mysql_query_logged.php";
    require_once  "includes/bestellungen/system/bestellung_puffern.php";
    require_once  "includes/bestellungen/system/getBestellungSumme.php";
    require_once  "includes/bestellungen/system/getBestellungStatus.php";
    require_once  "includes/bestellungen/system/getBestellungRechnungStatus.php";
    require_once  "includes/bestellungen/system/artikelDatabase.php";
    $artikel = array();
    $elem = $_GET["id"];
    $sql = "SELECT
            shops_ID
        FROM
            Bestellung
        WHERE
            ID=$elem
    ";
    $res = mysql_query( $sql );
    $row = mysql_fetch_assoc( $res );
    $s_id = $row["shops_ID"];
    $_GET["massenschalter"] = false;
    if ( $_GET["a_id"] == 0 )
    {
        $_GET["massenschalter"] = true;
        $sql = "
            SELECT
                ab.ID AS artikel
            FROM
                artikel_to_Bestellung AS ab
            LEFT JOIN " . artikelDatabase( $s_id ) . " AS a
            ON
                ab.artikel = a.ID
            WHERE
                Bestellung=$elem
            AND
            (
                (Father >= -1) OR (Father IS NULL)
            )
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        while ( $db = mysql_fetch_assoc( $result ) )
        {
            $artikel[] = $db["artikel"];
        }
    }
    else
    {
        $artikel[] = $_GET["a_id"];
    }
    if ( $_GET["a_status"] && count( $artikel ) )
    {
        $prefix = "a";
        $status = $_GET["a_status"];
        $sql = "
            SELECT 
                status,
                ID
            FROM 
                artikel_to_Bestellung 
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ")
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        while ( $db = mysql_fetch_assoc( $result ) )
        {
            $id = $db["ID"];
            $this_status_code[$id] = $status;
            $old_status[$id] = $db["status"];
            switch ( $old_status[$id] )
            {
                case "offen":
                    $old_status_code[$id] = "O";
                    break;
                case "freigegeben":
                    $old_status_code[$id] = "F";
                    break;
                case "versand":
                    $old_status_code[$id] = "V";
                    break;
                case "in Bearbeitung":
                    $old_status_code[$id] = "B";
                    break;
                case "reserviert":
                    $old_status_code[$id] = "R";
                    break;
                case "erledigt":
                    $old_status_code[$id] = "E";
                    break;
                case "abgeschlossen":
                    $old_status_code[$id] = "A";
                    break;
                case "storniert":
                    break;
                default:
                    $old_status_code[$id] = "";
                    break;
            }
            switch ( $status )
            {
                case "O":
                    $this_status[$id] = ( $old_status[$id] == "offen" && !$_GET['massenschalter'] ) ?
                        "":
                    "offen"; // Markus
                    $class = "status_red";
                    break;
                case "F":
                    $this_status[$id] = ( $old_status[$id] == "freigegeben" &&
                        !$_GET['massenschalter'] ) ? "":
                    "freigegeben";
                    $class = "status_yellow";
                    break;
                case "V":
                    $this_status[$id] = ( $old_status[$id] == "versand" && !
                        $_GET['massenschalter'] ) ? "":
                    "versand";
                    $class = "status_green";
                    break;
                case "B":
                    $this_status[$id] = ( $old_status[$id] ==
                        "in Bearbeitung" && !$_GET['massenschalter'] ) ? "":
                    "in Bearbeitung";
                    $class = "status_yellow";
                    break;
                case "R":
                    $this_status[$id] = ( $old_status[$id] == "reserviert" &&
                        !$_GET['massenschalter'] ) ? "":
                    "reserviert";
                    $class = "status_blue";
                    break;
                case "E":
                    $this_status[$id] = ( $old_status[$id] == "erledigt" &&
                        !$_GET['massenschalter'] ) ? "":
                    "erledigt";
                    $class = "status_green";
                    break;
                case "A":
                    $this_status[$id] = ( $old_status[$id] ==
                        "abgeschlossen" && !$_GET['massenschalter'] ) ? "":
                    "abgeschlossen";
                    $class = "status_white";
                    break;
                case "S":
                    $this_status[$id] = ( $old_status[$id] == "storniert" &&
                        !$_GET['massenschalter'] ) ? "":
                    "storniert";
                    break;
                default:
                    $this_status[$id] = "";
                    break;
            }
            if ( $this_status[$id] == "" )
            {
                $class = "status_off";
            }
        }
        $sql = "
            UPDATE 
                artikel_to_Bestellung 
            SET
                status='" . $this_status[$id] . "'
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ") 
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );

        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
        {
            $GLOBALS["Log"]["best"]->log( "Status für die Artikel " .
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
                " geändert", $elem );
        }
    }

    // Rechnungstatus
    if ( $_GET["r_status"] && count( $artikel ) )
    {
        $prefix = "r";
        $status = $_GET["r_status"];
        $sql = "
            SELECT 
                rechnungStatus,
                ID
            FROM 
                artikel_to_Bestellung 
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ")
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        while ( $db = mysql_fetch_assoc( $result ) )
        {
            $id = $db["ID"];
            $this_status_code[$id] = $status;
            $old_status[$id] = $db["rechnungStatus"];
            switch ( $old_status[$id] )
            {
                case "schreiben":
                    $old_status_code[$id] = "S";
                    break;
                case "geschrieben":
                    $old_status_code[$id] = "G";
                    break;
                case "bezahlt":
                    $old_status_code[$id] = "B";
                    break;
                default:
                    $old_status_code[$id] = "";
                    break;
            }
            switch ( $status )
            {
                case "S":

                    $this_status[$id] = ( $old_status[$id] == "schreiben" &&
                        !$_GET['massenschalter'] ) ? "":
                    "schreiben";
                    $class = "status_red";
                    break;
                case "G":
                    $this_status[$id] = ( $old_status[$id] == "geschrieben" &&
                        !$_GET['massenschalter'] ) ? "":
                    "geschrieben";
                    $class = "status_yellow";
                    break;
                case "B":
                    $this_status[$id] = ( $old_status[$id] == "bezahlt" && !
                        $_GET['massenschalter'] ) ? "":
                    "bezahlt";
                    $class = "status_green";
                    break;
                default:
                    $this_status[$id] = "";
                    $class = "status_off";
                    break;
            }
        }
        if ( $this_status[$id] == "" )
        {
            $class = "status_off";
        }
        $sql = "
            UPDATE 
                artikel_to_Bestellung 
            SET
                rechnungStatus='" . $this_status[$id] . "'
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ") 
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
        {
            $GLOBALS["Log"]["best"]->log( "Rechnungsstatus für die Artikel " .
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
                " geändert", $elem );
        }
    }

    //Lieferscheinstatus
    if ( $_GET["l_status"] && count( $artikel ) )
    {
        $prefix = "l";
        $status = $_GET["l_status"];
        $sql = "
            SELECT 
                lieferscheinStatus,
                ID
            FROM 
                artikel_to_Bestellung 
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ")
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        while ( $db = mysql_fetch_assoc( $result ) )
        {
            $id = $db["ID"];
            $this_status_code[$id] = $status;
            $old_status[$id] = $db["lieferscheinStatus"];
            switch ( $old_status[$id] )
            {
                case "schreiben":
                    $old_status_code[$id] = "S";
                    break;
                case "geschrieben":
                    $old_status_code[$id] = "G";
                    break;
                case "offen":
                    $old_status_code[$id] = "O";
                    break;
                default:
                    $old_status_code[$id] = "";
                    break;
            }
            switch ( $status )
            {
                case "S":

                    $this_status[$id] = ( $old_status[$id] == "schreiben" &&
                        !$_GET['massenschalter'] ) ? "":
                    "schreiben";
                    $class = "status_yellow";
                    break;
                case "G":
                    $this_status[$id] = ( $old_status[$id] == "geschrieben" &&
                        !$_GET['massenschalter'] ) ? "":
                    "geschrieben";
                    $class = "status_green";
                    break;
                case "O":
                    $this_status[$id] = ( $old_status[$id] == "offen" && !$_GET['massenschalter'] ) ?
                        "":
                    "offen";
                    $class = "status_red";
                    break;
                default:
                    $this_status[$id] = "";
                    $class = "status_off";
                    break;
            }
        }
        if ( $this_status[$id] == "" )
        {
            $class = "status_off";
        }
        $sql = "
            UPDATE 
                artikel_to_Bestellung 
            SET
                lieferscheinStatus='" . $this_status[$id] . "'
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ") 
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
        {
            $GLOBALS["Log"]["best"]->log( "Lieferscheinstatus für die Artikel " .
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
                " geändert", $elem );
        }
    }

    // Mahnungstatus
    if ( $_GET["m_status"] && count( $artikel ) )
    {
        $prefix = "m";
        $status = $_GET["m_status"];
        $sql = "
            SELECT 
                mahnungStatus,
                ID
            FROM 
                artikel_to_Bestellung 
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ")
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        while ( $db = mysql_fetch_assoc( $result ) )
        {
            $id = $db["ID"];
            $this_status_code[$id] = $status;
            $old_status[$id] = $db["mahnungStatus"];
            switch ( $old_status[$id] )
            {
                case "mahnung1":
                    $old_status_code[$id] = "1";
                    break;
                case "mahnung2":
                    $old_status_code[$id] = "2";
                    break;
                case "mahnung3":
                    $old_status_code[$id] = "3";
                    break;
                default:
                    $old_status_code[$id] = "";
                    break;
            }
            switch ( $status )
            {
                case "1":
                    $this_status[$id] = ( $old_status[$id] == "mahnung1" &&
                        !$_GET['massenschalter'] ) ? "":
                    "mahnung1";
                    $class = "status_green";
                    break;
                case "2":
                    $this_status[$id] = ( $old_status[$id] == "mahnung2" &&
                        !$_GET['massenschalter'] ) ? "":
                    "mahnung2";
                    $class = "status_yellow";
                    break;
                case "3":
                    $this_status[$id] = ( $old_status[$id] == "mahnung3" &&
                        !$_GET['massenschalter'] ) ? "":
                    "mahnung3";
                    $class = "status_red";
                    break;
                default:
                    $this_status[$id] = "";
                    $class = "status_off";
                    break;
            }
        }
        if ( $this_status[$id] == "" )
        {
            $class = "status_off";
        }
        $sql = "
            UPDATE 
                artikel_to_Bestellung 
            SET
                mahnungStatus='" . $this_status[$id] . "'
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ") 
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
        {
            $GLOBALS["Log"]["best"]->log( "Mahnungsstatus für die Artikel " .
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
                " geändert", $elem );
        }
    }

    // Garantiestatus
    if ( $_GET["g_status"] && count( $artikel ) )
    {
        $prefix = "g";
        $status = $_GET["g_status"];
        $sql = "
            SELECT 
                garantieStatus,
                ID
            FROM 
                artikel_to_Bestellung 
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ")
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        while ( $db = mysql_fetch_assoc( $result ) )
        {
            $id = $db["ID"];
            $old_status[$id] = $db["garantieStatus"];
            switch ( $old_status[$id] )
            {
                case "eingereicht":
                    $old_status_code[$id] = "E";
                    break;
                case "abgeschlossen":
                    $old_status_code[$id] = "A";
                    break;
                default:
                    $old_status_code[$id] = "";
                    break;
            }
            switch ( $status )
            {
                case "E":

                    $this_status[$id] = ( $old_status[$id] == "eingereicht" &&
                        !$_GET['massenschalter'] ) ? "":
                    "eingereicht";
                    $class = "status_red";
                    break;
                case "A":
                    $this_status[$id] = ( $old_status[$id] ==
                        "abgeschlossen" && !$_GET['massenschalter'] ) ? "":
                    "abgeschlossen";
                    $class = "status_green";
                    break;
                default:
                    $this_status[$id] = "";
                    $class = "status_off";
                    break;
            }
        }
        if ( $this_status[$id] == "" )
        {
            $class = "status_off";
        }
        $sql = "
            UPDATE 
                artikel_to_Bestellung 
            SET
                garantieStatus='" . $this_status[$id] . "'
            WHERE 
                ID IN( " . implode( ",", $artikel ) . ") 
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
        {
            $GLOBALS["Log"]["best"]->log( "Garantiestatus für die Artikel " .
                implode( ", ", $artikel ) . " auf " . $this_status[$id] .
                " geändert", $elem );
        }
    }
    if ( $elem )
    {
        $sql = "
            SELECT 
                erstellt_von 
            FROM 
                Bestellung 
            WHERE 
                ID=$elem
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        $zeile = mysql_fetch_array( $result );
        if ( $zeile["erstellt_von"] == '' )
        {
            $upd_fields[] = "erstellt_von='" . $_SERVER["PHP_AUTH_USER"] .
                "'";
        }
        $upd_fields[] = "letzte_Aenderung_von='" . $_SERVER["PHP_AUTH_USER"] .
            "'";
        $sql = "
            UPDATE 
                Bestellung 
            SET
            " . implode( ",", $upd_fields ) . "
            WHERE 
                ID=$elem 
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
        {
            $GLOBALS["Log"]["best"]->log( "Statusinformationen für die Bestellung $elem geändert",
                $elem );
        }

        $sql = "
            SELECT
                erstellt_von,
                letzte_Aenderung_am,
                letzte_Aenderung_von
            FROM
                Bestellung
            WHERE
                ID = $elem
        ";
        $result = mysql_query_logged( $sql ) or die( mysql_errno() . ": " .
            mysql_error() );
        $row = mysql_fetch_assoc( $result );
        $zeit = strftime( "%H:%M:%S", strtotime( $row["letzte_Aenderung_am"] ) );
        $datum = strftime( "%d.%m.%Y", strtotime( $row["letzte_Aenderung_am"] ) );
        $ersteller = $row["erstellt_von"];
        bestellung_puffern( $elem );
    }
    // erstellt_von;letze_Aenderung_Datum letzte_Aenderung_zeit letze_Aenderung_von
    // ID_des_alten_Status;Klasse;ID_des_neuen_Status;Klasse
    echo "$ersteller;$datum um $zeit von " . $_SERVER["PHP_AUTH_USER"] . "|";
    foreach ( $artikel as $a_id => $a_nr )
    {
        //var_dump($old_status_code[$a_nr]);
        $rows[] = $prefix . "_" . $a_nr . "_" . $old_status_code[$a_nr] .
            ";status_off;" . $prefix . "_" . $a_nr . "_" . $this_status_code[$a_nr] .
            ";$class;" . $this_status[$a_nr];
    }
    echo implode( "|", $rows ); ?>