Subversion-Projekte lars-tiefland.content-management

Revision

Revision 1 | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?php

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

    /**
     *
     * neue Version der Bestellungsübersicht
     *  
     * @package   Content-management
     * @author    Lars Tiefland <tiefland@weban.de>
     * @copyright 2009 Webagentur Niewerth
     */

    // SVN: $Id: bestellungen_neu.php 4159 2012-01-16 10:28:31Z tiefland $

    $time = microtime( true );

    //error_reporting( E_ERROR | E_PARSE );

    $max_string_lenght = 2000; // m.niewerth

    setlocale( LC_TIME, "de_DE" );

    define( "Range", 100 );
    define( "modul_name", "Warenwirtschaft" );
    define( "tool_name", "bestellung" );

    require_once "../Online-Shop/connect2.php";
    require_once "Weban_Smarty.class.php";
    require_once "includes/statistik/system.php";
    require_once "includes/bestellungen/pagination.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/getBestellungLieferscheinStatus.php";
    require_once "includes/bestellungen/system/getBestellungRechnungStatus.php";
    require_once "includes/bestellungen/system/artikelDatabase.php";
    require_once "includes/bestellungen/system/mysql_query_logged.php";
    require_once "includes/bestellungen/system/getVersandItems.php";
    require_once "module/functions.common.php";
    require_once "includes/bestellungen/pagination.php";
    require_once "includes/bestellungen/createOrderText.php"; // Ma

    $bestellarten = getBestellarten();

    if ( isset( $_POST["Bestellung"] ) )
    {
        $Bestellung = $_POST["Bestellung"];
    }
    elseif ( isset( $_GET["Bestellung"] ) )
    {
        $Bestellung = $_GET["Bestellung"];
    }
    else
    {
        $Bestellung = "";
    }


    $bestellart = false;
    if ( is_array( $bestellarten ) && $Bestellung )
    {
        $sql = "
            SHOW
                COLUMNS
            FROM
                shops
            LIKE
                'database'
        ";
        $res = mysql_query( $sql );
        if ( mysql_num_rows( $res ) )
        {
            $sql = "SELECT
                        `database`
                    FROM
                        shops s,
                        Bestellung b
                    WHERE
                        s.ID=b.shops_ID
                    AND
                        b.ID=$Bestellung
                ";
            $res = mysql_query( $sql );
            $row = mysql_fetch_assoc( $res );
            if ( $row["database"] )
            {
                $database = $row["database"] . ".";
            }
        }
        $settings_table = $database . "web_settings";
        $sql = "
            SHOW
                COLUMNS
            FROM
                $settings_table
            LIKE
                'bestellart_id'
        ";
        $res = mysql_query( $sql );
        if ( mysql_num_rows( $res ) )
        {
            $bestellart = true;
            define( "BESTELLART", true );
        }
        else
        {
            $bestellart = false;
            define( "BESTELLART", false );
        }
    }
    elseif ( $Bestellung )
    {
        $sql = "
            SHOW
                COLUMNS
            FROM
                shops
            LIKE
                'database'
        ";
        $database = "";
        $res = mysql_query( $sql );
        if ( mysql_num_rows( $res ) )
        {
            $sql = "SELECT
                        `database`
                    FROM
                        shops s,
                        Bestellung b
                    WHERE
                        s.ID=b.shops_ID
                    AND
                        b.ID=$Bestellung
                ";
            $res = mysql_query( $sql );
            $row = mysql_fetch_assoc( $res );
            if ( $row["database"] )
            {
                $database = $row["database"] . ".";
            }
        }
        $settings_table = $database . "web_settings";
        $bestellart = false;
        define( "BESTELLART", false );
    }

    if ( $web_rechte['Warenwirtschaft']['bestellung']['mahnungStatus'] )
    {
        $mahnung = 1;
    }

    // Smarty initialisieren
    $GLOBALS["ui"] = new Weban_Smarty();
    if ( array_key_exists( "login_id", $_GET ) && $_GET["login_id"] )
    {
        $GLOBALS["ui"]->template_dir[] = "../Warenwirtschaft/templates/";
    }
    $GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] . "/templates_c/";
    $GLOBALS["ui"]->compile_id = "Warenwirtschaft|bestellungen";
    //$GLOBALS["ui"]->use_sub_dirs = true;

    $web_settings = array();
    if ( isset( $_POST["anfordern"] ) && $_POST["operation"] == "SAS" && isset( $_POST["anfordern"] ) )
    {
        $shops_ID = $_POST["shops_ID"];
        $query = "
            SELECT 
                * 
            FROM 
                $settings_table 
            WHERE 
                shops_ID=$shops_ID 
            ORDER BY 
                Rang";
        $result = mysql_query( $query ) or die( mysql_errno() . ": " .
            mysql_error() . "<hr>$query<hr>" );
        while ( $zeile = mysql_fetch_array( $result ) )
        {
            $web_settings[$shops_ID][$zeile["ID"]] = $zeile["Inhalt"];
        }
        set_time_limit( 180 );
        $kk_typ = $web_settings[$shops_ID][119];
        $kk_info = unserialize( $_POST["kk_info"] );
        if ( $kk_typ == "saferpay" )
        {
            $url = $web_settings[$shops_ID][113] . "?" . $_POST["kk_info"] . "&" .
                $web_settings[$shops_ID][115] . "=" . $web_settings[$shops_ID][110];
            $c = file_get_contents( $url );
            if ( $_SERVER["REMOTE_ADDR"] == "89.245.130.99" )
            {
                echo "$url<br>$c";
            }
            if ( $c == "OK" )
            {
                $sql = "
                    UPDATE 
                        artikel_to_Bestellung 
                    SET 
                        rechnungStatus='bezahlt' 
                    WHERE 
                        Bestellung=" . $_POST["orderid"] . "
                ";
                $res = mysql_query( $sql );
                if ( !$res )
                {
                    mail( "tiefland@weban.de", "MySQL-Fehler bei KK-Zahlung",
                        mysql_error() . "\n$sql" );
                }
                $kk_info["status"] = "bezahlt";
                $zeit = date( "d.m.Y" ) . " um " . date( "H:i" ) . " Uhr";
                $bemerkung = "Zahlung am " . $zeit . " von $PHP_AUTH_USER angefordert\n";
                $sql = "
                    UPDATE 
                        Bestellung 
                    SET 
                        Bemerkung=concat(Bemerkung,'$bemerkung'), 
                        kk_info='" . serialize( $kk_info ) . "' 
                    WHERE 
                        ID=" . $_POST["orderid"] . "
                ";
                $res = mysql_query( $sql );
                if ( !$res )
                {
                    mail( "tiefland@weban.de", "MySQL-Fehler bei KK-Zahlung",
                        mysql_error() . "\n$sql" );
                }
                $url = "http://" . $_SERVER['SERVER_NAME'] .
                    "/Warenwirtschaft/bestellungen.php?Bestellung=" . $_POST["orderid"];
                $sql = "
                    DELETE FROM 
                        systemtermine 
                    WHERE 
                        deeplink='$url'
                ";
                $res = mysql_query( $sql );
                if ( !$res )
                {
                    mail( "tiefland@weban.de", "MySQL-Fehler bei KK-Zahlung",
                        mysql_error() . "\n$sql" );
                }
            }
            else
            {
                echo "Ein Fehler ist aufgetreten! Meldung des Systems: $c<br>";
            }
        }
        elseif ( $kk_typ == "acceptance" )
        {
            $url = $web_settings[$shops_ID][113] . "?" . $web_settings[$shops_ID][114] .
                "=" . $_POST["operation"] . "&" . $web_settings[$shops_ID][115] .
                "=" . $web_settings[$shops_ID][110] . "&" . $web_settings[$shops_ID][116] .
                "=" . $web_settings[$shops_ID][112] . "&" . $web_settings[$shops_ID][117] .
                "=" . $_POST["orderid"] . "&" . $web_settings[$shops_ID][118] .
                "=" . $web_settings[$shops_ID][111];
            require_once "Config.php";
            $cfg = new Config();
            $conf = $cfg->parseConfig( "$url", "xml" );
            if ( PEAR::isError( $conf ) )
            {
                echo "Fehler!<br>";
                echo $conf->getMessage();
            }
            else
            {
                $erg = $conf->toArray();
                //mail("tiefland@weban.de","Rueckgabewert von Paytool",$conf->toString("xml"));
                switch ( $erg["root"]["ncresponse"]["@"]["NCSTATUS"] )
                {
                    case 2:
                        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!";
                        break;
                    case 3:
                        echo
                            "Ein technischer Fehler ist aufgetreten! Meldung des Systems: " .
                            $erg["root"]["ncresponse"]["@"]["NCERROR"] . ": " .
                            $erg["root"]["ncresponse"]["@"]["NCERRORPLUS"];
                        break;
                    case 5:
                        echo "Ein Fehler ist aufgetreten! Meldung des Systems: " .
                            $erg["root"]["ncresponse"]["@"]["NCERROR"] . ": " .
                            $erg["root"]["ncresponse"]["@"]["NCERRORPLUS"];
                        break;
                    case 0:
                        $sql = "
                            UPDATE 
                                artikel_to_Bestellung 
                            SET 
                                rechnungStatus='bezahlt' 
                            WHERE 
                                Bestellung=" . $_POST["orderid"] . "
                        ";
                        $res = mysql_query( $sql );
                        if ( !$res )
                        {
                            mail( "tiefland@weban.de",
                                "MySQL-Fehler bei KK-Zahlung", mysql_error() . "\n$sql" );
                        }
                        $kk_info["code"] = "";
                        $kk_info["status"] = "bezahlt";
                        $bemerkung = "Zahlung am " . date( "d.m.Y" ) . " um " .
                            date( "H:i" ) . " Uhr von $PHP_AUTH_USER angefordert\n";
                        $sql = "
                            UPDATE 
                                Bestellung 
                            SET 
                                Bemerkung=concat(Bemerkung,'$bemerkung'),
                                kk_info='" . serialize( $kk_info ) . "' 
                            WHERE 
                                ID=" . $_POST["orderid"] . "
                        ";
                        $res = mysql_query( $sql );
                        if ( !$res )
                        {
                            mail( "tiefland@weban.de",
                                "MySQL-Fehler bei KK-Zahlung", mysql_error() . "\n$sql" );
                        }
                        $url = "http://" . $_SERVER['SERVER_NAME'] .
                            "/Warenwirtschaft/bestellungen.php?Bestellung=" . $_POST["orderid"];
                        $sql = "
                            DELETE FROM 
                                systemtermine 
                            WHERE 
                                deeplink='$url'
                        ";
                        $res = mysql_query( $sql );
                        if ( !$res )
                        {
                            mail( "tiefland@weban.de",
                                "MySQL-Fehler bei KK-Zahlung", mysql_error() . "\n$sql" );
                        }
                        break;
                }
            }
        }
        if ( isset( $return ) )
        {
            header( "Location: " . $return );
        }
    }
    else
    {
        unset( $_POST["shops_ID"] );
    }
    // Manuellen Artikel einstellen
    if ( isset( $_POST['submit_manueller_artikel'] ) )
    {
        // preis auf das richtige format kriegen "0.00"
        // ein eventuelles komma durch nen punkt ersetzen
        $_POST['preis'] = str_replace( ",", ".", $_POST['preis'] );
        // wenn kein punkt dabei, dann ".00" hinzuf?gen
        if ( substr_count( $_POST['preis'], "." ) == 0 )
        {
            $_POST['preis'] .= ".00";
        }
        // wenn punkt, aber nur eine zahl dahinter, noch ne 0 anf?gen
        if ( $bla = strrchr( $_POST['preis'], "." ) )
        {
            if ( strlen( $bla ) == 2 )
            {
                $_POST['preis'] .= "0";
            }
        }
        $query = "
            INSERT INTO 
                artikel_to_Bestellung
            (
                artikel, 
                Bestellung, 
                Menge, 
                Preis_pro_stueck, 
                status, 
                Bezeichnung
            )
            VALUES
            (
                '999999',
                '" . $_GET['Bestellung'] . "',
                '" . $_POST['anzahl'] . "',
                '" . $_POST['preis'] . "',
                '',
                '" . $_POST['kurzbezeichnung'] . "'
                        )
        ";
        $result = mysql_query_logged( $query ) or mail( "niewerth@weban.de",
            "Fehler in bestellung_liste_manu.php", mysql_errno() . ": " .
            mysql_error() . "<hr>$query<hr>", "from: content-management.de" );
        $rang = mysql_insert_id();
        if ( $rang )
        {
            mysql_query( "UPDATE artikel_to_Bestellung SET Rang=$rang WHERE ID=$rang" ) or
                mail( "niewerth@weban.de", "Fehler in bestellung_liste_manu.php",
                mysql_errno() . ": " . mysql_error() . "<hr>$query<hr>",
                "from: content-management.de" );
        }
    }

    if ( !isset( $dir ) )
    {
        $dir = "";
    }
    if ( $dir && isset( $web_rechte["Warenwirtschaft"]["bestellung"]["artikel_sortieren"] ) )
    {
        switch ( $dir )
        {
            case "up":
                // kleinsten Wert bestimmen
                $query = "
                    SELECT 
                        Rang 
                    FROM 
                        artikel_to_Bestellung 
                    ORDER BY 
                        Rang";
                $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                    mysql_error() );
                $zeile = mysql_fetch_array( $result );
                $primary = $zeile["Rang"];

                // aktuelle Position bestimmen
                $query = "
                    SELECT 
                        Rang 
                    FROM 
                        artikel_to_Bestellung 
                    WHERE 
                        ID = $id
                ";
                $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                    mysql_error() . "<hr>" . $query );
                $zeile = mysql_fetch_array( $result );

                // Zielposition bestimmen
                $query = "
                    SELECT 
                        ID, 
                        Rang 
                    FROM 
                        artikel_to_Bestellung 
                    WHERE 
                        Rang < $zeile[Rang] 
                    AND 
                        Bestellung=$Bestellung 
                    ORDER BY 
                        Rang DESC
                ";
                $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                    mysql_error() . "<hr>" . $query );
                $zeile_rang = mysql_fetch_array( $result );
                $target = $zeile_rang["Rang"];
                $target_id = $zeile_rang["ID"];

                if ( $zeile["Rang"] > $primary )
                {
                    $query = "
                        UPDATE artikel_to_Bestellung SET 
                            Rang=$zeile[Rang] 
                        WHERE 
                            Rang = $target 
                        AND 
                            ID=$target_id
                    ";
                    $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                        mysql_error() );
                    $query = "
                        UPDATE 
                            artikel_to_Bestellung 
                        SET 
                            Rang=$target 
                        WHERE 
                            ID = $id
                    ";
                    $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                        mysql_error() );
                }
                break;
            case "down":
                // gr??ten Wert bestimmen
                $query = "
                    SELECT 
                        Rang 
                    FROM 
                        artikel_to_Bestellung 
                    ORDER BY 
                        Rang DESC
                ";
                $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                    mysql_error() );
                $zeile = mysql_fetch_array( $result );
                $final = $zeile["Rang"];

                // aktuelle Position bestimmen
                $query = "
                    SELECT 
                        Rang 
                    FROM 
                        artikel_to_Bestellung 
                    WHERE 
                        ID = $id
                ";
                $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                    mysql_error() . "<hr>" . $query );
                $zeile = mysql_fetch_array( $result );

                // Zielposition bestimmen
                $query = "
                    SELECT 
                        ID, 
                        Rang 
                    FROM 
                        artikel_to_Bestellung 
                    WHERE 
                        Rang > $zeile[Rang] 
                    AND 
                        Bestellung=$Bestellung 
                    ORDER BY 
                        Rang
                ";
                $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                    mysql_error() . "<hr>" . $query );
                $zeile_rang = mysql_fetch_array( $result );
                $target = $zeile_rang["Rang"];
                $target_id = $zeile_rang["ID"];

                if ( $zeile["Rang"] < $final )
                {
                    $query = "
                        UPDATE 
                            artikel_to_Bestellung 
                        SET 
                            Rang=$zeile[Rang] 
                        WHERE 
                            Rang = $target 
                        AND 
                            ID=$target_id
                    ";
                    $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                        mysql_error() );
                    $query = "
                        UPDATE 
                            artikel_to_Bestellung 
                        SET 
                            Rang=$target 
                        WHERE 
                            ID = $id
                    ";
                    $result = mysql_query( $query ) or die( mysql_errno() . ": " .
                        mysql_error() );
                }
                break;
            default:
                break;
        }
    }
    if ( isset( $_POST["enterVersand"] ) && $_POST["enterVersand"] )
    {
        $vI = unserialize( base64_decode( $_POST[versandItem] ) );

        $query = "
                        INSERT INTO
                                artikel_to_Bestellung
                        (
                                ID,
                                artikel,
                                Bestellung,
                                Menge,
                                Preis_pro_Stueck,
                                status,
                                rechnungStatus,
                                Bezeichnung
                        )
                        VALUES
                        (
                                NULL,
                                '" . $vI["ID"] . "',
                                '" . $_POST[Bestellung] . "',
                                1,
                                '" . $vI["preis"] . "',
                                'versand',
                                '',
                                '" . $vI["kurz"] . "'
                        )
                ";
        $result = mysql_query_logged( $query ) or die( mysql_errno() . ": " .
            mysql_error() . "<hr>$query<hr>" );


        header( "Location: " . $_SERVER["SCRIPT_NAME"] . "?Bestellung=" . $_POST["Bestellung"] );
        exit;
    }

    if ( isset( $_POST["button"] ) && $_POST["button"] ==
        "Bestellpositionen verschieben" )
    {
        $query_s = "SELECT * FROM Bestellung WHERE ID=$b_id";
        $res_s = mysql_query( $query_s );
        $row = mysql_fetch_assoc( $res_s );
        $bemerkung = $row["Bemerkung"];
        $bemerkung .= "\r\nArtikel von " . $_SERVER["PHP_AUTH_USER"] . " am " .
            date( "d.m.Y" ) . " um " . date( "G:i" ) . " Uhr in Bestellung $b_id_neu verschoben.\r\n";
        $query_s = "
            SELECT 
                * 
            FROM 
                artikel_to_Bestellung 
            WHERE 
                bestellung=$b_id
        ";
        $res_s = mysql_query( $query_s );
        while ( $row = mysql_fetch_assoc( $res_s ) )
        {
            $artikel = $row["artikel"];
            $sql = "
                SELECT 
                    * 
                FROM 
                    " . artikelDatabase() . "
                WHERE 
                    ID=$artikel
            ";
            $res = mysql_query( $sql );
            $father = 0;
            if ( mysql_num_rows( $res ) )
            {
                $row_a = mysql_fetch_assoc( $res );
                $father = $row_a["Father"];
            }
            if ( $father != -3 )
            {
                $query_u = "
                    UPDATE 
                        artikel_to_Bestellung 
                    SET 
                        Bestellung=$b_id_neu 
                    WHERE Bestellung=
                        $b_id 
                    AND 
                        ID=" . $row["ID"] . "
                ";
                $res_u = mysql_query( $query_u );
                //echo mysql_error() . "<br>$query_u";
            }
        }
        if ( $res_u )
        {
            $query_u = "
                UPDATE 
                    Bestellung 
                SET 
                    Bemerkung='$bemerkung' 
                WHERE 
                    id=$b_id
            ";
            $res_u = mysql_query( $query_u );
        }
        if ( $res_u )
        {
            $query_s = "
                SELECT 
                    * 
                FROM 
                    Bestellung 
                WHERE 
                    ID=$b_id
            ";
            $res_s = mysql_query( $query_s );
            $row = mysql_fetch_assoc( $res_s );
            $bemerkung = $row["Bemerkung"];
            $bemerkung .= "\r\nArtikel von " . $_SERVER["PHP_AUTH_USER"] .
                " am " . date( "d.m.Y" ) . " um " . date( "G:i" ) .
                " Uhr aus Bestellung $b_id &uuml;bernommen.\r\n";
            $query_u = "
                UPDATE 
                    Bestellung 
                SET 
                    Bemerkung='$bemerkung' 
                WHERE 
                    id=$b_id_neu
            ";
            $res_u = mysql_query( $query_u );
            if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
            {
                $log = "Artikel Bestellung $b_id_neu verschoben.";
                $GLOBALS["Log"]["best"]->log( $bemerkung, $b_id );
                $log = "Artikel aus Bestellung $b_id &uuml;bernommen.";
                $GLOBALS["Log"]["best"]->log( $bemerkung, $b_id_neu );
            }
            header( "Location: " . $_SERVER["SCRIPT_NAME"] . "?Bestellung=$b_id" );
        }
    }

    if ( ( isset( $_GET["update"] ) && $_GET["update"] ) || ( isset( $_POST["update"] ) &&
        $_POST["update"] ) )
    {
        if ( $_POST["update"] )
        {
            $update = $_POST["update"];
        }
        else
        {
            $update = $_GET["update"];
        }
        if ( $_POST["cmd"] )
        {
            foreach ( array_keys( $_POST["cmd"] ) as $table )
            {
                foreach ( array_keys( $_POST["cmd"][$table] ) as $primaryKeyValue )
                {
                    $changed_id = "artikel_" . $primaryKeyValue . "_changed";
                    if ( $_POST[$changed_id] == 1 )
                    {
                        foreach ( array_keys( $_POST["cmd"][$table][$primaryKeyValue] ) as
                            $tablefield )
                        {
                            $query = "
                                UPDATE 
                                    $table 
                                SET 
                                    $tablefield = '" . mysql_real_escape_string( html_entity_decode
                                ( $_POST["cmd"][$table][$primaryKeyValue][$tablefield] ) ) .
                                "' 
                                WHERE 
                                    ID = '" . $primaryKeyValue . "'
                            ";
                            $result = mysql_query_logged( $query ) or die( mysql_errno
                                () . ": " . mysql_error() . "<hr>$query<hr>" );
                        }
                    }
                }
            }
        }
        $upd_fields[] = "Bemerkung='" . mysql_real_escape_string( $_POST["Bemerkung"] ) .
            "'";

        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["shortline1"] ) )
        {
            $upd_fields[] = "shortline1 = '" . mysql_real_escape_string( $_POST["shortline1"] ) .
                "'";
        }
        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["shortline2"] ) )
        {
            $upd_fields[] = "shortline2 = '" . mysql_real_escape_string( $_POST["shortline2"] ) .
                "'";
        }
        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["status1"] ) )
        {
            $upd_fields[] = "status1 = '" . mysql_real_escape_string( $_POST["status1"] ) .
                "'";
        }
        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["Bemerkung_extern"] ) )
        {
            $upd_fields[] = "Bemerkung_extern='" . mysql_real_escape_string( $_POST["Bemerkung_extern"] ) .
                "'";
        }
        if ( isset( $user_rechte["Warenwirtschaft"]["bezahlstatus"]["bezahlstatus"] ) )
        {
            $upd_fields[] = "bezahlt='" . mysql_real_escape_string( $_POST["bezahlt"] ) .
                "'";
        }
        $query = "
            SELECT 
                erstellt_von 
            FROM 
                Bestellung 
            WHERE 
                ID=$Bestellung
        ";
        $result = mysql_query_logged( $query ) or die( mysql_errno() . ": " .
            mysql_error() );
        $zeile = mysql_fetch_array( $result );
        if ( $zeile["erstellt_von"] == '' )
        {
            $upd_fields[] = "erstellt_von='" . $_SERVER["PHP_AUTH_USER"] . "'";
        }
        if ( $_POST["s_changed"] == 1 )
        {
            $upd_fields[] = "shops_ID=" . $_POST["s_id"];
        }
        $query = "
            UPDATE 
                Bestellung 
            SET
                letzte_Aenderung_von='" . $_SERVER["PHP_AUTH_USER"] . "',
            " . implode( ",", $upd_fields ) . " 
            WHERE 
                ID=$Bestellung
        ";
        $result = mysql_query_logged( $query ) or die( mysql_errno() . ": " .
            mysql_error() );
        if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
        {
            $GLOBALS["Log"]["best"]->log( "Daten der Bestellung geändert", $Bestellung );
        }
        if ( $_POST["logistiker_id"] )
        {
            $sql_bl = "
                REPLACE INTO
                    bestellung_logistiker
                SET
                    bestellung=$Bestellung,
                    logistiker=" . $_POST["logistiker_id"] . "
            ";
            $res_bl = mysql_query( $sql_bl );
            if ( isset( $web_rechte["admin"]["toolbox"]["logbuch"] ) )
            {
                $GLOBALS["Log"]["best"]->log( "Logistiker der Bestellung geändert",
                    $Bestellung );
            }
        }
        $keys = array_keys( $update );
        switch ( $keys[0] )
        {
            case "current":
                $sql_filter[] = "Bestellung = " . $_POST["Bestellung"];
                $limit = "LIMIT 1";
                //header("Location: /Warenwirtschaft/bestellung_formular.php?Bestellung=".$_POST["Bestellung"]);
                break;
            case "prev":
                $sql_filter[] = "Bestellung < " . $_POST["Bestellung"];
                $limit = "LIMIT 1";
                break;
            case "next":
                $sql_filter[] = "Bestellung > " . $_POST["Bestellung"];
                $limit = "LIMIT 1";
                $order = "Bestellnummer";
                break;
            case "list":
            default:
                unset( $Bestellung, $_GET["Bestellung"], $_POST["Bestellung"] );
                break;
        }
    }

    if ( isset( $_GET["PDFexport"] ) && $_GET["PDFexport"] == "true" )
    {
        $filter_maske = false;
    }
    else
    {
        $filter_maske = true;
    }

    // Bestellung und Kundendaten löschen
    if ( !isset( $delete ) )
    {
        $delete = "";
    }
    // Bestellung und Kundendaten löschen
    if ( !isset( $delete2 ) )
    {
        $delete2 = "";
    }
    // Bestellung und Kundendaten löschen
    if ( !isset( $delete2_x ) )
    {
        $delete2_x = "";
    }
    if ( $delete )
    {
        require_once "delete_bestellung.php";
        delete_bestellung( $Bestellung, true, true );
        unset( $Bestellung, $_GET["Bestellung"], $_POST["Bestellung"] );
    }

    // nur Bestellung löschen
    if ( $delete2 || $delete2_x )
    {
        require_once "delete_bestellung.php";
        delete_bestellung( $Bestellung, false, true );
        unset( $Bestellung, $_GET["Bestellung"], $_POST["Bestellung"] );
    }

    // Filter verarbeiten und vorbelegen
    if ( isset( $_SESSION["filter"] ) && $_SESSION["filter"] )
    {
        $filter = $_SESSION["filter"];
    }
    if ( isset( $_GET["filter"] ) && $_GET["filter"] )
    {
        $filter = $_GET["filter"];
    }
    elseif ( isset( $_POST["filter"] ) && $_POST["filter"] )
    {
        $filter = $_POST["filter"];
    }
    if ( !isset( $filter["ausgabeart"] ) )
    {
        $filter["ausgabeart"] = 0;
    }
    if ( !isset( $filter["status"] ) )
    {
        $filter["status"] = "";
    }
    if ( !isset( $filter["zeit"] ) )
    {
        $filter["zeit"] = 0;
    }
    if ( !isset( $filter["kundensuche"] ) )
    {
        $filter["kundensuche"] = "";
    }
    if ( !isset( $filter["rechnungsstatus"] ) )
    {
        $filter["rechnungsstatus"] = "";
    }
    if ( !isset( $filter["shopID"] ) )
    {
        $filter["shopID"] = "";
    }
    if ( !isset( $filter["bestellart_id"] ) )
    {
        $filter["bestellart_id"] = "";
    }
    if ( !isset( $filter["artikelsuche"] ) )
    {
        $filter["artikelsuche"] = "";
    }
    if ( !isset( $filter["fremd_ID"] ) )
    {
        $filter["fremd_ID"] = "";
    }
    if ( !isset( $filter["bestellung_ID"] ) )
    {
        $filter["bestellung_ID"] = "";
    }
    if ( !isset( $_GET["login_id"] ) )
    {
        $_GET["login_id"] = "";
    }
    if ( !isset( $filter["order"] ) )
    {
        $filter["order"] = "";
    }
    if ( !isset( $filter["shortline1"] ) )
    {
        $filter["shortline1"] = "";
    }
    if ( !isset( $filter["status1"] ) )
    {
        $filter["status1"] = "";
    }
    if ( isset( $_GET["start"] ) && $_GET["start"] )
    {
        $filter["start"] = $_GET["start"];
    }

    if ( $filter["start"] )
    {
        SmartyPaginate::setCurrentItem( $filter["start"] );
    }
    else
    {
        $filter["start"] = SmartyPaginate::getCurrentItem();
    }

    /* Neue Ausgabefilte: 18.03.2008 Markus N. */
    if ( !$filter['ausgabe'] )
    {
        $filter['ausgabe'] = "bestellung";
    }

    $order = $filter["order"];
    // wenn ausgabeart: Schnelleditor/Bestellung

    if ( !isset( $desc ) )
    {
        $desc = false;
    }
    if ( $order && $order[0] == "_" )
    {
        $order = substr( $order, 1 );
        $desc = true;
    }
    if ( $filter["ausgabe"] == 0 || $filter["ausgabe"] == 2 )
    {
        switch ( $order )
        {
            case "Bestellnummer":
                $queryOrder = " ORDER BY b.ID";
                break;
            case "Bestelldatum":
                $queryOrder = " ORDER BY b.erstellt_am";
                break;
            case "Artikel":
                $queryOrder = " ORDER BY 1";
                break;
            case "Kunde":
                $queryOrder = " ORDER BY l.Name1";
                break;
            case "PLZ":
                $queryOrder = " ORDER BY l.PLZ";
                break;
            case "ORT":
                $queryOrder = " ORDER BY l.ORT";
                break;
            case "Land":
                $queryOrder = " ORDER BY l.Land";
                break;
            case "Language":
                $queryOrder = " ORDER BY b.Language";
                break;
            default:
                $queryOrder = " ORDER BY b.ID DESC";
                break;
        }
    }
    if ( $desc === true )
    {
        $queryOrder .= " DESC";
    }
    if ( is_null( $filter['bestellart_id'] ) )
    {
        if ( !isset( $web_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) )
        {
            $filter["bestellart_id"] = -1;
        }
        else
        {
            $filter['bestellart_id'] = 1;
        }
    }
    if ( isset( $web_rechte["Warenwirtschaft"]["bezahlstatus"]["bezahlstatus"] ) )
    {
        if ( !isset( $filter["bezahlstatus"] ) )
        {
            $filter["bezahlstatus"] = "";
        }
    }
    if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["versandstatus"] ) )
    {
        if ( !isset( $filter["versandstatus"] ) )
        {
            $filter["versandstatus"] = "";
        }
    }
    if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) )
    {
        if ( $filter['bestellart_id'] != "" )
        {
            $bestellart_filter = " and Bestellung.bestellart_id =" . $filter['bestellart_id'];
        }
        elseif ( $filter['bestellart_id'] == "" )
        {
            unset( $bestellart_filter );
            unset( $filter["bestellart"] );
        }
        else
        {
            $bestellart_filter = " and Bestellung.bestellart_id = 1";
            //unset($bestellart_filter);
        }
        //$GLOBALS["ui"]->assign( "art", $bestellarten[$filter["bestellart_id"] - 1]["name"] );
    }
    else
    {
        if ( $filter['bestellart_id'] )
        {
            unset( $filter["bestellart_id"] );
        }
        unset( $bestellart_filter );
    }

    $_SESSION["filter"] = $filter;

    /* Neue Ausgabefilte: 18.03.2008 Markus N.  ende */
    $ausgabearten = array(
        array( "id" => 0, "name" => "Bestellung" ),
        array( "id" => 1, "name" => "Artikel" ),
        array( "id" => 2, "name" => "Schnelleditor" ),
        array( "id" => 3, "name" => "Bestelldetail" ) );

    $ausgabearten_sel = select_tpl( "filter[ausgabeart]", $ausgabearten, "id",
        "name", $filter["ausgabeart"], true );
    $bestellarten_sel = "";
    if ( is_array( $bestellarten ) )
    {
        $bestellarten_sel = select_tpl( "filter[bestellart_id]", $bestellarten,
            "id", "name", $filter["bestellart_id"] );
    }
    $shops_neu = getShops();
    $shops_sel = select_tpl( "filter[shopID]", $shops_neu, "ID", "Name", $filter["shopID"] );

    $stati = array(
        "op_ib" => "offen und in B.",
        "op_ib_re" => "of.,in B.u.res.",
        "op" => "offene Posten",
        "ib" => "in Bearbeitung",
        "re" => "reserviert",
        "er" => "erledigt",
        "ab" => "abgeschlossen",
        "" => "alle" );
    $zeiten = array(
        "alle",
        "heute",
        "gestern",
        "lfd. Woche",
        "letzte Woche",
        strftime( "%B %G" ),
        strftime( "%B %G", strtotime( "-1 month" ) ),
        strftime( "%B %G", strtotime( "-2 months" ) ),
        strftime( "%B %G", strtotime( "-3 months" ) ),
        strftime( "%B %G", strtotime( "-4 months" ) ) );
    $rstati = array(
        "S" => "schreiben",
        "G" => "geschrieben",
        "B" => "bezahlt",
        "O" => "ohne",
        "" => "alle" );

    if ( !$Bestellung )
    {
        // Ausgabeart bestimmen
        switch ( $filter["ausgabeart"] )
        {
            case 0:
            default:
                require_once "bestellungen_liste.php";
                break;
            case 1:
                require_once "artikel_liste.php";
                break;
            case 2:
                require_once "schnelleditor_liste.php";
                break;
            case 3:
                require_once "bestelldetail_liste.php";
                break;
        }
    }
    else
    {
        // Detailseite anzeigen
        require_once "bestellung_formular.php";
    }

    // Variablen zu Template zuweisen
    $GLOBALS["ui"]->assign( "stati", $stati );
    $GLOBALS["ui"]->assign( "stati_sel", $filter["status"] );
    $GLOBALS["ui"]->assign( "rstati", $rstati );
    $GLOBALS["ui"]->assign( "rstati_sel", $filter["rechnungsstatus"] );
    $GLOBALS["ui"]->assign( "zeiten", $zeiten );
    $GLOBALS["ui"]->assign( "zeiten_sel", $filter["zeit"] );
    $GLOBALS["ui"]->assign( "ausgabearten", $ausgabearten_sel );
    $GLOBALS["ui"]->assign( "bestellarten", $bestellarten_sel );
    $GLOBALS["ui"]->assign( "bestellart", $bestellart );
    $GLOBALS["ui"]->assign( "bestellung_ID", $filter["bestellung_ID"] );
    $GLOBALS["ui"]->assign( "fremd_ID", $filter["fremd_ID"] );
    $GLOBALS["ui"]->assign( "artikelsuche", $filter["artikelsuche"] );
    $GLOBALS["ui"]->assign( "kundensuche", $filter["kundensuche"] );
    $GLOBALS["ui"]->assign( "start", $filter["start"] );
    $GLOBALS["ui"]->assign( "shortline1", $filter["shortline1"] );
    $GLOBALS["ui"]->assign( "webs", $webs );
    $GLOBALS["ui"]->assign( "status1", $filter["status1"] );
    $GLOBALS["ui"]->assign( "bezahlstatus", $filter["bezahlstatus"] );
    $GLOBALS["ui"]->assign( "versandstatus", $filter["versandstatus"] );
    $GLOBALS["ui"]->assign( "user_rechte", $user_rechte );
    $GLOBALS["ui"]->assign( "web_rechte", $web_rechte );
    $GLOBALS["ui"]->assign( "web_settings", $web_settings );
    $GLOBALS["ui"]->assign( "shops", $shops_sel );
    $GLOBALS["ui"]->assign( "filter_maske", $filter_maske );

    if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["shortline1"] ) )
    {
        if ( $web_rechte["Warenwirtschaft"]["bestellung"]["shortline1"] )
        {
            list( $shortline1_name, $shortline1_size ) = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["shortline1"] );
        }
        else
        {
            $shortline1_name = "Shortline1:";
            $shortline1_size = 10;
        }

        $GLOBALS["ui"]->assign( "shortline1_size", $shortline1_size );
        $GLOBALS["ui"]->assign( "shortline1_name", $shortline1_name );
    }
    if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["status1"] ) )
    {
        if ( $web_rechte["Warenwirtschaft"]["bestellung"]["status1"] )
        {
            list( $status1_name, $status1_option_str ) = explode( ";", $web_rechte["Warenwirtschaft"]["bestellung"]["status1"],
                2 );
            $status1_options_arr = explode( ";", $status1_option_str );
            $status1_options = array( "" );
            $status1_options_filter = array( "alle" );
            foreach ( $status1_options_arr as $option )
            {
                $status1_options[$option] = $option;
                $status1_options_filter[$option] = $option;
            }
            //$status1_options = array_merge( $status1_options );
        }
        $GLOBALS["ui"]->assign( "status1_name", $status1_name );
        $GLOBALS["ui"]->assign( "status1_options", $status1_options );
        $GLOBALS["ui"]->assign( "status1_options_filter", $status1_options_filter );
    }
    // Versandstatus
    if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["versandstatus"] ) )
    {
        $versandstatus_options_filter = array(
            "alle",
            "offen",
            "freigegeben",
            "versand",
            "ohne",
            "offen+ohne" );
        $GLOBALS["ui"]->assign( "versandstatus_options_filter", $versandstatus_options_filter );
    }


    // Bezahlstatus SELECT BOX
    if ( isset( $user_rechte["Warenwirtschaft"]["bezahlstatus"]["bezahlstatus"] ) )
    {
        $bezahlstatus_options_filter[] = "alle";
        $bezahlstatus_options_filter[] = "offen";
        $bezahlstatus_options_filter[] = "bezahlt";

        $GLOBALS["ui"]->assign( "bezahlstatus_name", $bezahlstatus_name );
        $GLOBALS["ui"]->assign( "bezahlstatus_options", $bezahlstatus_options );
        $GLOBALS["ui"]->assign( "bezahlstatus_options_filter", $bezahlstatus_options_filter );
    }

    // Zeit messen
    if ( defined( "DEBUG" ) )
    {
        $diff = round( $time2 - $time, 2 );
        $sdat = date( "d.m.Y H:i:s", $time );
        $edat = date( "d.m.Y H:i:s", $time2 );
        $GLOBALS["ui"]->assign( "sdat", $sdat );
        $GLOBALS["ui"]->assign( "edat", $edat );
        $GLOBALS["ui"]->assign( "diff", number_format( $diff, 2, ',', '' ) );
    }

    // Template ausgeben
    $GLOBALS["ui"]->assign( "tpl_file", $tpl_file );
    $GLOBALS["ui"]->assign( "site", $site );
    if ( $_GET["login_id"] )
    {
        $bestellungen_liste = $GLOBALS["ui"]->fetch( "bestellungen.tpl" );
    }
    else
    {
        $GLOBALS["ui"]->display( "bestellungen.tpl" );
    }
?>