ActivityCounter::prepareEntityQuery

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. ActivityCounter
  4. prepareEntityQuery
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/counter/activitycounter.php
  • Класс: Bitrix\Crm\Counter\ActivityCounter
  • Вызов: ActivityCounter::prepareEntityQuery
protected function prepareEntityQuery($entityTypeID)
{
	$query = new Query(ActivityBindingTable::getEntity());
	$query->setCustomBaseTableAlias('b');
	$query->addSelect('ACTIVITY_ID', 'ACTIVITY_ID');

	$join = $this->prepareActivityTableJoin((int)$entityTypeID);

	$query->registerRuntimeField(
		'',
		new ReferenceField('a',
			ActivityTable::getEntity(),
			$join,
			array('join_type' => 'INNER')
		)
	);

	if($entityTypeID === \CCrmOwnerType::Lead)
	{
		$query->registerRuntimeField(
			'',
			new ReferenceField('l',
				LeadTable::getEntity(),
				array(
					'=ref.ID' => 'this.OWNER_ID',
					'=ref.STATUS_SEMANTIC_ID' => new SqlExpression('?', PhaseSemantics::PROCESS),
				),
				array('join_type' => 'INNER')
			)
		);
	}
	elseif($entityTypeID === \CCrmOwnerType::Deal)
	{
		$query->registerRuntimeField(
			'',
			new ReferenceField('d',
				DealTable::getEntity(),
				array(
					'=ref.ID' => 'this.OWNER_ID',
					'=ref.STAGE_SEMANTIC_ID' => new SqlExpression('?', PhaseSemantics::PROCESS),
				),
				array('join_type' => 'INNER')
			)
		);
	}

	return $query;
}

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