Subversion-Projekte lars-tiefland.content-management

Revision

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

<?php

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

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

    // SVN: $Id: lieferantenbestellungen.php 4125 2011-12-06 12:10:49Z tiefland $

    require_once "../toolbox/common.php";
    require_once "../Warenwirtschaft/includes/bestellungen/system/artikelDatabase.php";
    require_once "../Warenwirtschaft/includes/statistik/system.php";
    require_once "module/weban/weban_utils.class.php";

    $mode = Weban_Utils::clean_global_input( "mode" );
    $order_id = Weban_Utils::clean_global_input( "order", "post", "int" );
    $item_id = Weban_Utils::clean_global_input( "item", "post", "int" );
    $lager_id = Weban_Utils::clean_global_input( "lager", "post", "int" );
    switch ( $mode )
    {
        case "del_prep";
            $sql = "SELECT
                    shops_id
                FROM
                    Bestellung
                WHERE
                    id=$order_id
            ";
            $res = mysql_query( $sql );
            $row = mysql_fetch_assoc( $res );
            $shop_id = $row["shops_id"];
            $shop_db = shopDatabase( $shop_id );
            $sql = "SELECT
                    a.kurzbezeichnung,
                    ab.bezeichnung
                FROM
                    artikel_to_Bestellung ab
                JOIN
                    " . $shop_db . "artikel a
                ON
                    a.ID=ab.artikel
                WHERE
                    ab.artikel=$item_id
                AND
                    ab.bestellung=$order_id
            ";
            $res = mysql_query( $sql );
            $artikel = mysql_fetch_assoc( $res );
            $sql = "SELECT
                    name
                FROM
                    " . $shop_db . "lieferanten_lager
                WHERE
                    id=$lager_id 
            ";
            $res = mysql_query( $sql );
            $lager = mysql_fetch_assoc( $res );
            $artikel["lager"] = $lager["name"];
            $GLOBALS["ui"]->assign( "order_id", $order_id );
            $GLOBALS["ui"]->assign( "lager_id", $lager_id );
            $GLOBALS["ui"]->assign( "item_id", $item_id );
            $GLOBALS["ui"]->assign( "artikel", $artikel );
            $GLOBALS["ui"]->display( "del_order_dialog.tpl" );
            break;
        case "delete":
            $sql = "SELECT
                    shops_id
                FROM
                    Bestellung
                WHERE
                    id=$order_id
            ";
            $res = mysql_query( $sql );
            $row = mysql_fetch_assoc( $res );
            $shop_id = $row["shops_id"];
            $shop_db = shopDatabase( $shop_id );
            $sql = "
                DELETE FROM
                    artikel_to_lieferantenbestellung
                WHERE
                    order_id=$order_id
                AND
                    artikel_id=$item_id   
                AND
                    lager_id=$lager_id
            ";
            $res = mysql_query( $sql );
            if ( $res )
            {
                echo "Datensatz erfolgreich gelöscht";
            }
            else
            {
                echo "Es ist ein Fehler aufgetreten\n" . mysql_error() . "\n" .
                    $sql;
            }
            break;
        default:
            $status = array( "--- alle ---", "offen", "bereits bestellt" );
            $zeiten = array( "--- alle ---" );
            $zeiten[] = "heute";
            $zeiten[] = "gestern";
            $zeiten[] = "lfd. Woche";
            $zeiten[] = "letzte Woche";
            $zeiten[] = strftime( "%B %Y" );
            for ( $i = 1; $i <= 4; $i++ )
            {
                $zeiten[] = strftime( "%B %Y", strtotime( "-$i month", strtotime
                    ( date( "Y-m-01" ) ) ) );
            }
            $shops = getShops();
            $filter_shops = array();
            $lieferanten["-1_-1"] = "--- alle ---";
            foreach ( $shops as $id => $shop )
            {
                $filter_shops[] = $shop["ID"];
                $shop_lieferanten = getShopLieferanten( $shop["ID"] );
                if ( is_array( $shop_lieferanten ) )
                {
                    //$lieferanten = array_merge( $lieferanten, $shop_lieferanten[$shop["Name"]] );
                    $lieferanten[$shop["Name"]] = $shop_lieferanten;
                }
            }
            if ( $_POST["filter"]["lieferant"] != "-1_-1" )
            {
                $_SESSION["lieferantenbestellungen"]["filter"]["lieferant"] = $_POST["filter"]["lieferant"];
            }
            else
            {
                $_SESSION["lieferantenbestellungen"]["filter"]["lieferant"] =
                    "-1_-1";
            }
            $zeit_sel = Weban_Utils::clean_input( $_POST["filter"]["zeit"],
                "int" );
            $status_sel = Weban_Utils::clean_input( $_POST["filter"]["status"],
                "int" );
            $_SESSION["lieferantenbestellungen"]["filter"]["zeit"] = $zeit_sel;
            $_SESSION["lieferantenbestellungen"]["filter"]["status"] = $status_sel;
            list( $shop_id, $lieferanten_id ) = explode( "_", $_SESSION["lieferantenbestellungen"]["filter"]["lieferant"] );
            if ( $shop_id != -1 )
            {
                $filter_shops = array( $shop_id );
            }
            if ( $lieferanten_id != -1 )
            {
                $sql_filter = "AND ll.lieferanten_id=$lieferanten_id";
            }
            switch ( $status_sel )
            {
                case 0:
                    $sql_filter .= "";
                    break;
                case 1:
                    $sql_filter .= " AND al.bestellzeit=0";
                    break;
                case 2:
                    $sql_filter .= " AND al.bestellzeit>0";
                    break;
            }
            switch ( $zeit_sel )
            {
                case 0: // alle
                    $time_filter = "";
                    break;
                case 1: // heute
                    $time_filter =
                        " AND current_date()=date_format(al.erstellt_am,\"%Y-%m-%d\") ";
                    break;
                case 2: // gestern
                    $time_filter =
                        " AND date_sub(current_date(), INTERVAL 1 DAY)=date_format(al.erstellt_am,\"%Y-%m-%d\") ";
                    break;
                case 3: // lfd. Woche
                    $time_filter = " AND date_format(al.erstellt_am,\"%U%Y\") = date_format(NOW(),\"%U%Y\")";
                    break;
                case 4: // letzte Woche
                    $time_filter = " AND date_format(al.erstellt_am,\"%U%Y\") = date_format(date_sub(NOW(), INTERVAL 7 DAY),\"%U%Y\")";
                    break;
                case 5: // lfd. Monat
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(NOW(),\"%m%Y\")";
                    break;
                case 6: // letzter Monat
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(date_sub(NOW(), INTERVAL 1 MONTH),\"%m%Y\")";
                    break;
                case 7: // letzter Monat
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(date_sub(NOW(), INTERVAL 2 MONTH),\"%m%Y\")";
                    break;
                case 8: // letzter Monat
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(date_sub(NOW(), INTERVAL 3 MONTH),\"%m%Y\")";
                    break;
                case 9: // letzter Monat
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(date_sub(NOW(), INTERVAL 4 MONTH),\"%m%Y\")";
                    break;
                default: // alle
                    $time_filter = "";
                    break;
            }
            $sql_filter .= $time_filter;
            foreach ( $filter_shops as $shop )
            {
                $db = shopDatabase( $shop );
                if ( !$db )
                {
                    continue;
                }
                $sql = "SELECT
                        al.id,
                        ll.lieferanten_id,
                        al.artikel_id,
                        al.order_id,
                        al.menge,
                        al.lager_id,
                        al.text,
                        al.bestellzeit,
                        a.kurzbezeichnung,
                        ab.bezeichnung,
                        ll.name as lager_name,
                        s.name AS shop_name,
                        al.erstellt_von,
                        al.erstellt_am
                    FROM
                        artikel_to_lieferantenbestellung al
                    JOIN
                        " . $db . "artikel a
                    ON
                        al.artikel_id=a.id
                    JOIN
                        artikel_to_Bestellung ab
                    ON
                        ab.bestellung=al.order_id
                    JOIN
                        " . $db . "lieferanten_lager ll
                    ON
                        ll.id=al.lager_id
                    JOIN
                        Bestellung b
                    ON
                        b.id=al.order_id
                    JOIN
                        shops s
                    ON
                        s.id=b.shops_id
                    WHERE
                        b.shops_id=$shop
                    AND
                        ab.artikel=al.artikel_id
                    $sql_filter
                ";
                $res = mysql_query( $sql );
                echo mysql_error();
                while ( $row = mysql_fetch_assoc( $res ) )
                {
                    if ( !$row["bestellzeit"] )
                    {
                        $row["bestellzeit_text"] = "offen";
                    }
                    $dok = getDocument( $row["id"] );
                    $row["document"]["file"] = $dok["document"];
                    $bestellungen[] = $row;
                }
            }
            $GLOBALS["ui"]->assign( "bestellungen", $bestellungen );
            $GLOBALS["ui"]->assign( "lieferanten", $lieferanten );
            $GLOBALS["ui"]->assign( "status", $status );
            $GLOBALS["ui"]->assign( "zeiten", $zeiten );
            $GLOBALS["ui"]->assign( "filter", $_SESSION["lieferantenbestellungen"]["filter"] );
            $GLOBALS["ui"]->assign( "file", "lieferantenbestellungen.tpl" );
            $GLOBALS["ui"]->display( "page.tpl" );
            break;
    }

    function getDocument( $bestell_id )
    {
        $sql = "SELECT
                *
            FROM
                dokumente
            WHERE
                table_foreign='artikel_to_lieferantenbestellung'
            AND
                data_foreign=" . $bestell_id . "
            ORDER BY
                letzte_aenderung_am DESC
        ";
        $res = mysql_query( $sql );
        $row = mysql_fetch_assoc( $res );
        return $row;
    }
    function getShopLieferanten( $shop_id )
    {
        $ret = array();
        $shop_db = shopDatabase( $shop_id );
        if ( !$shop_db )
        {
            return false;
        }
        $sql = "SELECT
                l.id,
                l.name,
                s.name as shop_name
            FROM
                " . $shop_db . "lieferanten l
            JOIN
                shops s
            ON
                s.id=$shop_id
            ORDER BY
                l.rang,
                l.name
        ";
        $res = mysql_query( $sql );
        if ( mysql_errno() )
        {
            echo mysql_error();
            return false;
        } elseif ( mysql_num_rows( $res ) )
        {
            $ret[$shop_id . "_-1"] = "--- alle ---";
            while ( $row = mysql_fetch_assoc( $res ) )
            {
                $ret[$shop_id . "_" . $row["id"]] = $row["shop_name"] . " - " .
                    $row["name"];
            }
            return $ret;
        }
        else
        {
            return false;
        }
    }
?>