- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/widget/data/leadchannelstatistics.php
- Класс: Bitrix\Crm\Widget\Data\LeadChannelStatistics
- Вызов: LeadChannelStatistics::prepareEntityListFilter
public function prepareEntityListFilter(array $filterParams)
{
$filter = self::internalizeFilter($filterParams);
$query = new Query(LeadChannelStatisticsTable::getEntity());
$query->addSelect('OWNER_ID');
$query->addGroup('OWNER_ID');
$period = $filter->getPeriod();
$periodStartDate = $period['START'];
$periodEndDate = $period['END'];
if($periodStartDate !== null)
{
$query->addFilter('>=CREATED_DATE', $periodStartDate);
}
if($periodEndDate !== null)
{
$query->addFilter('<=CREATED_DATE', $periodEndDate);
}
$responsibleIDs = $filter->getResponsibleIDs();
if(!empty($responsibleIDs))
{
$query->addFilter('@RESPONSIBLE_ID', $responsibleIDs);
}
$semanticID = $filter->getExtraParam('semanticID', PhaseSemantics::UNDEFINED);
if($semanticID !== PhaseSemantics::UNDEFINED)
{
$query->addFilter('=STATUS_SEMANTIC_ID', $semanticID);
}
$channelTypeID = $filter->getExtraParam('channelTypeID', ChannelType::UNDEFINED);
if($channelTypeID !== ChannelType::UNDEFINED)
{
$query->addFilter('=CHANNEL_TYPE_ID', $channelTypeID);
}
$channelOriginID = $filter->getExtraParam('channelOriginID', '');
if($channelOriginID !== '')
{
$query->addFilter('=CHANNEL_ORIGIN_ID', $channelOriginID);
}
$channelComponentID = $filter->getExtraParam('channelComponentID', '');
if($channelComponentID !== '')
{
$query->addFilter('=CHANNEL_COMPONENT_ID', $channelComponentID);
}
return array(
'__JOINS' => array(
array(
'TYPE' => 'INNER',
'SQL' => 'INNER JOIN('.$query->getQuery().') DS ON DS.OWNER_ID = L.ID'
)
)
);
}