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