Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
    /**
4
     * @package   Content-management
5
     * @author    Lars Tiefland <tiefland@weban.de>
6
     * @copyright 2009 Webagentur Niewerth
7
     * @license   propietary http://www.weban.de
8
     * @version   $Rev: 3931 $
9
     * @filesource
10
     *
11
     */
12
 
13
    /**
14
     *
15
     * neue Version der Bestellungsübersicht
16
     *
17
     * @package   Content-management
18
     * @author    Lars Tiefland <tiefland@weban.de>
19
     * @copyright 2009 Webagentur Niewerth
20
     */
21
 
22
    // SVN: $Id: bestellungen_simpel.php 3931 2011-09-16 08:17:57Z tiefland $
23
 
24
    error_reporting( E_ERROR | E_PARSE );
25
 
26
    setlocale( LC_TIME, "de_DE" );
27
    define( "Range", 100 );
28
    define( "modul_name", "Warenwirtschaft" );
29
    define( "tool_name", "bestellung" );
30
    require_once  "../Online-Shop/connect2.php";
31
    require_once  "Weban_Smarty.class.php";
32
    require_once  "includes/statistik/system.php";
33
    require_once  "includes/bestellungen/pagination.php";
34
    require_once  "module/functions.common.php";
35
 
36
    $time = microtime( true );
37
 
38
    $b_anz = 0;
39
 
40
    $bestellarten = getBestellarten();
41
    $bestellarten_sel = select_tpl( "filter[bestellart_id]", $bestellarten,
42
        "id", "name", $filter["bestellart_id"] );
43
 
44
    if ( $_GET["filter"] )
45
    {
46
        $filter = $_GET["filter"];
47
    } elseif ( $_POST["filter"] )
48
    {
49
        $filter = $_POST["filter"];
50
    }
51
 
52
    $shops_neu = getShops();
53
    $shops_sel = select_tpl( "filter[shopID]", $shops_neu, "ID", "Name", $filter["shopID"] );
54
 
55
    switch ( $filter["status"] )
56
    {
57
        case "op": // offene Posten
58
            $status_filter = " ab.status IN ('offen')";
59
            break;
60
        case "ib": // in Bearbeitung
61
            $status_filter = " ab.status IN ('in Bearbeitung')";
62
            break;
63
        case "re": // reserviert
64
            $status_filter = " ab.status IN ('reserviert')";
65
            break;
66
        case "op_ib": // offene Posten & in Bearbeitung
67
            $status_filter = " ab.status IN ('offen','in Bearbeitung')";
68
            break;
69
        case "op_ib_re": // offene Posten & in Bearbeitung
70
            $status_filter =
71
                " ab.status IN ('offen', 'in Bearbeitung','reserviert')";
72
            break;
73
        case "er": // erledigt
74
            $status_filter = " ab.status IN ('erledigt')";
75
            break;
76
        case "ab": // erledigt
77
            $status_filter = " ab.status IN ('abgeschlossen')";
78
            break;
79
        default: // alle
80
            unset( $status_filter );
81
            break;
82
    }
83
    if ( $filter["bestellung_ID"] )
84
    {
85
        $sql_filter[] = " Bestellung=" . $filter["bestellung_ID"];
86
    }
87
    // <!-- M.Niewerth 22.04.2004-->
88
    $is_string = ( strlen( $filter["kundensuche"] ) > 1 && strlen( $filter["kundensuche"] ) <
89
        $max_string_lenght ) ? true : false;
90
    $fields = array( 0 => "Vorname", "Name1", "Name2", "Strasse", "PLZ",
91
        "ORT", "Telefon", "Fax", "E_Mail" );
92
    switch ( $is_string )
93
    {
94
        case false: // leere Zeichenkette
95
            unset( $kundensuche_filter );
96
            unset( $tabelle_login );
97
            break;
98
        case true:
99
            $kundensuche_filter = " ( ";
100
            foreach ( array_keys( $fields ) as $elem )
101
            {
102
                $kundensuche_filter .= " (l." . $fields[$elem] . "  like '%" .
103
                    $filter["kundensuche"] . "%') ";
104
                $kundensuche_filter .= ( $elem + 1 == count( $fields ) ) ?
105
                    "" : " or ";
106
            }
107
            $kundensuche_filter .= " ) ";
108
            $sql_filter[] = $kundensuche_filter;
109
            break;
110
        default: // standard
111
            unset( $kundensuche_filter );
112
            break;
113
    }
114
 
115
    if ( $filter["shopID"] )
116
    {
117
        $sql_filter[] = " b.shops_ID=" . $filter["shopID"];
118
    }
119
 
120
    $sql = "
121
        SELECT
122
            SQL_CALC_FOUND_ROWS
123
            DISTINCT
124
            Bestellung
125
        FROM
126
            artikel_to_Bestellung AS ab
127
        JOIN
128
            Bestellung AS b
129
        ON
130
            b.ID=ab.Bestellung
131
        JOIN Logins AS l
132
            ON l.ID=b.Login
133
    ";
134
    if ( $status_filter )
135
    {
136
        $sql_filter[] = $status_filter;
137
    }
138
    if ( $filter["bestellung_ID"] )
139
    {
140
        $sql_filter[] = " Bestellung=" . $filter["bestellung_ID"];
141
    }
142
    if ( is_array( $sql_filter ) )
143
    {
144
        $sql .= "
145
            WHERE
146
        ";
147
        $sql .= implode( " AND ", $sql_filter );
148
    }
149
    $sql .= "
150
        ORDER BY
151
            Bestellung DESC
152
        LIMIT 100
153
    ";
154
    echo $sql;
155
    $res = mysql_query( $sql );
156
    if ( $res )
157
    {
158
        $sql_a = "
159
            SELECT
160
                FOUND_ROWS() AS total
161
        ";
162
        $res_a = mysql_query( $sql_a );
163
        if ( $res_a )
164
        {
165
            $row_a = mysql_fetch_assoc( $res_a );
166
            $b_anz = $row_a["total"];
167
        }
168
    }
169
    while ( $row = mysql_fetch_assoc( $res ) )
170
    {
171
        $b_id = $row["Bestellung"];
172
        //var_dump($row);
173
        $sql_b = "
174
            SELECT
175
                b.ID,
176
                b.Login,
177
                b.shops_ID,
178
                b.bestellart_id,
179
                b.gesamtsumme_buffer,
180
                b.erstellt_am
181
            FROM
182
                Bestellung AS b
183
            WHERE
184
                ID=$b_id
185
        ";
186
        $res_b = mysql_query( $sql_b );
187
        $row_b = mysql_fetch_assoc( $res_b );
188
        $l_id = $row_b["Login"];
189
        $sql_l = "
190
            SELECT
191
                l.Anrede,
192
                l.Vorname,
193
                l.Name1,
194
                l.Name2,
195
                l.Strasse,
196
                l.Hausnummer,
197
                l.PLZ,
198
                l.ORT,
199
                l.Telefon,
200
                l.Land
201
            FROM
202
                Logins AS l
203
            WHERE
204
                ID=$l_id
205
        ";
206
        $res_l = mysql_query( $sql_l );
207
        $row_l = mysql_fetch_assoc( $res_l );
208
        $row_b = array_merge( $row_b, $row_l );
209
        //var_dump($shops);
210
        //exit;
211
        $s_info = getShopInfo( $row_b["shops_ID"] );
212
        $row_b["shop"] = $s_info["Name"];
213
        if ( $row_b["bestellart_id"] )
214
        {
215
            $ba_info = getBestellartInfo( $row_b["bestellart_id"] );
216
            $row_b["bestellart"] = $ba_info["name"];
217
        }
218
        $bestellungen[] = $row_b;
219
        //var_dump($row_b);
220
    }
221
    $time2 = microtime( true );
222
    $GLOBALS["ui"] = new Weban_Smarty();
223
    $GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] . "/templates_c/";
224
    $GLOBALS["ui"]->compile_id = "Warenwirtschaft|bestellungen";
225
    $GLOBALS["ui"]->use_sub_dirs = true;
226
    $GLOBALS["ui"]->assign( "pagination", pagination( $b_anz ) );
227
    $GLOBALS["ui"]->assign( "bestellungen", $bestellungen );
228
    $GLOBALS["ui"]->assign( "shops", $shops_sel );
229
    $stati = array( "op_ib" => "offen und in B.", "op_ib_re" =>
230
        "of.,in B.u.res.", "op" => "offene Posten", "ib" => "in Bearbeitung",
231
        "re" => "reserviert", "er" => "erledigt", "ab" => "abgeschlossen",
232
        "" => "alle" );
233
    $zeiten = array( "alle", "heute", "gestern", "lfd. Woche",
234
        "letzte Woche", strftime( "%B %G" ), strftime( "%B %G", strtotime( "-1 month" ) ),
235
        strftime( "%B %G", strtotime( "-21 months" ) ), strftime( "%B %G",
236
        strtotime( "-3 months" ) ), strftime( "%B %G", strtotime( "-4 months" ) ) );
237
    $rstati = array( "S" => "schreiben", "G" => "geschrieben", "B" =>
238
        "bezahlt", "" => "alle" );
239
    $GLOBALS["ui"]->assign( "stati", $stati );
240
    $GLOBALS["ui"]->assign( "anz", $b_anz );
241
    $GLOBALS["ui"]->assign( "stati_sel", $filter["status"] );
242
    $GLOBALS["ui"]->assign( "rstati", $rstati );
243
    $GLOBALS["ui"]->assign( "rstati_sel", $filter["rechnungsstatus"] );
244
    $GLOBALS["ui"]->assign( "zeiten", $zeiten );
245
    $GLOBALS["ui"]->assign( "zeiten_sel", $filter["zeit"] );
246
    $GLOBALS["ui"]->assign( "ausgabearten", $ausgabearten_sel );
247
    $GLOBALS["ui"]->assign( "bestellarten", $bestellarten_sel );
248
    $GLOBALS["ui"]->assign( "bestellung_ID", $filter["bestellung_ID"] );
249
    $GLOBALS["ui"]->assign( "artikelsuche", $filter["artikelsuche"] );
250
 
251
    $GLOBALS["ui"]->display( "bestellungen_simpel.tpl" );
252
    if ( defined( "DEBUG" ) )
253
    {
254
        $diff = round( $time2 - $time, 2 );
255
        $sdat = date( "d.m.Y H:i:s", $time );
256
        $edat = date( "d.m.Y H:i:s", $time2 );
257
        echo "Start: $sdat<br>";
258
        echo "Ende: $edat<br>";
259
        echo "Dauer: " . number_format( $diff, 2, ',', '' ) .
260
            " Sekunden<br>";
261
    }
262
 
263
?>