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 2009 Webagentur Niewerth
     * @license   propietary http://www.weban.de
     * @version   $Rev: 3931 $
     * @filesource
     * 
     */

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

    // SVN: $Id: bestellungen_simpel.php 3931 2011-09-16 08:17:57Z tiefland $

    error_reporting( E_ERROR | E_PARSE );

    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  "module/functions.common.php";

    $time = microtime( true );

    $b_anz = 0;

    $bestellarten = getBestellarten();
    $bestellarten_sel = select_tpl( "filter[bestellart_id]", $bestellarten,
        "id", "name", $filter["bestellart_id"] );

    if ( $_GET["filter"] )
    {
        $filter = $_GET["filter"];
    } elseif ( $_POST["filter"] )
    {
        $filter = $_POST["filter"];
    }

    $shops_neu = getShops();
    $shops_sel = select_tpl( "filter[shopID]", $shops_neu, "ID", "Name", $filter["shopID"] );

    switch ( $filter["status"] )
    {
        case "op": // offene Posten
            $status_filter = " ab.status IN ('offen')";
            break;
        case "ib": // in Bearbeitung
            $status_filter = " ab.status IN ('in Bearbeitung')";
            break;
        case "re": // reserviert
            $status_filter = " ab.status IN ('reserviert')";
            break;
        case "op_ib": // offene Posten & in Bearbeitung
            $status_filter = " ab.status IN ('offen','in Bearbeitung')";
            break;
        case "op_ib_re": // offene Posten & in Bearbeitung
            $status_filter =
                " ab.status IN ('offen', 'in Bearbeitung','reserviert')";
            break;
        case "er": // erledigt
            $status_filter = " ab.status IN ('erledigt')";
            break;
        case "ab": // erledigt
            $status_filter = " ab.status IN ('abgeschlossen')";
            break;
        default: // alle
            unset( $status_filter );
            break;
    }
    if ( $filter["bestellung_ID"] )
    {
        $sql_filter[] = " Bestellung=" . $filter["bestellung_ID"];
    }
    // <!-- M.Niewerth 22.04.2004-->
    $is_string = ( strlen( $filter["kundensuche"] ) > 1 && strlen( $filter["kundensuche"] ) <
        $max_string_lenght ) ? true : false;
    $fields = array( 0 => "Vorname", "Name1", "Name2", "Strasse", "PLZ",
        "ORT", "Telefon", "Fax", "E_Mail" );
    switch ( $is_string )
    {
        case false: // leere Zeichenkette
            unset( $kundensuche_filter );
            unset( $tabelle_login );
            break;
        case true:
            $kundensuche_filter = " ( ";
            foreach ( array_keys( $fields ) as $elem )
            {
                $kundensuche_filter .= " (l." . $fields[$elem] . "  like '%" .
                    $filter["kundensuche"] . "%') ";
                $kundensuche_filter .= ( $elem + 1 == count( $fields ) ) ?
                    "" : " or ";
            }
            $kundensuche_filter .= " ) ";
            $sql_filter[] = $kundensuche_filter;
            break;
        default: // standard
            unset( $kundensuche_filter );
            break;
    }

    if ( $filter["shopID"] )
    {
        $sql_filter[] = " b.shops_ID=" . $filter["shopID"];
    }

    $sql = "
        SELECT
            SQL_CALC_FOUND_ROWS 
            DISTINCT
            Bestellung
        FROM
            artikel_to_Bestellung AS ab
        JOIN
            Bestellung AS b
        ON
            b.ID=ab.Bestellung
        JOIN Logins AS l
            ON l.ID=b.Login
    ";
    if ( $status_filter )
    {
        $sql_filter[] = $status_filter;
    }
    if ( $filter["bestellung_ID"] )
    {
        $sql_filter[] = " Bestellung=" . $filter["bestellung_ID"];
    }
    if ( is_array( $sql_filter ) )
    {
        $sql .= "
            WHERE
        ";
        $sql .= implode( " AND ", $sql_filter );
    }
    $sql .= "
        ORDER BY
            Bestellung DESC
        LIMIT 100        
    ";
    echo $sql;
    $res = mysql_query( $sql );
    if ( $res )
    {
        $sql_a = "
            SELECT
                FOUND_ROWS() AS total
        ";
        $res_a = mysql_query( $sql_a );
        if ( $res_a )
        {
            $row_a = mysql_fetch_assoc( $res_a );
            $b_anz = $row_a["total"];
        }
    }
    while ( $row = mysql_fetch_assoc( $res ) )
    {
        $b_id = $row["Bestellung"];
        //var_dump($row);
        $sql_b = "
            SELECT
                b.ID,
                b.Login,
                b.shops_ID,
                b.bestellart_id,
                b.gesamtsumme_buffer,
                b.erstellt_am
            FROM
                Bestellung AS b
            WHERE
                ID=$b_id
        ";
        $res_b = mysql_query( $sql_b );
        $row_b = mysql_fetch_assoc( $res_b );
        $l_id = $row_b["Login"];
        $sql_l = "
            SELECT
                l.Anrede,
                l.Vorname,
                l.Name1,
                l.Name2,
                l.Strasse,
                l.Hausnummer,
                l.PLZ,
                l.ORT,
                l.Telefon,
                l.Land
            FROM
                Logins AS l
            WHERE
                ID=$l_id
        ";
        $res_l = mysql_query( $sql_l );
        $row_l = mysql_fetch_assoc( $res_l );
        $row_b = array_merge( $row_b, $row_l );
        //var_dump($shops);
        //exit;
        $s_info = getShopInfo( $row_b["shops_ID"] );
        $row_b["shop"] = $s_info["Name"];
        if ( $row_b["bestellart_id"] )
        {
            $ba_info = getBestellartInfo( $row_b["bestellart_id"] );
            $row_b["bestellart"] = $ba_info["name"];
        }
        $bestellungen[] = $row_b;
        //var_dump($row_b);
    }
    $time2 = microtime( true );
    $GLOBALS["ui"] = new Weban_Smarty();
    $GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] . "/templates_c/";
    $GLOBALS["ui"]->compile_id = "Warenwirtschaft|bestellungen";
    $GLOBALS["ui"]->use_sub_dirs = true;
    $GLOBALS["ui"]->assign( "pagination", pagination( $b_anz ) );
    $GLOBALS["ui"]->assign( "bestellungen", $bestellungen );
    $GLOBALS["ui"]->assign( "shops", $shops_sel );
    $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( "-21 months" ) ), strftime( "%B %G",
        strtotime( "-3 months" ) ), strftime( "%B %G", strtotime( "-4 months" ) ) );
    $rstati = array( "S" => "schreiben", "G" => "geschrieben", "B" =>
        "bezahlt", "" => "alle" );
    $GLOBALS["ui"]->assign( "stati", $stati );
    $GLOBALS["ui"]->assign( "anz", $b_anz );
    $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( "bestellung_ID", $filter["bestellung_ID"] );
    $GLOBALS["ui"]->assign( "artikelsuche", $filter["artikelsuche"] );

    $GLOBALS["ui"]->display( "bestellungen_simpel.tpl" );
    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 );
        echo "Start: $sdat<br>";
        echo "Ende: $edat<br>";
        echo "Dauer: " . number_format( $diff, 2, ',', '' ) .
            " Sekunden<br>";
    }

?>