- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/volume/base.php
- Класс: Bitrix\Crm\Volume\Base
- Вызов: Base::loadTotals
public function loadTotals()
{
$query = Crm\VolumeTable::query();
$filter = array(
'=INDICATOR_TYPE' => static::getIndicatorId(),
'=OWNER_ID' => $this->getOwner(),
'=AGENT_LOCK' => Volume\Cleaner::TASK_STATUS_NONE,
);
$filterExt = $this->getFilter();
foreach ($filterExt as $key => $value)
{
if (empty($value))
{
continue;
}
$filter[$key] = $value;
}
$query
->setFilter($filter)
->registerRuntimeField(new ORM\Fields\ExpressionField('CNT', 'COUNT(*)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('ENTITY_SIZE', 'SUM(ENTITY_SIZE)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('ENTITY_COUNT', 'SUM(ENTITY_COUNT)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('FILE_SIZE', 'SUM(FILE_SIZE)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('FILE_COUNT', 'SUM(FILE_COUNT)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('DISK_SIZE', 'SUM(DISK_SIZE)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('DISK_COUNT', 'SUM(DISK_COUNT)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('EVENT_SIZE', 'SUM(EVENT_SIZE)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('EVENT_COUNT', 'SUM(EVENT_COUNT)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('ACTIVITY_SIZE', 'SUM(ACTIVITY_SIZE)'))
->registerRuntimeField(new ORM\Fields\ExpressionField('ACTIVITY_COUNT', 'SUM(ACTIVITY_COUNT)'))
->addSelect('CNT')
->addSelect('ENTITY_SIZE')
->addSelect('ENTITY_COUNT')
->addSelect('FILE_SIZE')
->addSelect('FILE_COUNT')
->addSelect('DISK_SIZE')
->addSelect('DISK_COUNT')
->addSelect('EVENT_SIZE')
->addSelect('EVENT_COUNT')
->addSelect('ACTIVITY_SIZE')
->addSelect('ACTIVITY_COUNT')
;
$res = $query->exec();
if ($row = $res->fetch())
{
$this->entitySize = (double)$row['ENTITY_SIZE'];
$this->entityCount = (double)$row['ENTITY_COUNT'];
$this->fileSize = (double)$row['FILE_SIZE'];
$this->fileCount = (double)$row['FILE_COUNT'];
$this->diskSize = (double)$row['DISK_SIZE'];
$this->diskCount = (double)$row['DISK_COUNT'];
$this->eventSize = (double)$row['EVENT_SIZE'];
$this->eventCount = (double)$row['EVENT_COUNT'];
$this->activitySize = (double)$row['ACTIVITY_SIZE'];
$this->activityCount = (double)$row['ACTIVITY_COUNT'];
}
return $row;
}