- Модуль: 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;
}