• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/kanban/entity/dynamic.php
  • Класс: Bitrix\Crm\Kanban\Entity\Dynamic
  • Вызов: Dynamic::getDataToCalculateTotalSums
protected function getDataToCalculateTotalSums(string $fieldSum, array $filter, array $runtime): array
{
	if ($this->factory->isStagesEnabled())
	{
		ItemDataProvider::processStageSemanticFilter($filter, $filter);
	}
	unset($filter[ItemDataProvider::FIELD_STAGE_SEMANTIC]);

	$userPermissions = Container::getInstance()->getUserPermissions();
	$filter = $userPermissions->applyAvailableItemsFilter(
		$filter,
		[$userPermissions::getPermissionEntityType($this->getTypeId(), $this->getCategoryId())]
	);

	$queryParameters = [
		'filter' => $filter,
		'select' => [
			$this->getStageFieldName(),
			new ExpressionField($fieldSum, 'SUM(%s)', Item::FIELD_NAME_OPPORTUNITY_ACCOUNT),
			new ExpressionField('CNT', 'COUNT(1)'),
		],
	];
	if (!empty($runtime))
	{
		$queryParameters['runtime'] = $runtime;
	}
	$data = [];

	$res = $this->factory->getDataClass()::getList($queryParameters);
	while ($row = $res->fetch())
	{
		$data[] = $row;
	}

	return $data;
}