• Модуль: statistic
  • Путь к файлу: ~/bitrix/modules/statistic/classes/general/stateventtype.php
  • Класс: CAllStatEventType
  • Вызов: CAllStatEventType::GetGraphArray
static function GetGraphArray($arFilter, &$arrLegend)
{
	$err_mess = "File: ".__FILE__."
Line: "; $DB = CDatabase::GetModuleConnection('statistic'); $arSqlSearch = Array(); if (is_array($arFilter)) { foreach ($arFilter as $key => $val) { if(is_array($val)) { if(count($val) <= 0) continue; } else { if( ((string)$val == '') || ($val === "NOT_REF") ) continue; } $match_value_set = array_key_exists($key."_EXACT_MATCH", $arFilter); $key = strtoupper($key); switch($key) { case "EVENT_ID": $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N"; $arSqlSearch[] = GetFilterQuery("D.EVENT_ID",$val,$match); break; case "DATE1": if (CheckDateTime($val)) $arSqlSearch[] = "D.DATE_STAT>=".$DB->CharToDateFunction($val, "SHORT"); break; case "DATE2": if (CheckDateTime($val)) $arSqlSearch[] = "D.DATE_STAT<=".$DB->CharToDateFunction($val." 23:59:59", "FULL"); break; } } } $arrDays = array(); $arrLegend = array(); $strSqlSearch = GetFilterSqlSearch($arSqlSearch); $summa = $arFilter["SUMMA"]=="Y" ? "Y" : "N"; $strSql = CStatEventType::GetGraphArray_SQL($strSqlSearch); $rsD = $DB->Query($strSql, false, $err_mess.__LINE__); while ($arD = $rsD->Fetch()) { $arrDays[$arD["DATE_STAT"]]["D"] = $arD["DAY"]; $arrDays[$arD["DATE_STAT"]]["M"] = $arD["MONTH"]; $arrDays[$arD["DATE_STAT"]]["Y"] = $arD["YEAR"]; if ($summa=="N") { $arrDays[$arD["DATE_STAT"]][$arD["EVENT_ID"]]["COUNTER"] = $arD["COUNTER"]; $arrDays[$arD["DATE_STAT"]][$arD["EVENT_ID"]]["MONEY"] = $arD["MONEY"]; $arrLegend[$arD["EVENT_ID"]]["COUNTER_TYPE"] = "DETAIL"; $arrLegend[$arD["EVENT_ID"]]["NAME"] = ($arD["NAME"] <> '') ? $arD["NAME"] : $arD["EVENT1"]." / ".$arD["EVENT2"]; } elseif ($summa=="Y") { $arrDays[$arD["DATE_STAT"]]["COUNTER"] += $arD["COUNTER"]; $arrDays[$arD["DATE_STAT"]]["MONEY"] += $arD["MONEY"]; $arrLegend[0]["COUNTER_TYPE"] = "TOTAL"; } } $color = ""; $total = sizeof($arrLegend); foreach ($arrLegend as $key => $arr) { $color = GetNextRGB($color, $total); $arrLegend[$key]["COLOR"] = $color; } return $arrDays; }