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