| 1 |
lars |
1 |
<?
|
|
|
2 |
// Dateiname: $URL: http://server3/svn/content-management/trunk/Warenwirtschaft/statistik.php $
|
|
|
3 |
// Revision: $Rev: 3931 $
|
|
|
4 |
// letzter Bearbeiter: $Author: tiefland $
|
|
|
5 |
// letztes Bearbeitungsdatum: $Date: 2011-09-16 10:17:57 +0200 (Fr, 16 Sep 2011) $
|
|
|
6 |
|
|
|
7 |
setlocale( LC_TIME, "de_DE" );
|
|
|
8 |
define( "modul_name", "Warenwirtschaft" );
|
|
|
9 |
define( "tool_name", "statistik" );
|
|
|
10 |
require_once "../Online-Shop/connect2.php";
|
|
|
11 |
require_once "includes/statistik/system.php";
|
|
|
12 |
|
|
|
13 |
//neue Smarty-Instanz erstellen
|
|
|
14 |
require_once "Weban_Smarty.class.php";
|
|
|
15 |
$GLOBALS["ui"] = new Weban_Smarty();
|
|
|
16 |
$GLOBALS["ui"]->compile_dir = $_SERVER["DOCUMENT_ROOT"] .
|
|
|
17 |
"/templates_c/";
|
|
|
18 |
$GLOBALS["ui"]->compile_id="Warenwirtschaft|statistik";
|
|
|
19 |
$GLOBALS["ui"]->use_sub_dirs=true;
|
|
|
20 |
|
|
|
21 |
//Datumsfilter aufbauen
|
|
|
22 |
$dates = getDates();
|
|
|
23 |
$dates_sel = select_tpl( "filter[datum]", $dates, "datum", "datumText", $filter["datum"], true );
|
|
|
24 |
|
|
|
25 |
$ansichten[] = array( "ID" => 1, "name" => "Standard" );
|
|
|
26 |
$ansichten[] = array( "ID" => 2, "name" => "Detailansicht" );
|
|
|
27 |
$ansichten[] = array( "ID" => 3, "name" => "Detailansicht V2" );
|
|
|
28 |
|
|
|
29 |
/*if ( !$_SESSION[modul_name][tool_name]["filter"] )
|
|
|
30 |
{
|
|
|
31 |
$_SESSION[modul_name][tool_name]["filter"] = array();
|
|
|
32 |
}
|
|
|
33 |
|
|
|
34 |
$filter = &$_SESSION[modul_name][tool_name]["filter"];*/
|
|
|
35 |
|
|
|
36 |
if ( $_REQUEST["filter"] )
|
|
|
37 |
{
|
|
|
38 |
$filter = $_REQUEST["filter"];
|
|
|
39 |
}
|
|
|
40 |
|
|
|
41 |
if ( !isset($filter["datum"]) )
|
|
|
42 |
{
|
|
|
43 |
$filter["datum"] = date( "Y-m" );
|
|
|
44 |
}
|
|
|
45 |
$f_datum = $filter["datum"];
|
|
|
46 |
|
|
|
47 |
//SQL für Datumseinschränkung bestimmen
|
|
|
48 |
if ( $f_datum[strlen($f_datum) - 1] == "W" )
|
|
|
49 |
{
|
|
|
50 |
//Woche ausgewählt
|
|
|
51 |
$f_datum[strlen( $f_datum ) - 1] = "";
|
|
|
52 |
$start = strtotime( $f_datum );
|
|
|
53 |
$ende = strtotime( "1 week", $start );
|
|
|
54 |
$start_v = strtotime( "-1 year", $start );
|
|
|
55 |
if ( strftime("%w", $start_v) != 1 )
|
|
|
56 |
{
|
|
|
57 |
$start_v = strtotime( "monday", $start_v );
|
|
|
58 |
}
|
|
|
59 |
$ende_v = strtotime( "1 week", $start_v );
|
|
|
60 |
$time_frame = strftime( "Woche %V", strtotime($f_datum) );
|
|
|
61 |
define( "WEEK", true );
|
|
|
62 |
}
|
|
|
63 |
else
|
|
|
64 |
{
|
|
|
65 |
//Monat ausgewählt
|
|
|
66 |
$start = strtotime( $f_datum . "-01" );
|
|
|
67 |
$d_anz = date( "t", $start );
|
|
|
68 |
$ende = strtotime( "$d_anz days", $start );
|
|
|
69 |
//$ende = strtotime( "1 month", $start );
|
|
|
70 |
$start_v = strtotime( "-1 year", $start );
|
|
|
71 |
$ende_v = strtotime( "-1 year", $ende );
|
|
|
72 |
$time_frame = strftime( "%B", $start );
|
|
|
73 |
define( "WEEK", false );
|
|
|
74 |
}
|
|
|
75 |
$c_year = date( "Y", $start );
|
|
|
76 |
$p_year = $c_year - 1;
|
|
|
77 |
|
|
|
78 |
//Shops auslesen und filtern
|
|
|
79 |
$shops = getShops( $filter["shopID"], true, $start, $ende, $start_v, $ende_v );
|
|
|
80 |
$shops_sel = select_tpl( "filter[shopID]", $shops, "ID", "Name", $filter["shopID"] );
|
|
|
81 |
|
|
|
82 |
$bestellart_recht = false;
|
|
|
83 |
|
|
|
84 |
if ( isset($web_rechte["Warenwirtschaft"]["bestellung"]["bestellart"]) )
|
|
|
85 |
{
|
|
|
86 |
if ( !isset($filter["bestellart"]) )
|
|
|
87 |
{
|
|
|
88 |
$filter["bestellart"] = 1;
|
|
|
89 |
}
|
|
|
90 |
$ansichten[] = array( "ID" => 4, "name" => "Detailansicht nach Bestellarten" );
|
|
|
91 |
$bestellarten = getBestellarten();
|
|
|
92 |
$bestellarten_sel = $bestellarten;
|
|
|
93 |
$bestellarten_sel[] = array( "id" => 0, "name" =>
|
|
|
94 |
"----------- alle -----------" );
|
|
|
95 |
$GLOBALS["ui"]->assign( "bestellarten", select_tpl("filter[bestellart]", $bestellarten_sel,
|
|
|
96 |
"id", "name", $filter["bestellart"], true) );
|
|
|
97 |
if ( $filter["bestellart"] )
|
|
|
98 |
{
|
|
|
99 |
$bestellarten_loop[] = array( "id" => $filter["bestellart"], "name" => $bestellarten[$filter["bestellart"] -
|
|
|
100 |
1]["name"] );
|
|
|
101 |
}
|
|
|
102 |
else
|
|
|
103 |
{
|
|
|
104 |
$bestellarten_loop = $bestellarten;
|
|
|
105 |
}
|
|
|
106 |
$GLOBALS["ui"]->assign( "bestellarten_arr", $bestellarten_loop );
|
|
|
107 |
$bestellart_recht = true;
|
|
|
108 |
}
|
|
|
109 |
else
|
|
|
110 |
{
|
|
|
111 |
unset( $filter["bestellart"] );
|
|
|
112 |
}
|
|
|
113 |
$ansichten_sel = select_tpl( "filter[ansicht]", $ansichten, "ID", "name", $filter["ansicht"], true );
|
|
|
114 |
$GLOBALS["ui"]->assign( "bestellart_recht", $bestellart_recht );
|
|
|
115 |
|
|
|
116 |
$GLOBALS["ui"]->assign( "shop_filter", ($filter["shopID"]) ? true : false );
|
|
|
117 |
$GLOBALS["ui"]->assign( "kunde", $webs["kunde_bezeichnung"] );
|
|
|
118 |
$GLOBALS["ui"]->assign( "charset", $charset );
|
|
|
119 |
$GLOBALS["ui"]->assign( "ansichten", $ansichten_sel );
|
|
|
120 |
$GLOBALS["ui"]->assign( "shops_filter", $shops_sel );
|
|
|
121 |
$GLOBALS["ui"]->assign( "dates", $dates_sel );
|
|
|
122 |
|
|
|
123 |
switch ( $filter["ansicht"] )
|
|
|
124 |
{
|
|
|
125 |
case 2:
|
|
|
126 |
require_once "statistik_detail.php";
|
|
|
127 |
break;
|
|
|
128 |
case 3:
|
|
|
129 |
require_once "statistik_v2.php";
|
|
|
130 |
break;
|
|
|
131 |
case 4:
|
|
|
132 |
require_once "statistik_bestellarten.php";
|
|
|
133 |
break;
|
|
|
134 |
default:
|
|
|
135 |
$id = 0;
|
|
|
136 |
$umsatz_ges = get_Umsatz( $start, $ende, null, 0, $filter["bestellart"] );
|
|
|
137 |
$umsatz_ges_p = number_format( $umsatz_ges, 2, ',', '.' );
|
|
|
138 |
$artikel_pos_ges = get_pos_artikel( $start, $ende, null, 0, $filter["bestellart"] );
|
|
|
139 |
$artikel_anz_ges = get_anz_artikel( $start, $ende, null, 0, $filter["bestellart"] );
|
|
|
140 |
$artikel_pos_ges_p = number_format( $artikel_pos_ges, 0, ',', '.' );
|
|
|
141 |
$artikel_anz_ges_p = number_format( $artikel_anz_ges, 0, ',', '.' );
|
|
|
142 |
foreach ( $shops as $shop )
|
|
|
143 |
{
|
|
|
144 |
//Daten für jeden einzelnen Shop auslesen
|
|
|
145 |
$umsatz = get_Umsatz( $start, $ende, $shop["ID"], 0, $filter["bestellart"] );
|
|
|
146 |
$artikel_pos = get_pos_artikel( $start, $ende, $shop["ID"], 0, $filter["bestellart"] );
|
|
|
147 |
$artikel_anz = get_anz_artikel( $start, $ende, $shop["ID"], 0, $filter["bestellart"] );
|
|
|
148 |
|
|
|
149 |
//Prozentwerte berechnen
|
|
|
150 |
$artikel_anz_rel = ( !$filter["shopID"] && !empty($artikel_anz_ges) ) ?
|
|
|
151 |
number_format( ($artikel_anz / $artikel_anz_ges) * 100, 1, ',', '' ) . "%" :
|
|
|
152 |
"100%";
|
|
|
153 |
$artikel_pos_rel = ( !$filter["shopID"] && !empty($artikel_pos_ges) ) ?
|
|
|
154 |
number_format( ($artikel_pos / $artikel_pos_ges) * 100, 1, ',', '' ) . "%" :
|
|
|
155 |
"100%";
|
|
|
156 |
$umsatz_rel = ( !$filter["shopID"] && !empty($umsatz_ges) ) ? number_format( ($umsatz /
|
|
|
157 |
$umsatz_ges) * 100, 1, ',', '' ) . "%" : "100%";
|
|
|
158 |
|
|
|
159 |
//Daten aufbereiten
|
|
|
160 |
$artikel_anz_p = number_format( $artikel_anz, 0, ',', '.' );
|
|
|
161 |
$artikel_pos_p = number_format( $artikel_pos, 0, ',', '.' );
|
|
|
162 |
$umsatz_p = number_format( $umsatz, 2, ',', '.' );
|
|
|
163 |
|
|
|
164 |
//Daten zusammenführen
|
|
|
165 |
$daten[$id] = array( "shop_name" => $shop["Name"], "umsatz" => $umsatz_p,
|
|
|
166 |
"umsatz_rel" => $umsatz_rel, "artikel_pos" => $artikel_pos_p,
|
|
|
167 |
"artikel_pos_rel" => $artikel_pos_rel, "artikel_anz" => $artikel_anz_p,
|
|
|
168 |
"artikel_anz_rel" => $artikel_anz_rel, );
|
|
|
169 |
$id++;
|
|
|
170 |
}
|
|
|
171 |
if ( !$filter[shopID] )
|
|
|
172 |
{
|
|
|
173 |
$GLOBALS["ui"]->assign( "umsatz_ges", $umsatz_ges_p );
|
|
|
174 |
$GLOBALS["ui"]->assign( "artikel_pos_ges", $artikel_pos_ges_p );
|
|
|
175 |
$GLOBALS["ui"]->assign( "artikel_anz_ges", $artikel_anz_ges_p );
|
|
|
176 |
}
|
|
|
177 |
$GLOBALS["ui"]->assign( "daten", $daten );
|
|
|
178 |
$GLOBALS["ui"]->assign( "file", "statistik-standard.tpl" );
|
|
|
179 |
break;
|
|
|
180 |
}
|
|
|
181 |
$GLOBALS["ui"]->display( "statistik-page.tpl" );
|
|
|
182 |
?>
|