static function GetEventListByReferer($value, $arFilter)
{
$err_mess = "File: ".__FILE__."
Line: ";
$DB = CDatabase::GetModuleConnection('statistic');
if ($arFilter["GROUP"]=="referer1")
$group = "A.REFERER1";
else
$group = "A.REFERER2";
$where = "";
$filter_period = false;
$strSqlPeriod = "";
$strT = "";
if (is_array($arFilter))
{
$date1 = $arFilter["DATE1_PERIOD"];
$date2 = $arFilter["DATE2_PERIOD"];
$date_from = MkDateTime(ConvertDateTime($date1,"D.M.Y"),"d.m.Y");
$date_to = MkDateTime(ConvertDateTime($date2,"D.M.Y")." 23:59","d.m.Y H:i");
if ($date1 <> '')
{
$filter_period = true;
if ($date2 <> '')
{
$strSqlPeriod = "sum(if(AE.DATE_STATFROM_UNIXTIME('$date_to'),0,";
$strT=")))";
}
else
{
$strSqlPeriod = "sum(if(AE.DATE_STAT '')
{
$filter_period = true;
$strSqlPeriod = "sum(if(AE.DATE_STAT>FROM_UNIXTIME('$date_to'),0,";
$strT="))";
}
}
$arFilter["GROUP"]="";
$a = CAdv::GetList('', '', $arFilter, $is_filtered);
if ($is_filtered)
{
$str_id = "0";
while ($ar = $a->Fetch()) $str_id .= ",".intval($ar["ID"]);
$where = "and A.ID in ($str_id)";
}
$strSql = "
SELECT
E.ID, E.EVENT1, E.EVENT2, E.C_SORT, E.NAME, E.DESCRIPTION,
sum(AE.COUNTER) COUNTER,
sum(AE.COUNTER_BACK) COUNTER_BACK,
sum(if(to_days(curdate())=to_days(AE.DATE_STAT),ifnull(AE.COUNTER,0),0)) COUNTER_TODAY,
sum(if(to_days(curdate())-to_days(AE.DATE_STAT)=1,ifnull(AE.COUNTER,0),0)) COUNTER_YESTERDAY,
sum(if(to_days(curdate())-to_days(AE.DATE_STAT)=2,ifnull(AE.COUNTER,0),0)) COUNTER_BEF_YESTERDAY,
sum(if(to_days(curdate())=to_days(AE.DATE_STAT),ifnull(AE.COUNTER_BACK,0),0)) COUNTER_BACK_TODAY,
sum(if(to_days(curdate())-to_days(AE.DATE_STAT)=1,ifnull(AE.COUNTER_BACK,0),0)) COUNTER_BACK_YESTERDAY,
sum(if(to_days(curdate())-to_days(AE.DATE_STAT)=2,ifnull(AE.COUNTER_BACK,0),0)) COUNTER_BACK_BEF_YESTERDAY,
".($filter_period ? $strSqlPeriod.'ifnull(AE.COUNTER,0)'.$strT : 'sum(AE.COUNTER)')." COUNTER_PERIOD,
".($filter_period ? $strSqlPeriod.'ifnull(AE.COUNTER_BACK,0)'.$strT : 'sum(AE.COUNTER_BACK)')." COUNTER_BACK_PERIOD,
sum(AE.MONEY) MONEY,
sum(AE.MONEY_BACK) MONEY_BACK,
sum(if(to_days(curdate())=to_days(AE.DATE_STAT),ifnull(AE.MONEY,0),0)) MONEY_TODAY,
sum(if(to_days(curdate())-to_days(AE.DATE_STAT)=1,ifnull(AE.MONEY,0),0)) MONEY_YESTERDAY,
sum(if(to_days(curdate())-to_days(AE.DATE_STAT)=2,ifnull(AE.MONEY,0),0)) MONEY_BEF_YESTERDAY,
sum(if(to_days(curdate())=to_days(AE.DATE_STAT),ifnull(AE.MONEY_BACK,0),0)) MONEY_BACK_TODAY,
sum(if(to_days(curdate())-to_days(AE.DATE_STAT)=1,ifnull(AE.MONEY_BACK,0),0)) MONEY_BACK_YESTERDAY,
sum(if(to_days(curdate())-to_days(AE.DATE_STAT)=2,ifnull(AE.MONEY_BACK,0),0)) MONEY_BACK_BEF_YESTERDAY,
".($filter_period ? $strSqlPeriod.'ifnull(AE.MONEY,0)'.$strT : 'sum(AE.MONEY)')." MONEY_PERIOD,
".($filter_period ? $strSqlPeriod.'ifnull(AE.MONEY_BACK,0)'.$strT : 'sum(AE.MONEY_BACK)')." MONEY_BACK_PERIOD,
if (length(E.NAME)>0, E.NAME,
concat(ifnull(E.EVENT1,''),' / ',ifnull(E.EVENT2,''))) EVENT
FROM
b_stat_adv A,
b_stat_adv_event_day AE,
b_stat_event E
WHERE
1=1
$where
and $group='".$DB->ForSql($value,255)."'
and AE.ADV_ID = A.ID
and E.ID = AE.EVENT_ID
and E.ADV_VISIBLE = 'Y'
GROUP BY
E.ID, E.EVENT1, E.EVENT2, E.C_SORT, E.NAME, E.DESCRIPTION
ORDER BY
E.C_SORT desc,
COUNTER_TODAY desc, COUNTER_BACK_TODAY desc,
COUNTER_YESTERDAY desc, COUNTER_BACK_YESTERDAY desc,
COUNTER_BEF_YESTERDAY desc, COUNTER_BACK_BEF_YESTERDAY desc,
COUNTER_PERIOD desc, COUNTER_BACK_PERIOD desc,
COUNTER desc, COUNTER_BACK
LIMIT ".intval(COption::GetOptionString('statistic','RECORDS_LIMIT'))."
";
$res = $DB->Query($strSql, false, $err_mess.__LINE__);
return $res;
}