SelectFields::applyForCountable

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. SelectFields
  4. applyForCountable
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/counter/counterquerybuilder/queryparts/selectfields.php
  • Класс: Bitrix\Crm\Counter\CounterQueryBuilder\QueryParts\SelectFields
  • Вызов: SelectFields::applyForCountable
public function applyForCountable(Query $query, QueryParams $params): Query
{
	if($params->getSelectType() === CounterQueryBuilder::SELECT_TYPE_ENTITIES)
	{
		$query->addSelect('ID', 'ENTY');
		if($params->useDistinct())
		{
			$query->addGroup('ID');
		}
	}
	else
	{
		if ($params->counterLimit())
		{
			$query->setLimit($params->counterLimit());
			$query->addSelect('ID');

			$entity = Entity::getInstanceByQuery($query);

			$newQuery = (new Query($entity));
			$newQuery->registerRuntimeField('', self::getQuantityExpression($params->useDistinct()));
			$newQuery->addSelect('QTY');

			return $newQuery;
		}
		else
		{
			$query->registerRuntimeField('', self::getQuantityExpression($params->useDistinct()));
			$query->addSelect('QTY');
		}
	}
	return $query;
}

Добавить комментарий