• Модуль: statistic
  • Путь к файлу: ~/bitrix/modules/statistic/classes/mysql/adv.php
  • Класс: CAdv
  • Вызов: CAdv::GetEventListByReferer
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; }