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
<?
2
    // Dateiname:					$URL: http://server3/svn/content-management/trunk/Warenwirtschaft/includes/statistik/system.php $
2 lars 3
    // Revision:					$Rev: 4249 $
1 lars 4
    // letzter Bearbeiter:			$Author: tiefland $
2 lars 5
    // letztes Bearbeitungsdatum:	$Date: 2012-03-23 16:42:14 +0100 (Fr, 23. Mrz 2012) $
1 lars 6
 
7
    function select_tpl( $formTagName, $options, $optionValueKey, $optionLabelKey,
8
        $preSelectValue = false, $required = false, $onChange = null )
9
    {
10
        if ( $required == false )
11
        {
12
            array_unshift( $options, array( $optionValueKey => false, $optionLabelKey =>
13
                "----------- alle -----------" ) );
14
        }
15
 
16
        $ret = "<select name=\"" . $formTagName . "\" onChange=\"$onChange\">";
17
        foreach ( $options as $option )
18
        {
19
            $ret .= "<option value=\"" . $option[$optionValueKey] . "\"";
20
            if ( $option[$optionValueKey] == $preSelectValue )
21
            {
22
                $ret .= " selected";
23
            }
24
            $ret .= ">" . $option[$optionLabelKey] . "</option>";
25
        }
26
        $ret .= "</select>";
27
        return $ret;
28
    }
29
 
30
    function select( $formTagName, $options, $optionValueKey, $optionLabelKey,
31
        $preSelectValue = false, $required = false, $onChange = null )
32
    {
33
        echo select_tpl( $formTagName, $options, $optionValueKey, $optionLabelKey,
34
            $preSelectValue, $required, $onChange );
35
    }
36
 
37
    function getShops( $shop_id = null, $filter = false, $start = 0, $ende =
38
        0, $start_v = 0, $ende_v = 0 )
39
    {
40
        $buffer = array();
41
        $query = "
42
            SELECT
43
                *
44
            FROM
45
                shops
46
        ";
47
        $query .= ( !empty( $shop_id ) ) ? " WHERE ID=$shop_id" : "";
48
        $result = mysql_query( $query ) or die( mysql_errno() . ": " .
49
            mysql_error() . "<hr>$query<hr>" );
50
        while ( $zeile = mysql_fetch_assoc( $result ) )
51
        {
52
            $buffer[] = $zeile;
53
        }
54
        if ( $filter )
55
        {
56
            //Shops filtern
57
            foreach ( $buffer as $id => $shop )
58
            {
59
                if ( get_umsatz( $start, $ende, $shop["ID"], 0 ) ||
60
                    get_umsatz( $start_v, $ende_v, $shop["ID"], 0 ) )
61
                {
62
                    $shops[] = $shop;
63
                }
64
            }
65
        }
66
        else
67
        {
68
            $shops = $buffer;
69
        }
70
        unset( $buffer );
71
        return $shops;
72
    }
73
 
74
    function getBestellarten()
75
    {
76
        global $user_rechte;
77
        $bestellarten = false;
78
        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["bestellart"] ) )
79
        {
80
            $sql = "SELECT * FROM bestellart";
81
            $query = mysql_query( $sql );
82
            if ( !$query )
83
            {
84
                return false;
85
            }
86
            while ( $db = mysql_fetch_assoc( $query ) )
87
            {
88
                $bestellarten[] = $db;
89
            }
90
        }
91
        return $bestellarten;
92
    }
2 lars 93
 
94
    function getZahlungsarten()
95
    {
96
        global $user_rechte;
97
        $zahlungsarten = false;
98
        if ( isset( $user_rechte["Warenwirtschaft"]["bestellung"]["zahlungsart"] ) )
99
        {
100
            $sql = "SELECT * FROM zahlungsarten";
101
            $query = mysql_query( $sql );
102
            if ( !$query )
103
            {
104
                return false;
105
            }
106
            while ( $r = mysql_fetch_assoc( $query ) )
107
            {
108
                $zahlungsarten[$r['id']] = $r['name'];
109
            }
110
        }
111
        return $zahlungsarten;
112
    }
113
 
1 lars 114
    function getDates()
115
    {
116
        $buffer[] = array( "datum" => strftime( "%G-%m" ), "datumText" =>
117
            strftime( "%B %G" ), );
118
        $buffer[] = array( "datum" => strftime( "%Y-%m", strtotime( "-1 month",
119
            time() ) ), "datumText" => strftime( "%B %Y", strtotime( "-1 month",
120
            time() ) ), );
121
        for ( $i = 2; $i <= 5; $i++ )
122
        {
123
            $buffer[] = array( "datum" => strftime( "%G-%m", strtotime( "-$i months" ) ),
124
                "datumText" => strftime( "%B %G", strtotime( "-$i months" ) ), );
125
        }
126
        if ( strftime( "%w" ) != 1 )
127
        {
128
            $start = strtotime( "last monday" );
129
        }
130
        else
131
        {
132
            $start = time();
133
        }
134
        $buffer[] = array( "datum" => strftime( "%G-%m-%dW", $start ),
135
            "datumText" => strftime( "Woche %V %G", $start ), );
136
        $buffer[] = array( "datum" => strftime( "%G-%m-%dW", strtotime( "-1 week",
137
            $start ) ), "datumText" => strftime( "Woche %V %G", strtotime( "-1 week",
138
            $start ) ), );
139
        for ( $i = 2; $i <= 5; $i++ )
140
        {
141
            $buffer[] = array( "datum" => strftime( "%G-%m-%dW", strtotime( "-$i weeks",
142
                $start ) ), "datumText" => strftime( "Woche %V %G",
143
                strtotime( "-$i weeks", $start ) ), );
144
        }
145
        return $buffer;
146
    }
147
 
148
    function getWeeks( $year = 2008, $maxReverse = 6 )
149
    {
150
        $paramYear = $year;
151
        $scalar = 0;
152
        $weekNow = date( "W", time() );
153
        $monthNow = date( "n", time() );
154
        $dateArray = array();
155
        $monthArray = array();
156
 
157
        $countedWeek = $weekNow;
158
        $countedMonth = $monthNow;
159
 
160
 
161
        for ( $i = $weekNow; $i > ( $weekNow - $maxReverse ); $i-- )
162
        {
163
            $dateArray[$scalar]['week'] = $countedWeek;
164
            $dateArray[$scalar]['year'] = $year;
165
            $dateArray[$scalar]['date_string'] = "kw," . $countedWeek . "," .
166
                $year;
167
            $dateArray[$scalar]['human_string'] = "$countedWeek/$year";
168
 
169
            if ( $countedWeek == 1 )
170
            {
171
                $year -= 1;
172
                $countedWeek = 1;
173
            }
174
            else
175
            {
176
                $countedWeek--;
177
            }
178
 
179
            $scalar++;
180
        }
181
 
182
        $year = $paramYear;
183
 
184
        for ( $i = $monthNow; $i > ( $monthNow - $maxReverse ); $i-- )
185
        {
186
            $dateArray[$scalar]['month'] = $countedMonth;
187
            $dateArray[$scalar]['year'] = $paramYear;
188
            $dateArray[$scalar]['date_string'] = "mon," . $countedMonth .
189
                "," . $year;
190
            $dateArray[$scalar]['human_string'] = date( "M", mktime( 0, 0, 0,
191
                $countedMonth, 1, $year ) ) . " $year";
192
 
193
            if ( $countedMonth == 1 )
194
            {
195
                $year -= 1;
196
                $countedMonth = 12;
197
            }
198
            else
199
            {
200
                $countedMonth--;
201
            }
202
 
203
            $scalar++;
204
        }
205
        return $dateArray;
206
 
207
    }
208
 
209
    /* ################################################################################ */
210
    /*  Select-Abfrage an die Datenbank senden.											*/
211
    /*  Methode um Select-Abfragen zentral an die Datenbank zu senden					*/
212
    /*  NUR Select-Abfragen !															*/
213
    /*  Nur sinnvoll in Verbindung mit while-Schleifen.									*/
214
    /*	Aufrufbeispiel: while($zeile=mysqlSelect("select ....")) {...}					*/
215
    /* ################################################################################ */
216
    function mysqlSelect( $query )
217
    {
218
        if ( !preg_match( "/^select/i", trim( $query ) ) )
219
            // Abbrechen falls query nicht mit "select beginnt"
220
 
221
        {
222
            return false;
223
        }
224
 
225
 
226
        static $status; // Statuswerte der jeweiligen queries speichern
227
        $hash = md5( $query );
228
        if ( !$status[$hash] )
229
        {
230
            $status[$hash] = array( "result" => "", "numRows" => 0,
231
                "endOfResult" => false );
232
        }
233
 
234
        $result = &$status[$hash]["result"];
235
        $numRows = &$status[$hash]["numRows"];
236
        $endOfResult = &$status[$hash]["endOfResult"];
237
 
238
        if ( ( $numRows == 0 ) && $endOfResult == false )
239
            // Beginn des Aufrufes: EoR = false $numRows=0
240
 
241
        {
242
            $result = mysql_query( $query ) or die( mysql_errno() . ": " .
243
                mysql_error() . "<hr>" . pre( $query, true ) . "<hr>" );
244
            $numRows = mysql_num_rows( $result );
245
            $endOfResult = false;
246
        }
247
 
248
        if ( $numRows > 0 ) // Mittendrinn: numRows > 0
249
 
250
        {
251
            if ( $numRows == 1 )
252
            {
253
                $endOfResult = true;
254
            } // letzter durchlauf mit Daten
255
            $numRows--; //
256
            return mysql_fetch_assoc( $result );
257
        }
258
 
259
        if ( ( $numRows == 0 ) && $endOfResult == true )
260
            // letzter durchlauf
261
 
262
        {
263
            $endOfResult = false; // Werte zurücksetzen
264
            return false; // Ende zurückliefern
265
        }
266
 
267
        return false;
268
    }
269
 
270
    /**
271
     *
272
     *	@param  string	Datum Filter
273
     *	@param	int		ID des Shops; Default: alle Shops
274
     *	@param	int		Debug-Modus; Default: 0
275
     *
276
     *	@return	int		Anzahl der Bestellungen
277
     */
278
    function get_anz_bestellungen( $start, $ende, $shop_id = null, $debug =
279
        0, $bestellart = 0 )
280
    {
281
        $b_ges = 0;
282
        $start = date( "Y-m-d", $start );
283
        $ende = date( "Y-m-d", $ende );
284
        $sql = "
285
			SELECT
286
				COUNT(*) AS anz
287
			FROM
288
				Bestellung b
289
			WHERE
290
				b.erstellt_am >='$start' AND b.erstellt_am <'$ende'
291
		";
292
        $sql .= ( !empty( $shop_id ) ) ? " AND b.shops_ID=$shop_id" : "";
293
        $sql .= ( !empty( $bestellart ) ) ? " AND b.bestellart_id=$bestellart" :
294
            "";
295
        $res = mysql_query( $sql );
296
        if ( $debug )
297
        {
298
            echo "$sql==>$b_ges<br>";
299
        }
300
        $row = mysql_fetch_assoc( $res );
301
        if ( $row["anz"] )
302
        {
303
            $b_ges = $row["anz"];
304
        }
305
        else
306
        {
307
            //Bestellungen aus Hilfstabelle lesen
308
            $sql_ba = "
309
			SELECT
310
				SUM(best_anzahl) AS anz
311
			FROM
312
				bestellung_archiv ba
313
			WHERE
314
				ba.datum >='$start' AND ba.datum <'$ende'
315
            ";
316
            $sql_ba .= ( !empty( $shop_id ) ) ? " AND ba.shops_id=$shop_id" :
317
                "";
318
            $sql_ba .= ( !empty( $bestellart ) ) ? " AND ba.bestellart_id=$bestellart" :
319
                "";
320
            $res_ba = mysql_query( $sql_ba );
321
            echo mysql_error();
322
            $row = mysql_fetch_assoc( $res_ba );
323
            if ( $row["anz"] )
324
            {
325
                $b_ges = $row["anz"];
326
            }
327
            if ( $debug )
328
            {
329
                echo "$sql_ba==>$b_ges<br>";
330
            }
331
        }
332
        return $b_ges;
333
    }
334
 
335
    /**
336
     *
337
     *	@param  string	Datum Filter
338
     *	@param	int		ID des Shops; Default: alle Shops
339
     *	@param	int		Debug-Modus; Default: 0
340
     *
341
     *	@return	int		Anzahl der Bestellungen
342
     */
343
    function get_pos_artikel( $start, $ende, $shop_id = null, $debug = 0, $bestellart =
344
 
345
    {
346
        $start = date( "Y-m-d", $start );
347
        $ende = date( "Y-m-d", $ende );
348
        $sql = "
349
			SELECT
350
				COUNT(*) AS anz
351
			FROM
352
				artikel_to_Bestellung a,
353
				Bestellung b
354
			WHERE
355
				b.ID=a.Bestellung
356
			AND
357
				b.erstellt_am >='$start' AND b.erstellt_am <'$ende'
358
		";
359
        $sql .= ( !empty( $shop_id ) ) ? " AND b.shops_ID=$shop_id" : "";
360
        $sql .= ( !empty( $bestellart ) ) ? " AND b.bestellart_id=$bestellart" :
361
            "";
362
        $res = mysql_query( $sql );
363
        $row = mysql_fetch_assoc( $res );
364
        $b_ges = $row["anz"];
365
        if ( $debug )
366
        {
367
            echo mysql_error() . "<br>";
368
            echo "$sql==>$b_ges<br>";
369
        }
370
        return $b_ges;
371
    }
372
 
373
    /**
374
     *
375
     *	@param  string	Datum Filter
376
     *	@param	int		ID des Shops; Default: alle Shops
377
     *	@param	int		Debug-Modus; Default: 0
378
     *
379
     *	@return	int		Anzahl der Bestellungen
380
     */
381
    function get_anz_artikel( $start, $ende, $shop_id = null, $debug = 0, $bestellart =
382
 
383
    {
384
        $start = date( "Y-m-d", $start );
385
        $ende = date( "Y-m-d", $ende );
386
        $sql = "
387
			SELECT
388
				SUM(Menge) AS anz
389
			FROM
390
				artikel_to_Bestellung a,
391
				Bestellung b
392
			WHERE
393
				b.ID=a.Bestellung
394
			AND
395
				b.erstellt_am >='$start' AND b.erstellt_am <'$ende'
396
		";
397
        $sql .= ( !empty( $shop_id ) ) ? " AND b.shops_ID=$shop_id" : "";
398
        $sql .= ( !empty( $bestellart ) ) ? " AND b.bestellart_id=$bestellart" :
399
            "";
400
        $res = mysql_query( $sql );
401
        $row = mysql_fetch_assoc( $res );
402
        $b_ges = $row["anz"];
403
        if ( $debug )
404
        {
405
            echo mysql_error() . "<br>";
406
            echo "$sql==>$b_ges<br>";
407
        }
408
        return $b_ges;
409
    }
410
 
411
    /**
412
     *
413
     *	@param  string	Datum Filter
414
     *	@param	int		ID des Shops; Default: alle Shops
415
     *	@param	int		Debug-Modus; Default: 0
416
     *
417
     *	@return	int		Umsatz
418
     */
419
    function get_umsatz( $start, $ende, $shop_id = null, $debug = 0, $bestellart =
420
 
421
    {
422
        $start = date( "Y-m-d", $start );
423
        $ende = date( "Y-m-d", $ende );
424
        $sql = "
425
			SELECT
426
				sum(Preis_pro_Stueck * Menge) as Umsatz
427
			FROM
428
				artikel_to_Bestellung a,
429
				Bestellung b
430
			WHERE
431
				b.ID=a.Bestellung
432
			AND
433
				b.erstellt_am >='$start' AND b.erstellt_am <'$ende'
434
		";
435
        $sql .= ( !empty( $shop_id ) ) ? " AND b.shops_ID=$shop_id" : "";
436
        $sql .= ( !empty( $bestellart ) ) ? " AND b.bestellart_id=$bestellart" :
437
            "";
438
        $res = mysql_query( $sql );
439
        $row = mysql_fetch_assoc( $res );
440
        $umsatz = $row["Umsatz"];
441
        if ( $debug )
442
        {
443
            echo "$sql==>$umsatz<br>";
444
        }
445
        if ( !$row["Umsatz"] )
446
        {
447
            //Umsatz aus Hilfstabelle lesen
448
            $sql_ba = "
449
			SELECT
450
				SUM(umsatz) as Umsatz
451
			FROM
452
				bestellung_archiv ba
453
			WHERE
454
				ba.datum >='$start' AND ba.datum <'$ende'
455
            ";
456
            $sql_ba .= ( !empty( $shop_id ) ) ? " AND ba.shops_id=$shop_id" :
457
                "";
458
            $sql .= ( !empty( $bestellart ) ) ? " AND ba.bestellart_id=$bestellart" :
459
                "";
460
            $res = mysql_query( $sql_ba );
461
            if ( $res )
462
            {
463
                if ( mysql_num_rows( $res ) )
464
                {
465
                    $row = mysql_fetch_assoc( $res );
466
                    $umsatz = $row["Umsatz"];
467
                }
468
            }
469
            if ( $debug )
470
            {
471
                echo "$sql_ba==>$umsatz<br>";
472
            }
473
        }
474
        return $umsatz;
475
    }
476
?>