- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/counter/counterquerybuilder/deadlinebased/uncompletedbased.php
- Класс: Bitrix\Crm\Counter\CounterQueryBuilder\DeadlineBased\UncompletedBased
- Вызов: UncompletedBased::addRestrictedByDeadlineSection
private function addRestrictedByDeadlineSection(Query $query, QueryParams $params)
{
$ct = (new ConditionTree())
->where('ENTITY_TYPE_ID', new SqlExpression($params->entityTypeId()));
if ($params->userParams()->isExcluded())
{
$ct->whereNotIn('RESPONSIBLE_ID', $params->userParams()->userIds());
}
else
{
$ct->whereIn('RESPONSIBLE_ID', $params->userParams()->userIds());
}
if (is_null($params->hasAnyIncomingChannel()))
{
$ct->whereIn('HAS_ANY_INCOMING_CHANEL', ['N', 'Y']);
}
else
{
$ct->where('HAS_ANY_INCOMING_CHANEL',
new SqlExpression('?', $params->hasAnyIncomingChannel() ? 'Y' : 'N'));
}
$subQuery = EntityUncompletedActivityTable::query()
->setSelect(['FAKE_ONE'])
->registerRuntimeField('', new ExpressionField('FAKE_ONE', new SqlExpression('?i', 1)))
->where($ct)
->where('ENTITY_ID', new SqlExpression('?#.?#', $query->getInitAlias(), 'ID'));
$subQuery->where('MIN_DEADLINE', '<', $params->restrictedFrom());
$query->whereNotExists($subQuery);
}