1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
stateventtype.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/statistic/classes/general/stateventtype.php");
4
6{
7 public static function GetByID($ID)
8 {
9 $DB = CDatabase::GetModuleConnection('statistic');
10 $ID = intval($ID);
11 $strSql = "
12 SELECT
13 E.*,
14 ".$DB->DateToCharFunction("E.DATE_ENTER")." DATE_ENTER,
15 if (length(E.NAME)>0, E.NAME,
16 concat(ifnull(E.EVENT1,''),' / ',ifnull(E.EVENT2,''))) EVENT
17 FROM
18 b_stat_event E
19 WHERE
20 E.ID = '$ID'
21 ";
22 $res = $DB->Query($strSql);
23 return $res;
24 }
25
26 public static function GetList($by = 's_today_counter', $order = 'desc', $arFilter = [], &$is_filtered = false, $LIMIT = false)
27 {
28 $DB = CDatabase::GetModuleConnection('statistic');
29
30 $find_group = $arFilter["GROUP"] ?? '';
31 if($find_group!="event1" && $find_group!="event2" && $find_group!="total")
32 $find_group="";
33
34 $arSqlSearch = Array();
35 $arSqlSearch_h = Array();
36 $strSqlSearch_h = "";
37 $filter_period = false;
38 $strSqlPeriod = "";
39 $strT = "";
40 $CURRENCY = "";
41
42 if (is_array($arFilter))
43 {
45 $date1 = $arFilter["DATE1_PERIOD"] ?? '';
46 $date2 = $arFilter["DATE2_PERIOD"] ?? '';
47 $date_from = MkDateTime(ConvertDateTime($date1,"D.M.Y"),"d.m.Y");
48 $date_to = MkDateTime(ConvertDateTime($date2,"D.M.Y")." 23:59","d.m.Y H:i");
49 if ($date1 <> '')
50 {
51 $filter_period = true;
52 if ($date2 <> '')
53 {
54 $strSqlPeriod = "if(D.DATE_STAT<FROM_UNIXTIME('$date_from'),0, if(D.DATE_STAT>FROM_UNIXTIME('$date_to'),0,";
55 $strT="))";
56 }
57 else
58 {
59 $strSqlPeriod = "if(D.DATE_STAT<FROM_UNIXTIME('$date_from'),0,";
60 $strT=")";
61 }
62 }
63 elseif ($date2 <> '')
64 {
65 $filter_period = true;
66 $strSqlPeriod = "if(D.DATE_STAT>FROM_UNIXTIME('$date_to'),0,";
67 $strT=")";
68 }
69
70 foreach ($arFilter as $key => $val)
71 {
72 if(is_array($val))
73 {
74 if(count($val) <= 0)
75 continue;
76 }
77 else
78 {
79 if( ((string)$val == '') || ($val === "NOT_REF") )
80 continue;
81 }
82 $match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter);
83 $key = strtoupper($key);
84 switch($key)
85 {
86 case "ID":
87 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
88 $arSqlSearch[] = GetFilterQuery("E.".$key,$val,$match);
89 break;
90 case "DATE_ENTER_1":
92 $arSqlSearch[] = "E.DATE_ENTER>=".$DB->CharToDateFunction($val, "SHORT");
93 break;
94 case "DATE_ENTER_2":
96 $arSqlSearch[] = "E.DATE_ENTER<".$DB->CharToDateFunction($val, "SHORT")." + INTERVAL 1 DAY";
97 break;
98 case "DATE_LAST_1":
100 $arSqlSearch_h[] = "max(D.DATE_LAST)>=".$DB->CharToDateFunction($val, "SHORT");
101 break;
102 case "DATE_LAST_2":
103 if (CheckDateTime($val))
104 $arSqlSearch_h[] = "max(D.DATE_LAST)<".$DB->CharToDateFunction($val, "SHORT")." + INTERVAL 1 DAY";
105 break;
106 case "EVENT1":
107 case "EVENT2":
108 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
109 $arSqlSearch[] = GetFilterQuery("E.".$key,$val,$match);
110 break;
111 case "COUNTER1":
112 $arSqlSearch_h[] = "TOTAL_COUNTER>='".intval($val)."'";
113 break;
114 case "COUNTER2":
115 $arSqlSearch_h[] = "TOTAL_COUNTER<='".intval($val)."'";
116 break;
117 case "MONEY1":
118 $arSqlSearch_h[] = "TOTAL_MONEY>='".roundDB($val)."'";
119 break;
120 case "MONEY2":
121 $arSqlSearch_h[] = "TOTAL_MONEY<='".roundDB($val)."'";
122 break;
123 case "ADV_VISIBLE":
124 case "DIAGRAM_DEFAULT":
125 $arSqlSearch[] = ($val=="Y") ? "E.".$key."='Y'" : "E.".$key."='N'";
126 break;
127 case "DESCRIPTION":
128 case "NAME":
129 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
130 $arSqlSearch[] = GetFilterQuery("E.".$key,$val,$match);
131 break;
132 case "KEEP_DAYS1":
133 $arSqlSearch[] = "E.KEEP_DAYS>='".intval($val)."'";
134 break;
135 case "KEEP_DAYS2":
136 $arSqlSearch[] = "E.KEEP_DAYS<='".intval($val)."'";
137 break;
138 case "DYNAMIC_KEEP_DAYS1":
139 $arSqlSearch[] = "E.DYNAMIC_KEEP_DAYS>='".intval($val)."'";
140 break;
141 case "DYNAMIC_KEEP_DAYS2":
142 $arSqlSearch[] = "E.DYNAMIC_KEEP_DAYS<='".intval($val)."'";
143 break;
144 case "CURRENCY":
145 $CURRENCY = $val;
146 break;
147 }
148 }
149 }
150
151 $rate = 1;
153 $view_currency = $base_currency;
154 if ($base_currency <> '')
155 {
156 if (CModule::IncludeModule("currency"))
157 {
159 {
161 $view_currency = $CURRENCY;
162 }
163 }
164 }
165
166 if ($by == "s_id" && $find_group=="") $strSqlOrder = "ORDER BY E.ID";
167 elseif ($by == "s_date_last") $strSqlOrder = "ORDER BY E_DATE_LAST";
168 elseif ($by == "s_date_enter") $strSqlOrder = "ORDER BY DATE_ENTER";
169 elseif ($by == "s_today_counter") $strSqlOrder = "ORDER BY TODAY_COUNTER";
170 elseif ($by == "s_yesterday_counter") $strSqlOrder = "ORDER BY YESTERDAY_COUNTER";
171 elseif ($by == "s_b_yesterday_counter") $strSqlOrder = "ORDER BY B_YESTERDAY_COUNTER";
172 elseif ($by == "s_total_counter") $strSqlOrder = "ORDER BY TOTAL_COUNTER";
173 elseif ($by == "s_period_counter") $strSqlOrder = "ORDER BY PERIOD_COUNTER";
174 elseif ($by == "s_name" && $find_group=="") $strSqlOrder = "ORDER BY E.NAME";
175 elseif ($by == "s_event1" && $find_group=="") $strSqlOrder = "ORDER BY E.EVENT1";
176 elseif ($by == "s_event1" && $find_group=="event1") $strSqlOrder = "ORDER BY E.EVENT1";
177 elseif ($by == "s_event2" && $find_group=="") $strSqlOrder = "ORDER BY E.EVENT2";
178 elseif ($by == "s_event2" && $find_group=="event2") $strSqlOrder = "ORDER BY E.EVENT2";
179 elseif ($by == "s_event12" && $find_group=="") $strSqlOrder = "ORDER BY E.EVENT1, E.EVENT2";
180 elseif ($by == "s_chart" && $find_group=="") $strSqlOrder = "ORDER BY E.DIAGRAM_DEFAULT desc, TOTAL_COUNTER ";
181 elseif ($by == "s_stat") $strSqlOrder = "ORDER BY TODAY_COUNTER desc, YESTERDAY_COUNTER desc, B_YESTERDAY_COUNTER desc, TOTAL_COUNTER desc, PERIOD_COUNTER";
182 else
183 {
184 $strSqlOrder = "ORDER BY TODAY_COUNTER desc, YESTERDAY_COUNTER desc, B_YESTERDAY_COUNTER desc, TOTAL_COUNTER desc, PERIOD_COUNTER";
185 }
186
187 if ($order != "asc")
188 {
189 $strSqlOrder .= " desc ";
190 }
191
192 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
193 foreach($arSqlSearch_h as $sqlWhere)
194 $strSqlSearch_h .= " and (".$sqlWhere.") ";
195
196 $limit_sql = "LIMIT ".intval(COption::GetOptionString('statistic','RECORDS_LIMIT'));
197 if (intval($LIMIT)>0) $limit_sql = "LIMIT ".intval($LIMIT);
198 if ($find_group=="") // если группировка не выбрана
199 {
200 $strSql = "
201 SELECT
202 E.ID,
203 E.EVENT1,
204 E.EVENT2,
205 E.COUNTER,
206 E.DIAGRAM_DEFAULT,
207 '".$DB->ForSql($view_currency)."' CURRENCY,
208 ".$DB->DateToCharFunction("E.DATE_ENTER")." DATE_ENTER,
209 ".$DB->DateToCharFunction("max(D.DATE_LAST)")." DATE_LAST,
210 max(ifnull(D.DATE_LAST,'1980-01-01')) E_DATE_LAST,
211 sum(ifnull(D.COUNTER,0))+ifnull(E.COUNTER,0) TOTAL_COUNTER,
212 sum(round(ifnull(D.MONEY,0)*$rate,2))+round(ifnull(E.MONEY,0)*$rate,2) TOTAL_MONEY,
213 sum(if(to_days(curdate())=to_days(D.DATE_STAT),ifnull(D.COUNTER,0),0)) TODAY_COUNTER,
214 sum(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.COUNTER,0),0)) YESTERDAY_COUNTER,
215 sum(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.COUNTER,0),0)) B_YESTERDAY_COUNTER,
216 sum(".($filter_period ? $strSqlPeriod.'ifnull(D.COUNTER,0)'.$strT : 0).") PERIOD_COUNTER,
217 sum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=0,ifnull(D.MONEY,0),0)*$rate,2)) TODAY_MONEY,
218 sum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.MONEY,0),0)*$rate,2)) YESTERDAY_MONEY,
219 sum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.MONEY,0),0)*$rate,2)) B_YESTERDAY_MONEY,
220 sum(round(".($filter_period ? $strSqlPeriod.'ifnull(D.MONEY,0)'.$strT : 0)."*$rate,2)) PERIOD_MONEY,
221 E.NAME,
222 E.DESCRIPTION,
223 if (length(E.NAME)>0, E.NAME, concat(E.EVENT1,' / ',ifnull(E.EVENT2,''))) EVENT
224 FROM
225 b_stat_event E
226 LEFT JOIN b_stat_event_day D ON (D.EVENT_ID = E.ID)
227 WHERE
228 $strSqlSearch
229 GROUP BY E.ID
230 HAVING
231 '1'='1'
232 $strSqlSearch_h
233 $strSqlOrder
234 $limit_sql
235 ";
236 $res = $DB->Query($strSql);
237 }
238 elseif ($find_group=="total")
239 {
241 "TOTAL_COUNTER" =>0,
242 "TOTAL_MONEY" =>0,
243 "TODAY_COUNTER" =>0,
244 "YESTERDAY_COUNTER" =>0,
245 "B_YESTERDAY_COUNTER" =>0,
246 "PERIOD_COUNTER" =>0,
247 "TODAY_MONEY" =>0,
248 "YESTERDAY_MONEY" =>0,
249 "B_YESTERDAY_MONEY" =>0,
250 "PERIOD_MONEY" =>0,
251 );
252 $strSql = "
253 SELECT
254 sum(ifnull(D.COUNTER,0)) TOTAL_COUNTER,
255 sum(round(ifnull(D.MONEY,0)*$rate,2)) TOTAL_MONEY,
256 sum(if(to_days(curdate())=to_days(D.DATE_STAT),ifnull(D.COUNTER,0),0)) TODAY_COUNTER,
257 sum(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.COUNTER,0),0)) YESTERDAY_COUNTER,
258 sum(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.COUNTER,0),0)) B_YESTERDAY_COUNTER,
259 sum(".($filter_period ? $strSqlPeriod.'ifnull(D.COUNTER,0)'.$strT : 0).") PERIOD_COUNTER,
260 sum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=0,ifnull(D.MONEY,0),0)*$rate,2)) TODAY_MONEY,
261 sum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.MONEY,0),0)*$rate,2)) YESTERDAY_MONEY,
262 sum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.MONEY,0),0)*$rate,2)) B_YESTERDAY_MONEY,
263 sum(round(".($filter_period ? $strSqlPeriod.'ifnull(D.MONEY,0)'.$strT : 0)."*$rate,2)) PERIOD_MONEY
264 FROM
265 b_stat_event E
266 LEFT JOIN b_stat_event_day D ON (D.EVENT_ID = E.ID)
267 WHERE
268 $strSqlSearch
269 HAVING
270 '1'='1'
271 $strSqlSearch_h
272 ";
273 $res = $DB->Query($strSql);
274 if($ar = $res->Fetch())
275 foreach($ar as $k=>$v)
276 $arResult[$k]+=$v;
277 $strSql = "
278 SELECT
279 sum(ifnull(E.COUNTER,0)) TOTAL_COUNTER,
280 sum(round(ifnull(E.MONEY,0)*$rate,2)) TOTAL_MONEY
281 FROM
282 b_stat_event E
283 WHERE
284 $strSqlSearch
285 ";
286 $res = $DB->Query($strSql);
287 if($ar = $res->Fetch())
288 foreach($ar as $k=>$v)
289 $arResult[$k]+=$v;
290 $arResult["CURRENCY"]=$view_currency;
291 $res = new CDBResult;
292 $res->InitFromArray(array($arResult));
293 }
294 else
295 {
296 $arResult = array();
297 if ($find_group=="event1") $group = "E.EVENT1"; else $group = "E.EVENT2";
298 $strSql = "
299 SELECT
300 $group GROUPING_KEY,
301 $group,
302 '".$DB->ForSql($view_currency)."' CURRENCY,
303 ".$DB->DateToCharFunction("min(E.DATE_ENTER)")." DATE_ENTER,
304 ".$DB->DateToCharFunction("max(D.DATE_LAST)")." DATE_LAST,
305 max(ifnull(D.DATE_LAST,'1980-01-01')) E_DATE_LAST,
306 sum(ifnull(D.COUNTER,0)) TOTAL_COUNTER,
307 sum(round(ifnull(D.MONEY,0)*$rate,2)) TOTAL_MONEY,
308 sum(if(to_days(curdate())=to_days(D.DATE_STAT),ifnull(D.COUNTER,0),0)) TODAY_COUNTER,
309 sum(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.COUNTER,0),0)) YESTERDAY_COUNTER,
310 sum(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.COUNTER,0),0)) B_YESTERDAY_COUNTER,
311 sum(".($filter_period ? $strSqlPeriod.'ifnull(D.COUNTER,0)'.$strT : 0).") PERIOD_COUNTER,
312 sum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=0,ifnull(D.MONEY,0),0)*$rate,2)) TODAY_MONEY,
313 sum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=1,ifnull(D.MONEY,0),0)*$rate,2)) YESTERDAY_MONEY,
314 sum(round(if(to_days(curdate())-to_days(D.DATE_STAT)=2,ifnull(D.MONEY,0),0)*$rate,2)) B_YESTERDAY_MONEY,
315 sum(round(".($filter_period ? $strSqlPeriod.'ifnull(D.MONEY,0)'.$strT : 0)."*$rate,2)) PERIOD_MONEY
316 FROM
317 b_stat_event E
318 LEFT JOIN b_stat_event_day D ON (D.EVENT_ID = E.ID)
319 WHERE
320 $strSqlSearch
321 GROUP BY $group
322 HAVING
323 '1'='1'
324 $strSqlSearch_h
325 $strSqlOrder
326 ";
327 $res = $DB->Query($strSql);
328 while($ar=$res->Fetch())
329 $arResult[$ar["GROUPING_KEY"]] = $ar;
330 $strSql = "
331 SELECT
332 $group GROUPING_KEY,
333 '".$DB->ForSql($view_currency)."' CURRENCY,
334 sum(ifnull(E.COUNTER,0)) COUNTER,
335 sum(round(ifnull(E.MONEY,0)*$rate,2)) TOTAL_MONEY,
336 ".$DB->DateToCharFunction("min(E.DATE_ENTER)")." DATE_ENTER
337 FROM
338 b_stat_event E
339 WHERE
340 $strSqlSearch
341 GROUP BY $group
342 ";
343 $res = $DB->Query($strSql);
344 while($ar=$res->Fetch())
345 {
346 if(array_key_exists($ar["GROUPING_KEY"], $arResult))
347 {
348 $arResult[$ar["GROUPING_KEY"]]["TOTAL_COUNTER"] += $ar["COUNTER"];
349 $arResult[$ar["GROUPING_KEY"]]["TOTAL_MONEY"] += $ar["MONEY"];
350 }
351 else
352 {
353 $arResult[$ar["GROUPING_KEY"]] = array(
354 "GROUPING_KEY" =>$ar["GROUPING_KEY"],
355 ($find_group=="event1"?"EVENT1":"EVENT2")=>$ar["GROUPING_KEY"],
356 "CURRENCY" =>$ar["CURRENCY"],
357 "DATE_ENTER" =>$ar["DATE_ENTER"],
358 "TOTAL_COUNTER" =>$ar["COUNTER"],
359 "TOTAL_MONEY" =>$ar["MONEY"],
360 "TODAY_COUNTER" =>0,
361 "YESTERDAY_COUNTER" =>0,
362 "B_YESTERDAY_COUNTER" =>0,
363 "PERIOD_COUNTER" =>0,
364 "TODAY_MONEY" =>0,
365 "YESTERDAY_MONEY" =>0,
366 "B_YESTERDAY_MONEY" =>0,
367 "PERIOD_MONEY" =>0,
368 );/*DATE_LAST,E_DATE_LAST,*/
369 }
370 }
371 $res = new CDBResult;
372 $res->InitFromArray($arResult);
373 }
374 $is_filtered = (IsFiltered($strSqlSearch) || $filter_period || $strSqlSearch_h <> '' || $find_group!="");
375 return $res;
376 }
377
378 public static function GetSimpleList($by = 's_event1', $order = 'asc', $arFilter = [])
379 {
380 $DB = CDatabase::GetModuleConnection('statistic');
381 $arSqlSearch = Array();
382
383 if (is_array($arFilter))
384 {
385 foreach ($arFilter as $key => $val)
386 {
387 if(is_array($val))
388 {
389 if(count($val) <= 0)
390 continue;
391 }
392 else
393 {
394 if( ((string)$val == '') || ($val === "NOT_REF") )
395 continue;
396 }
397 $match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter);
398 $key = strtoupper($key);
399 switch($key)
400 {
401 case "ID":
402 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
403 $arSqlSearch[] = GetFilterQuery("E.".$key, $val, $match);
404 break;
405 case "EVENT1":
406 case "EVENT2":
407 case "NAME":
408 case "DESCRIPTION":
409 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
410 $arSqlSearch[] = GetFilterQuery("E.".$key, $val, $match);
411 break;
412 case "KEYWORDS":
413 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
414 $arSqlSearch[] = GetFilterQuery("E.EVENT1, E.EVENT2, E.DESCRIPTION, E.NAME",$val, $match);
415 break;
416 }
417 }
418 }
419
420 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
421
422 $order = ($order != "desc" ? "asc" : "desc");
423
424 if ($by == "s_id")
425 $strSqlOrder = "ORDER BY E.ID ".$order;
426 elseif ($by == "s_event1")
427 $strSqlOrder = "ORDER BY E.EVENT1 ".$order.", E.EVENT2";
428 elseif ($by == "s_event2")
429 $strSqlOrder = "ORDER BY E.EVENT2 ".$order;
430 elseif ($by == "s_name")
431 $strSqlOrder = "ORDER BY E.NAME ".$order;
432 elseif ($by == "s_description")
433 $strSqlOrder = "ORDER BY E.DESCRIPTION ".$order;
434 else
435 {
436 $strSqlOrder = "ORDER BY E.EVENT1 ".$order.", E.EVENT2";
437 }
438
439 $strSql = "
440 SELECT
441 E.ID, E.EVENT1, E.EVENT2, E.NAME, E.DESCRIPTION,
442 if (length(E.NAME)>0, E.NAME,
443 concat(ifnull(E.EVENT1,''),' / ',ifnull(E.EVENT2,''))) EVENT
444 FROM
445 b_stat_event E
446 WHERE
447 $strSqlSearch
448 $strSqlOrder
449 LIMIT ".intval(COption::GetOptionString('statistic','RECORDS_LIMIT'))."
450 ";
451
452 $res = $DB->Query($strSql);
453
454 return $res;
455 }
456
457 public static function GetDropDownList($strSqlOrder="ORDER BY EVENT1, EVENT2")
458 {
459 $DB = CDatabase::GetModuleConnection('statistic');
460 $strSql = "
461 SELECT
462 ID as REFERENCE_ID,
463 concat('(',ifnull(EVENT1,''),' / ',ifnull(EVENT2,''),')',ifnull(NAME,''),' [',ID,']') as REFERENCE
464 FROM
465 b_stat_event
466 $strSqlOrder
467 ";
468 $res = $DB->Query($strSql);
469 return $res;
470 }
471
472 public static function GetDynamicList($EVENT_ID, $by = 's_date', $order = 'desc', &$arMaxMin = [], $arFilter = [])
473 {
474 $DB = CDatabase::GetModuleConnection('statistic');
475 $EVENT_ID = intval($EVENT_ID);
476 $arSqlSearch = Array();
477 $strSqlSearch = "";
478 if (is_array($arFilter))
479 {
480 foreach ($arFilter as $key => $val)
481 {
482 if(is_array($val))
483 {
484 if(count($val) <= 0)
485 continue;
486 }
487 else
488 {
489 if( ((string)$val == '') || ($val === "NOT_REF") )
490 continue;
491 }
492
493 $key = strtoupper($key);
494 switch($key)
495 {
496 case "DATE1":
497 if (CheckDateTime($val))
498 $arSqlSearch[] = "D.DATE_STAT>=".$DB->CharToDateFunction($val, "SHORT");
499 break;
500 case "DATE2":
501 if (CheckDateTime($val))
502 $arSqlSearch[] = "D.DATE_STAT<".$DB->CharToDateFunction($val, "SHORT")." + INTERVAL 1 DAY";
503 break;
504 }
505 }
506 }
507
508 foreach($arSqlSearch as $sqlWhere)
509 $strSqlSearch .= " and (".$sqlWhere.") ";
510
511 if ($by == "s_date")
512 $strSqlOrder = "ORDER BY D.DATE_STAT";
513 else
514 {
515 $strSqlOrder = "ORDER BY D.DATE_STAT";
516 }
517
518 if ($order!="asc")
519 {
520 $strSqlOrder .= " desc ";
521 }
522
523 $strSql = "
524 SELECT
525 ".$DB->DateToCharFunction("D.DATE_STAT","SHORT")." DATE_STAT,
526 DAYOFMONTH(D.DATE_STAT) DAY,
527 MONTH(D.DATE_STAT) MONTH,
528 YEAR(D.DATE_STAT) YEAR,
529 D.COUNTER
530 FROM
531 b_stat_event_day D
532 WHERE
533 D.EVENT_ID = $EVENT_ID
534 $strSqlSearch
535 $strSqlOrder
536 ";
537
538 $res = $DB->Query($strSql);
539
540 $strSql = "
541 SELECT
542 max(D.DATE_STAT) DATE_LAST,
543 min(D.DATE_STAT) DATE_FIRST,
544 DAYOFMONTH(max(D.DATE_STAT)) MAX_DAY,
545 MONTH(max(D.DATE_STAT)) MAX_MONTH,
546 YEAR(max(D.DATE_STAT)) MAX_YEAR,
547 DAYOFMONTH(min(D.DATE_STAT)) MIN_DAY,
548 MONTH(min(D.DATE_STAT)) MIN_MONTH,
549 YEAR(min(D.DATE_STAT)) MIN_YEAR
550 FROM
551 b_stat_event_day D
552 WHERE
553 D.EVENT_ID = $EVENT_ID
554 $strSqlSearch
555 ";
556 $a = $DB->Query($strSql);
557 $ar = $a->Fetch();
558 $arMaxMin["MAX_DAY"] = $ar["MAX_DAY"];
559 $arMaxMin["MAX_MONTH"] = $ar["MAX_MONTH"];
560 $arMaxMin["MAX_YEAR"] = $ar["MAX_YEAR"];
561 $arMaxMin["MIN_DAY"] = $ar["MIN_DAY"];
562 $arMaxMin["MIN_MONTH"] = $ar["MIN_MONTH"];
563 $arMaxMin["MIN_YEAR"] = $ar["MIN_YEAR"];
564 return $res;
565 }
566
567 public static function GetGraphArray_SQL($strSqlSearch)
568 {
569 $DB = CDatabase::GetModuleConnection('statistic');
570 $strSql = "
571 SELECT
572 ".$DB->DateToCharFunction("D.DATE_STAT","SHORT")." DATE_STAT,
573 DAYOFMONTH(D.DATE_STAT) DAY,
574 MONTH(D.DATE_STAT) MONTH,
575 YEAR(D.DATE_STAT) YEAR,
576 D.COUNTER,
577 D.MONEY,
578 D.EVENT_ID,
579 E.NAME,
580 E.EVENT1,
581 E.EVENT2
582 FROM
583 b_stat_event_day D
584 INNER JOIN b_stat_event E ON (E.ID = D.EVENT_ID)
585 WHERE
586 $strSqlSearch
587 ORDER BY
588 D.DATE_STAT, D.EVENT_ID
589 ";
590 return $strSql;
591 }
592}
$arResult
Определения generate_coupon.php:16
static GetConvertFactor($curFrom, $curTo, $valDate="")
Определения currency_rate.php:407
Определения stateventtype.php:6
static GetSimpleList($by='s_event1', $order='asc', $arFilter=[])
Определения stateventtype.php:378
static GetDropDownList($strSqlOrder="ORDER BY EVENT1, EVENT2")
Определения stateventtype.php:457
static GetByID($ID)
Определения stateventtype.php:7
static GetGraphArray_SQL($strSqlSearch)
Определения stateventtype.php:567
static GetList($by='s_today_counter', $order='desc', $arFilter=[], &$is_filtered=false, $LIMIT=false)
Определения stateventtype.php:26
static GetDynamicList($EVENT_ID, $by='s_date', $order='desc', &$arMaxMin=[], $arFilter=[])
Определения stateventtype.php:472
$base_currency
Определения commerceml_g_run_cur.php:2
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
ResetFilterLogic($FilterLogic="FILTER_logic")
Определения filter_tools.php:342
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения filter_tools.php:397
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения filter_tools.php:383
IsFiltered($strSqlSearch)
Определения filter_tools.php:337
if($ajaxMode) $ID
Определения get_user.php:27
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
ConvertDateTime($datetime, $to_format=false, $from_site=false, $bSearchInSitesOnly=false)
Определения tools.php:724
CheckDateTime($datetime, $format=false)
Определения tools.php:398
MkDateTime($strDT, $format="d.m.Y H:i:s")
Определения tools.php:1977
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$ar
Определения options.php:199
if(empty($signedUserToken)) $key
Определения quickway.php:257
$LIMIT
Определения rss.php:28
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
else $a
Определения template.php:137
$val
Определения options.php:1793
$CURRENCY
Определения result.php:6
GetStatisticBaseCurrency()
Определения stat_tools.php:368
$k
Определения template_pdf.php:567
$arFilter
Определения user_search.php:106