• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/volume/event.php
  • Класс: Bitrix\Crm\Volume\Event
  • Вызов: Event::measureFiles
public function measureFiles()
{
	$eventQuery = $this->prepareQuery();
	if ($this->prepareFilter($eventQuery))
	{
		$entityGroupField = array(
			'DATE_CREATED_SHORT' => 'DATE_CREATED_SHORT',
		);

		$eventFileQuery = $this->getEventFileMeasureQuery();
		foreach ($entityGroupField as $alias => $field)
		{
			$eventFileQuery->addSelect($field, $alias);
			$eventFileQuery->addGroup($field);
		}

		$querySql = $eventFileQuery->getQuery();

		$querySql = "
			SELECT 
				'".static::getIndicatorId()."' as INDICATOR_TYPE,
				'".$this->getOwner()."' as OWNER_ID,
				DATE_CREATED_SHORT as DATE_CREATE,
				SUM(FILE_SIZE) as FILE_SIZE,
				SUM(FILE_COUNT) as FILE_COUNT
			FROM 
			(
				{$querySql}
			) src
			GROUP BY
				DATE_CREATE
			HAVING 
				SUM(FILE_COUNT) > 0
		";

		Crm\VolumeTable::updateFromSelect(
			$querySql,
			array(
				'FILE_SIZE' => 'destination.FILE_SIZE + source.FILE_SIZE',
				'FILE_COUNT' => 'destination.FILE_COUNT + source.FILE_COUNT',
			),
			array(
				'INDICATOR_TYPE',
				'OWNER_ID',
				'DATE_CREATE',
			)
		);
	}

	return $this;
}