Subversion-Projekte lars-tiefland.content-management

Revision

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

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
    /**
4
     * @package   Content-management
5
     * @author    Webagentur Niewerth <tiefland@weban.de>
6
     * @copyright 2011 Webagentur Niewerth
7
     * @license   propietary http://www.weban.de
2 lars 8
     * @version   $Rev: 4125 $
1 lars 9
     * @filesource
10
     *
11
     */
12
 
13
    /**
14
     *
15
     * @package   Content-management
16
     * @author    Webagentur Niewerth <tiefland@weban.de>
17
     * @copyright 2011 Webagentur Niewerth
18
     */
19
 
2 lars 20
    // SVN: $Id: lieferantenbestellungen.php 4125 2011-12-06 12:10:49Z tiefland $
1 lars 21
 
22
    require_once "../toolbox/common.php";
2 lars 23
    require_once "../Warenwirtschaft/includes/bestellungen/system/artikelDatabase.php";
1 lars 24
    require_once "../Warenwirtschaft/includes/statistik/system.php";
25
    require_once "module/weban/weban_utils.class.php";
26
 
27
    $mode = Weban_Utils::clean_global_input( "mode" );
28
    $order_id = Weban_Utils::clean_global_input( "order", "post", "int" );
29
    $item_id = Weban_Utils::clean_global_input( "item", "post", "int" );
30
    $lager_id = Weban_Utils::clean_global_input( "lager", "post", "int" );
31
    switch ( $mode )
32
    {
33
        case "del_prep";
34
            $sql = "SELECT
35
                    shops_id
36
                FROM
37
                    Bestellung
38
                WHERE
39
                    id=$order_id
40
            ";
41
            $res = mysql_query( $sql );
42
            $row = mysql_fetch_assoc( $res );
43
            $shop_id = $row["shops_id"];
44
            $shop_db = shopDatabase( $shop_id );
45
            $sql = "SELECT
46
                    a.kurzbezeichnung,
47
                    ab.bezeichnung
48
                FROM
49
                    artikel_to_Bestellung ab
50
                JOIN
51
                    " . $shop_db . "artikel a
52
                ON
53
                    a.ID=ab.artikel
54
                WHERE
55
                    ab.artikel=$item_id
56
                AND
57
                    ab.bestellung=$order_id
58
            ";
59
            $res = mysql_query( $sql );
60
            $artikel = mysql_fetch_assoc( $res );
61
            $sql = "SELECT
62
                    name
63
                FROM
64
                    " . $shop_db . "lieferanten_lager
65
                WHERE
66
                    id=$lager_id
67
            ";
68
            $res = mysql_query( $sql );
69
            $lager = mysql_fetch_assoc( $res );
70
            $artikel["lager"] = $lager["name"];
71
            $GLOBALS["ui"]->assign( "order_id", $order_id );
72
            $GLOBALS["ui"]->assign( "lager_id", $lager_id );
73
            $GLOBALS["ui"]->assign( "item_id", $item_id );
74
            $GLOBALS["ui"]->assign( "artikel", $artikel );
75
            $GLOBALS["ui"]->display( "del_order_dialog.tpl" );
76
            break;
77
        case "delete":
78
            $sql = "SELECT
79
                    shops_id
80
                FROM
81
                    Bestellung
82
                WHERE
83
                    id=$order_id
84
            ";
85
            $res = mysql_query( $sql );
86
            $row = mysql_fetch_assoc( $res );
87
            $shop_id = $row["shops_id"];
88
            $shop_db = shopDatabase( $shop_id );
89
            $sql = "
90
                DELETE FROM
2 lars 91
                    artikel_to_lieferantenbestellung
1 lars 92
                WHERE
93
                    order_id=$order_id
94
                AND
95
                    artikel_id=$item_id
96
                AND
2 lars 97
                    lager_id=$lager_id
1 lars 98
            ";
99
            $res = mysql_query( $sql );
100
            if ( $res )
101
            {
102
                echo "Datensatz erfolgreich gelöscht";
103
            }
104
            else
105
            {
106
                echo "Es ist ein Fehler aufgetreten\n" . mysql_error() . "\n" .
107
                    $sql;
108
            }
109
            break;
110
        default:
2 lars 111
            $status = array( "--- alle ---", "offen", "bereits bestellt" );
112
            $zeiten = array( "--- alle ---" );
113
            $zeiten[] = "heute";
114
            $zeiten[] = "gestern";
115
            $zeiten[] = "lfd. Woche";
116
            $zeiten[] = "letzte Woche";
117
            $zeiten[] = strftime( "%B %Y" );
118
            for ( $i = 1; $i <= 4; $i++ )
119
            {
120
                $zeiten[] = strftime( "%B %Y", strtotime( "-$i month", strtotime
121
                    ( date( "Y-m-01" ) ) ) );
122
            }
1 lars 123
            $shops = getShops();
124
            $filter_shops = array();
125
            $lieferanten["-1_-1"] = "--- alle ---";
126
            foreach ( $shops as $id => $shop )
127
            {
128
                $filter_shops[] = $shop["ID"];
129
                $shop_lieferanten = getShopLieferanten( $shop["ID"] );
130
                if ( is_array( $shop_lieferanten ) )
131
                {
132
                    //$lieferanten = array_merge( $lieferanten, $shop_lieferanten[$shop["Name"]] );
133
                    $lieferanten[$shop["Name"]] = $shop_lieferanten;
134
                }
135
            }
136
            if ( $_POST["filter"]["lieferant"] != "-1_-1" )
137
            {
2 lars 138
                $_SESSION["lieferantenbestellungen"]["filter"]["lieferant"] = $_POST["filter"]["lieferant"];
1 lars 139
            }
140
            else
141
            {
142
                $_SESSION["lieferantenbestellungen"]["filter"]["lieferant"] =
143
                    "-1_-1";
144
            }
2 lars 145
            $zeit_sel = Weban_Utils::clean_input( $_POST["filter"]["zeit"],
146
                "int" );
147
            $status_sel = Weban_Utils::clean_input( $_POST["filter"]["status"],
148
                "int" );
149
            $_SESSION["lieferantenbestellungen"]["filter"]["zeit"] = $zeit_sel;
150
            $_SESSION["lieferantenbestellungen"]["filter"]["status"] = $status_sel;
1 lars 151
            list( $shop_id, $lieferanten_id ) = explode( "_", $_SESSION["lieferantenbestellungen"]["filter"]["lieferant"] );
152
            if ( $shop_id != -1 )
153
            {
154
                $filter_shops = array( $shop_id );
155
            }
156
            if ( $lieferanten_id != -1 )
157
            {
158
                $sql_filter = "AND ll.lieferanten_id=$lieferanten_id";
159
            }
2 lars 160
            switch ( $status_sel )
161
            {
162
                case 0:
163
                    $sql_filter .= "";
164
                    break;
165
                case 1:
166
                    $sql_filter .= " AND al.bestellzeit=0";
167
                    break;
168
                case 2:
169
                    $sql_filter .= " AND al.bestellzeit>0";
170
                    break;
171
            }
172
            switch ( $zeit_sel )
173
            {
174
                case 0: // alle
175
                    $time_filter = "";
176
                    break;
177
                case 1: // heute
178
                    $time_filter =
179
                        " AND current_date()=date_format(al.erstellt_am,\"%Y-%m-%d\") ";
180
                    break;
181
                case 2: // gestern
182
                    $time_filter =
183
                        " AND date_sub(current_date(), INTERVAL 1 DAY)=date_format(al.erstellt_am,\"%Y-%m-%d\") ";
184
                    break;
185
                case 3: // lfd. Woche
186
                    $time_filter = " AND date_format(al.erstellt_am,\"%U%Y\") = date_format(NOW(),\"%U%Y\")";
187
                    break;
188
                case 4: // letzte Woche
189
                    $time_filter = " AND date_format(al.erstellt_am,\"%U%Y\") = date_format(date_sub(NOW(), INTERVAL 7 DAY),\"%U%Y\")";
190
                    break;
191
                case 5: // lfd. Monat
192
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(NOW(),\"%m%Y\")";
193
                    break;
194
                case 6: // letzter Monat
195
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(date_sub(NOW(), INTERVAL 1 MONTH),\"%m%Y\")";
196
                    break;
197
                case 7: // letzter Monat
198
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(date_sub(NOW(), INTERVAL 2 MONTH),\"%m%Y\")";
199
                    break;
200
                case 8: // letzter Monat
201
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(date_sub(NOW(), INTERVAL 3 MONTH),\"%m%Y\")";
202
                    break;
203
                case 9: // letzter Monat
204
                    $time_filter = " AND date_format(al.erstellt_am,\"%m%Y\") = date_format(date_sub(NOW(), INTERVAL 4 MONTH),\"%m%Y\")";
205
                    break;
206
                default: // alle
207
                    $time_filter = "";
208
                    break;
209
            }
210
            $sql_filter .= $time_filter;
1 lars 211
            foreach ( $filter_shops as $shop )
212
            {
213
                $db = shopDatabase( $shop );
214
                if ( !$db )
215
                {
216
                    continue;
217
                }
218
                $sql = "SELECT
219
                        al.id,
220
                        ll.lieferanten_id,
221
                        al.artikel_id,
222
                        al.order_id,
223
                        al.menge,
224
                        al.lager_id,
225
                        al.text,
226
                        al.bestellzeit,
227
                        a.kurzbezeichnung,
228
                        ab.bezeichnung,
2 lars 229
                        ll.name as lager_name,
230
                        s.name AS shop_name,
231
                        al.erstellt_von,
232
                        al.erstellt_am
1 lars 233
                    FROM
234
                        artikel_to_lieferantenbestellung al
235
                    JOIN
236
                        " . $db . "artikel a
237
                    ON
238
                        al.artikel_id=a.id
239
                    JOIN
240
                        artikel_to_Bestellung ab
241
                    ON
242
                        ab.bestellung=al.order_id
243
                    JOIN
244
                        " . $db . "lieferanten_lager ll
245
                    ON
246
                        ll.id=al.lager_id
247
                    JOIN
248
                        Bestellung b
249
                    ON
250
                        b.id=al.order_id
2 lars 251
                    JOIN
252
                        shops s
253
                    ON
254
                        s.id=b.shops_id
1 lars 255
                    WHERE
256
                        b.shops_id=$shop
257
                    AND
258
                        ab.artikel=al.artikel_id
2 lars 259
                    $sql_filter
1 lars 260
                ";
261
                $res = mysql_query( $sql );
2 lars 262
                echo mysql_error();
1 lars 263
                while ( $row = mysql_fetch_assoc( $res ) )
264
                {
265
                    if ( !$row["bestellzeit"] )
266
                    {
267
                        $row["bestellzeit_text"] = "offen";
268
                    }
269
                    $dok = getDocument( $row["id"] );
270
                    $row["document"]["file"] = $dok["document"];
271
                    $bestellungen[] = $row;
272
                }
273
            }
274
            $GLOBALS["ui"]->assign( "bestellungen", $bestellungen );
275
            $GLOBALS["ui"]->assign( "lieferanten", $lieferanten );
2 lars 276
            $GLOBALS["ui"]->assign( "status", $status );
277
            $GLOBALS["ui"]->assign( "zeiten", $zeiten );
1 lars 278
            $GLOBALS["ui"]->assign( "filter", $_SESSION["lieferantenbestellungen"]["filter"] );
279
            $GLOBALS["ui"]->assign( "file", "lieferantenbestellungen.tpl" );
280
            $GLOBALS["ui"]->display( "page.tpl" );
281
            break;
282
    }
283
 
284
    function getDocument( $bestell_id )
285
    {
286
        $sql = "SELECT
287
                *
288
            FROM
289
                dokumente
290
            WHERE
291
                table_foreign='artikel_to_lieferantenbestellung'
292
            AND
293
                data_foreign=" . $bestell_id . "
2 lars 294
            ORDER BY
295
                letzte_aenderung_am DESC
1 lars 296
        ";
297
        $res = mysql_query( $sql );
298
        $row = mysql_fetch_assoc( $res );
299
        return $row;
300
    }
301
    function getShopLieferanten( $shop_id )
302
    {
303
        $ret = array();
304
        $shop_db = shopDatabase( $shop_id );
305
        if ( !$shop_db )
306
        {
307
            return false;
308
        }
309
        $sql = "SELECT
310
                l.id,
311
                l.name,
312
                s.name as shop_name
313
            FROM
314
                " . $shop_db . "lieferanten l
315
            JOIN
316
                shops s
317
            ON
318
                s.id=$shop_id
319
            ORDER BY
320
                l.rang,
321
                l.name
322
        ";
323
        $res = mysql_query( $sql );
324
        if ( mysql_errno() )
325
        {
326
            echo mysql_error();
327
            return false;
328
        } elseif ( mysql_num_rows( $res ) )
329
        {
330
            $ret[$shop_id . "_-1"] = "--- alle ---";
331
            while ( $row = mysql_fetch_assoc( $res ) )
332
            {
2 lars 333
                $ret[$shop_id . "_" . $row["id"]] = $row["shop_name"] . " - " .
334
                    $row["name"];
1 lars 335
            }
336
            return $ret;
337
        }
338
        else
339
        {
340
            return false;
341
        }
342
    }
343
?>