Subversion-Projekte lars-tiefland.content-management

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
 
3
    //$Id: bestellungen_archivieren.php 3931 2011-09-16 08:17:57Z tiefland $
4
 
5
    /**
6
     * @author Lars Tiefland <tiefland@weban.de>
7
     * @copyright 2008 Webagentur Niewerth
8
     * @package Content-management
9
     * @subpackage Toolbox
10
     * @version $Rev: 3931 $
11
     * @license propietary
12
     * @filesource
13
     *
14
     */
15
 
16
    /**
17
     * löscht alte Bestellungen und speichert die Daten in einer Hilfstabelle, damit die Statistik weiterhin auf die Daten zurückgreifen kann
18
     * @author Lars Tiefland <tiefland@weban.de>
19
     * @copyright 2008 Webagentur Niewerth
20
     */
21
 
22
    require_once "common.php";
23
    function delete_orders( $ende )
24
    {
25
        global $web_rechte;
26
        $ret["error"] = false;
27
        if ( isset( $web_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) )
28
        {
29
            $sql_ba = "SELECT
30
                    *
31
                FROM
32
                    bestellart
33
            ";
34
            $res_ba = mysql_query( $sql_ba );
35
            if ( !$res_ba )
36
            {
37
                $ret["error"] = true;
38
                $ret["sql"] = $sql_ba;
39
                return $ret;
40
            }
41
            while ( $row_ba = mysql_fetch_assoc( $res_ba ) )
42
            {
43
                $bestellarten[] = $row_ba["id"];
44
            }
45
        }
46
        else
47
        {
48
            $bestellarten[] = 0;
49
        }
50
        foreach ( $bestellarten as $bestellart_id )
51
        {
52
            $daten = array();
53
            $sql = "SELECT DISTINCT
54
                    SUBSTRING(erstellt_am, 1,10) AS datum
55
                FROM
56
                    Bestellung
57
                WHERE
58
                    erstellt_am < '$ende'
59
            ";
60
            $sql .= ( $bestellart_id ) ? " AND bestellart_id=$bestellart_id" :
61
                "";
62
            $sql .= "
63
                ORDER BY
64
                    erstellt_am
65
            ";
66
            $res = mysql_query( $sql );
67
            if ( !$res )
68
            {
69
                $ret["error"] = true;
70
                $ret["sql"] = $sql;
71
                return $ret;
72
            }
73
            while ( $row = mysql_fetch_assoc( $res ) )
74
            {
75
                $datum = $row["datum"];
76
                $sql_anz = "
77
                    SELECT
78
                        COUNT(*) AS anz,
79
                        shops_ID
80
                    FROM
81
                        Bestellung
82
                    WHERE
83
                        erstellt_am LIKE '" . $datum . "%'
84
                ";
85
                $sql_anz .= ( $bestellart_id ) ? " AND bestellart_id=$bestellart_id" :
86
                    "";
87
                $sql_anz .= "
88
                    GROUP BY
89
                        shops_ID
90
                ";
91
                $res_anz = mysql_query( $sql_anz );
92
                if ( !$res_anz )
93
                {
94
                    $ret["error"] = true;
95
                    $ret["sql"] = $sql_anz;
96
                    return $ret;
97
                }
98
                while ( $row_anz = mysql_fetch_assoc( $res_anz ) )
99
                {
100
                    $shop = $row_anz["shops_ID"];
101
                    $anz = $row_anz["anz"];
102
                    $daten[$row["datum"]][$shop]["anzahl"] = $anz;
103
                    $sql_umsatz = "
104
                        SELECT
105
                            SUM(Menge*Preis_pro_Stueck) AS umsatz
106
                        FROM
107
                            artikel_to_Bestellung AS ab,
108
                            Bestellung AS b
109
                        WHERE
110
                            erstellt_am LIKE '" . $datum . "%'
111
                        AND
112
                            b.shops_ID=" . $shop . "
113
                        AND
114
                            ab.Bestellung=b.ID
115
                    ";
116
                    $sql_umsatz .= ( $bestellart_id ) ? " AND bestellart_id=$bestellart_id" :
117
                        "";
118
                    $res_umsatz = mysql_query( $sql_umsatz );
119
                    if ( !$res_umsatz )
120
                    {
121
                        $ret["error"] = true;
122
                        $ret["sql"] = $sql_umsatz;
123
                        return $ret;
124
                    }
125
                    while ( $row_umsatz = mysql_fetch_assoc( $res_umsatz ) )
126
                    {
127
                        $umsatz = $row_umsatz["umsatz"];
128
                        $daten[$datum][$shop]["umsatz"] = $umsatz;
129
                    }
130
                }
131
            }
132
            if ( is_array( $daten ) )
133
            {
134
                foreach ( $daten as $datum => $shop_werte )
135
                {
136
                    foreach ( $shop_werte as $shop_id => $werte )
137
                    {
138
                        $umsatz = $werte["umsatz"];
139
                        $anz = $werte["anzahl"];
140
                        $sql = "
141
                            INSERT INTO
142
                                bestellung_archiv
143
                            (
144
                                shops_id,
145
                                datum,
146
                                best_anzahl,
147
                                umsatz,
148
                                bestellart_id
149
                            )
150
                            VALUES
151
                            (
152
                                $shop_id  ,
153
                                '$datum',
154
                                $anz,
155
                                '$umsatz',
156
                                $bestellart_id
157
                            )
158
                        ";
159
                        $res = mysql_query( $sql );
160
                        if ( !$res )
161
                        {
162
                            $ret["error"] = true;
163
                            $ret["sql"] = $sql;
164
                            return $ret;
165
                        }
166
                    }
167
                    //alle Bestellungen von $datum löschen
168
                    $sql = "SELECT
169
                            ID
170
                        FROM
171
                            Bestellung
172
                        WHERE
173
                            erstellt_am LIKE '$datum%'
174
                    ";
175
                    $sql .= ( $bestellart_id ) ? " AND bestellart_id=$bestellart_id" :
176
                        "";
177
                    $res = mysql_query( $sql );
178
                    if ( !$res )
179
                    {
180
                        $ret["error"] = true;
181
                        $ret["sql"] = $sql;
182
                        return $ret;
183
                    }
184
                    while ( $row = mysql_fetch_assoc( $res ) )
185
                    {
186
                        $best[] = $row["ID"];
187
                    }
188
                    $bestellungen = implode( ",", $best );
189
                    $sql = "
190
                        DELETE FROM
191
                            artikel_to_Bestellung
192
                        WHERE
193
                            artikel_to_Bestellung.Bestellung IN ($bestellungen)
194
                    ";
195
                    $res = mysql_query( $sql );
196
                    if ( !$res )
197
                    {
198
                        $ret["error"] = true;
199
                        $ret["sql"] = $sql;
200
                        return $ret;
201
                    }
202
                    $sql = "
203
                        DELETE FROM
204
                            Bestellung
205
                        WHERE
206
                            erstellt_am LIKE '$datum%'
207
                    ";
208
                    $sql .= ( $bestellart_id ) ? " AND bestellart_id=$bestellart_id" :
209
                        "";
210
                    $res = mysql_query( $sql );
211
                    if ( !$res )
212
                    {
213
                        $ret["error"] = true;
214
                        $ret["sql"] = $sql;
215
                        return $ret;
216
                    }
217
                }
218
            }
219
        }
220
        return $ret;
221
    }
222
 
223
    $GLOBALS["ui"]->assign( "title", "Bestellungen archivieren" );
224
    if ( !$_POST["mode"] )
225
    {
226
        $GLOBALS["ui"]->assign( "file", "common/" . basename( $_SERVER["SCRIPT_NAME"],
227
            "php" ) . "tpl" );
228
    }
229
    else
230
    {
231
        $date = $_POST["Date_Year"] . "-" . $_POST["Date_Month"] . "-01";
232
        $ret = delete_orders( $date );
233
        $res = $ret["error"];
234
        $GLOBALS["ui"]->assign( "error", $res );
235
        if ( !$res )
236
        {
237
            $GLOBALS["ui"]->assign( "meld", "Bestellungen erfolgreich gelöscht!" );
238
        }
239
        else
240
        {
241
            $GLOBALS["ui"]->assign( "meld", "Leider ist ein Fehler aufgetreten!" );
242
            $GLOBALS["ui"]->assign( "db_meld", mysql_error() . "<br>" . $ret["sql"] );
243
        }
244
        $GLOBALS["ui"]->assign( "file", "common/meld.tpl" );
245
    }
246
    $GLOBALS["ui"]->display( "common/page.tpl" );
247
?>