Subversion-Projekte lars-tiefland.ci

Revision

Revision 1470 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?php

/**
 * User
 * 
 * @package   
 * @author WebanOS CI
 * @copyright Lars Tiefland
 * @version 2016
 * @access public
 */

//$Id: Order.php 2108 2017-11-10 23:35:07Z lars $

class Order extends CI_Controller
{

    public function __construct()
    {
        parent::__construct();
        $this->load->model('order_model', 'order');
        $this->load->model('bestellart_model', 'bestellart');
        $bestellarten = $this->bestellart->get_list();
        //Wenn der Filter zurücksetzen gedrück wird, dann wird $filter nicht gesetzt und die Session muss dann geleert werden damit die Filter die Standard auswahl haben
        if ($mode == "resetFilter") {
            unset($_SESSION["filter"]);
        }
        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 ($web_rechte["Warenwirtschaft"]["bestellung"]["neu"]) {
            $arr = explode(";", $web_rechte["Warenwirtschaft"]["bestellung"]["neu"]);
            foreach ($arr as $f) {
                list($fname, $fWert) = explode("=", $f);
                if (!isset($filter[$fname])) {
                    $filter[$fname] = $fWert;
                    $_SESSION["filter"][$fname] = $fWert;
                }
            }
        }
        if (!isset($filter["ausgabeart"])) {
            $filter["ausgabeart"] = 0;
        }
        if (!isset($filter["laender"])) {
            $filter["laender"] = 0;
        }
        if (!isset($filter["status"])) {
            $filter["status"] = "";
        }
        if (!isset($filter["bStatus"])) {
            $filter["bStatus"] = "of_fr_ve";
        }
        if (!isset($filter["logistiker"])) {
            $filter["logistiker"] = 0;
        }
        if (!isset($filter["zeit"])) {
            $filter["zeit"] = 0;
        }
        if (!isset($filter["kundensuche"])) {
            $filter["kundensuche"] = "";
        }
        if (!isset($filter["paketnummer"])) {
            $filter["paketnummer"] = "";
        }
        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"] = "";
        }
        /* Neue Ausgabefilte: 18.03.2008 Markus N. */
        if (!$filter['ausgabe']) {
            $filter['ausgabe'] = "bestellung";
        }
        if (isset($filter["order"]) && $order == "") {
            $order = $filter["order"];
        }
        // wenn ausgabeart: Schnelleditor/Bestellung

        if (!isset($desc)) {
            $desc = false;
        }

        if ($order && $order[0] == "_") {
            $order = substr($order, 1);
            $desc = true;
        }
        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"] = "";
            }
        }
        $this->session->filter = $filter;
        $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)) {
            $showAlle = (isset($user_rechte["Warenwirtschaft"]["bestellung"]["bestellart"]) &&
                isset($_SESSION["datenquellen"]["bestellarten"]) && count($_SESSION["datenquellen"]["bestellarten"]) <=
                1);
            $bestellarten_sel = select_tpl("filter[bestellart_id]", $bestellarten, "id",
                "name", $filter["bestellart_id"], $showAlle);
        }
        $shops_neu = getShops();
        $showAlle = (isset($_SESSION["datenquellen"]["shops"]) && count($_SESSION["datenquellen"]["shops"]) <=
            1);
        $shops_sel = select_tpl("filter[shopID]", $shops_neu, "ID", "Name", $filter["shopID"],
            $showAlle);

        $stati = array(
            "" => "alle",
            "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",
            );
        $zeiten = array(
            "alle",
            "heute",
            "gestern",
            "vorgestern",
            "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")),
            strftime("%B %G", strtotime("-5 months")),
            strftime("%B %G", strtotime("-6 months")),
            strftime("%B %G", strtotime("-7 months")),
            strftime("%Y", time()),
            strftime("%Y", strtotime("-1 year")));
        $rstati = array(
            "" => "alle",
            "S" => "schreiben",
            "G" => "geschrieben",
            "B" => "bezahlt",
            "O" => "ohne",
            );

        $laender_filter = getBestelllaender();

        if (isset($GLOBALS["web_rechte"]["Warenwirtschaft"]["logistiker"]["logistiker"])) {
            $logistiker_filter = getLogistikerFilter();
            $this->smarty->assign("logistiker_filter", $logistiker_filter);
            $this->smarty->assign("logistiker_filter_sel", $filter["logistiker"]);
        }

        $bStatusAll = array(
            "of_fr_ve" => "of., fr., ve.",
            "offen" => "offen",
            "freigegeben" => "freigegeben",
            "versand" => "versand",
            "wartend" => "wartend",
            "storniert" => "storniert",
            "alle" => "alle",
            );

        $bStatusDB = parseEnumSet("Bestellung", "status");

        foreach ($bStatusAll as $ind => $val) {
            if (in_array($val, $bStatusDB["werte"]) || $val == "alle" || $ind == "of_fr_ve") {
                $bStatus[$ind] = $val;
            }
        }
        // Variablen zu Template zuweisen
        $this->smarty->assign("stati", $stati);
        $this->smarty->assign("stati_sel", $filter["status"]);
        $this->smarty->assign("rstati", $rstati);
        $this->smarty->assign("rstati_sel", $filter["rechnungsstatus"]);
        $this->smarty->assign("zeiten", $zeiten);
        $this->smarty->assign("zeiten_sel", $filter["zeit"]);
        $this->smarty->assign("bStatus", $bStatus);
        $this->smarty->assign("bStatus_sel", $filter["bStatus"]);
        $this->smarty->assign("ausgabearten", $ausgabearten_sel);
        $this->smarty->assign("bestellarten", $bestellarten_sel);
        $this->smarty->assign("bestellung_ID", $filter["bestellung_ID"]);
        $this->smarty->assign("fremd_ID", $filter["fremd_ID"]);
        $this->smarty->assign("artikelsuche", $filter["artikelsuche"]);
        $this->smarty->assign("kundensuche", $filter["kundensuche"]);
        $this->smarty->assign("paketnummer", $filter["paketnummer"]);
        $this->smarty->assign("start", $filter["start"]);
        $this->smarty->assign("shortline1", $filter["shortline1"]);
        $this->smarty->assign("status1", $filter["status1"]);
        $this->smarty->assign("dokument", $filter["dokument"]);
        $this->smarty->assign("bezahlstatus", $filter["bezahlstatus"]);
        $this->smarty->assign("versandstatus", $filter["versandstatus"]);
        $this->smarty->assign("shops", $shops_sel);
        $this->smarty->assign("filter_maske", $filter_maske);
        $this->smarty->assign("laender_filter", $laender_filter);
        $this->smarty->assign("laender_filter_sel", $filter["laender"]);

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

            $this->smarty->assign("shortline1_size", $shortline1_size);
            $this->smarty->assign("shortline1_name", $shortline1_name);
        }
        if (isset($GLOBALS["user_rechte"]["Warenwirtschaft"]["bestellung"]["status1"])) {
            if ($GLOBALS["web_rechte"]["Warenwirtschaft"]["bestellung"]["status1"]) {
                list($status1_name, $status1_option_str) = explode(";", $GLOBALS["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 );
            }
            $this->smarty->assign("status1_name", $status1_name);
            $this->smarty->assign("status1_options", $status1_options);
            $this->smarty->assign("status1_options_filter", $status1_options_filter);
        }
        // Versandstatus
        if (isset($GLOBALS["user_rechte"]["Warenwirtschaft"]["bestellung"]["versandstatus"])) {
            $versandstatus_options_filter = array(
                "alle",
                "offen",
                "freigegeben",
                "versand",
                "ohne",
                "offen+ohne",
                );
            $this->smarty->assign("versandstatus_options_filter", $versandstatus_options_filter);
        }

        $start_date = date('Y-m-d', strtotime("-10 days"));
        $i = 0;
        $versanddatum_options_filter[''] = 'Alle';
        while ($i <= 30) {
            $i = $i + 1;
            $date = new DateTime($start_date);
            $date->modify('+' . $i . ' day');
            $versanddatum_options_filter[$date->format('Y-m-d')] = $date->format('d.m.Y');
        }
        $this->smarty->assign("versanddatum_options_filter", $versanddatum_options_filter);

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

            $this->smarty->assign("bezahlstatus_name", $bezahlstatus_name);
            $this->smarty->assign("bezahlstatus_options", $bezahlstatus_options);
            $this->smarty->assign("bezahlstatus_options_filter", $bezahlstatus_options_filter);
        }
    }
    /**
     * User::index()
     * 
     * @return
     */
    public function index()
    {
        $time = microtime(true);
        if (isset($_GET["anker"])) {
            $this->smarty->assign("anker", $_GET["anker"] + 1);
        }
        $start = 0;
        if ($this->input->get('start')) {
            $start = $this->input->get('start');
        } elseif ($this->input->post('start')) {
            $start = $this->input->post('start');
        }
        $ret = $this->order->get_list($start);
        $orders = $ret["orders"];
        $anz = $ret["orderAnz"];
        if ($anz == 1) {
            header("Location:/backend/order/edit/" . $orders[0]["id"]);
            exit;
        }
        $config['base_url'] = $this->config->item('base_url') . '/order/';
        $config['total_rows'] = $anz;
        $config['per_page'] = 100;
        $config['page_query_string'] = true;
        $config['query_string_segment'] = 'start';
        $config['num_links'] = 10;
        //$config['use_page_numbers'] = true;
        $config['cur_tag_open'] = '&nbsp;[&nbsp;<b>';
        $config['cur_tag_close'] = '</b>&nbsp;]';
        $config['num_tag_open'] = '&nbsp;[&nbsp;';
        $config['num_tag_close'] = '&nbsp;]';
        $config['first_tag_open'] = '&nbsp;[&nbsp;';
        $config['first_tag_close'] = '&nbsp;]';
        $config['last_tag_open'] = '&nbsp;[&nbsp;';
        $config['last_tag_close'] = '&nbsp;]';
        $config['next_tag_open'] = '&nbsp;[&nbsp;';
        $config['next_tag_close'] = '&nbsp;]';
        $config['prev_tag_open'] = '&nbsp;[&nbsp;';
        $config['prev_tag_close'] = '&nbsp;]';
        $config['last_link'] = 'Letzte &rsaquo;';
        $config['first_link'] = '&lsaquo; Erste';
        $this->pagination->initialize($config);
        $this->smarty->assign('title', 'Bestellübersicht');
        $this->smarty->assign('pagination', $this->pagination->create_links());
        $this->smarty->assign('anz', $anz);
        $this->smarty->assign('orders', $orders);
        $time2 = microtime(true);
        $diff = $time2 - $time;
        $sdat = date("d.m.Y H:i:s", $time);
        $edat = date("d.m.Y H:i:s", $time2);
        $this->smarty->assign("sdat", $sdat);
        $this->smarty->assign("edat", $edat);
        $this->smarty->assign("diff", number_format($diff, 2, ',', ''));
        $this->smarty->view('orders.tpl');
    }

    /**
     * User::edit()
     * 
     * @param mixed $id
     * @return void
     */
    public function edit($id = null)
    {
        $daten["artikel_stati"] = array(
            array(
                "name" => "offen",
                "short" => "O",
                "class" => "status_red"),
            array(
                "name" => "in Bearbeitung",
                "short" => "B",
                "class" => "status_yellow",
                ),
            array(
                "name" => "reserviert",
                "short" => "R",
                "class" => "status_blue",
                ),
            array(
                "name" => "erledigt",
                "short" => "E",
                "class" => "status_green",
                ),
            array(
                "name" => "abgeschlossen",
                "short" => "A",
                "class" => "status_white",
                ),
            );
        $daten["rechnung_stati"] = array(
            array(
                "name" => "schreiben",
                "short" => "S",
                "class" => "status_red"),
            array(
                "name" => "geschrieben",
                "short" => "G",
                "class" => "status_yellow",
                ),
            array(
                "name" => "bezahlt",
                "short" => "B",
                "class" => "status_green",
                ),
            );
        $daten["lieferschein_stati"] = array(
            array(
                "name" => "schreiben",
                "short" => "S",
                "class" => "status_yellow"),
            array(
                "name" => "geschrieben",
                "short" => "G",
                "class" => "status_green",
                ),
            array(
                "name" => "offen",
                "short" => "O",
                "class" => "status_red",
                ),
            );
        $daten["mahnung_stati"] = array(
            array(
                "name" => "mahnung1",
                "short" => "1",
                "class" => "status_green"),
            array(
                "name" => "mahnung2",
                "short" => "2",
                "class" => "status_yellow",
                ),
            array(
                "name" => "mahnung3",
                "short" => "3",
                "class" => "status_red",
                ),
            );
        $daten["garantie_stati"] = array(
            array(
                "name" => "eingereicht",
                "short" => "E",
                "class" => "status_red"),
            array(
                "name" => "abgeschlossen",
                "short" => "A",
                "class" => "status_green",
                ),
            );
        // Modul dokumente
        $preise_anzeigen = 1;
        if (isset($GLOBALS["user_rechte"]["Warenwirtschaft"]["bestellung"]["preise_anzeigen"])) {
            if (!isset($GLOBALS["user_rechte"]["Warenwirtschaft"]["bestellung"]["preise_anzeigen"])) {
                // "<br>für bestimmte user preis verbergen";
                $preise_anzeigen = 0;
            }
        }
        $order = $this->order->get($id);
        $this->smarty->assign('title', 'Bestellung bearbeiten');
        $this->smarty->assign('preise_anzeigen', $preise_anzeigen);
        $this->smarty->assign('order', $order);
        $this->smarty->assign('daten', $daten);
        $this->smarty->view('single_order.tpl');
    }

    public function save()
    {
        $this->order->save();
    }

    public function del($id = null)
    {
    }

}