• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/report/handler/order/basegrid.php
  • Класс: Bitrix\Crm\Integration\Report\Handler\Order\BaseGrid
  • Вызов: BaseGrid::getMultipleGroupedData
public function getMultipleGroupedData()
{
	$calculatedData = $this->getCalculatedData();

	$config = [];
	$calculateField = $this->getFormElement('calculate');
	$calculateValue = $calculateField ? $calculateField->getValue() : null;

	$amount = [];
	$amount['prefix'] = '';
	$amount['postfix'] = '';

	if ($this->isSumCalculation())
	{
		$amount['value'] = $calculatedData['amount']['sum'];
	}
	elseif ($calculateValue === self::WHAT_WILL_CALCULATE_ORDER_CONVERSION || $calculateValue === self::WHAT_WILL_CALCULATE_ORDER_LOSES)
	{
		if (!isset($amount['value']))
		{
			$amount['value'] = 0.0;
		}
		$amount['value'] += round( $calculatedData['amount']['ratio'] * 100, 2);
		$amount['postfix'] = '%';
	}
	else
	{
		$amount['value'] = $calculatedData['amount']['count'];
	}

	$items = $calculatedData['items'];
	foreach ($items as $groupingKey => $item)
	{
		$config['groupsLabelMap'][$groupingKey] = $item['label'];
		$config['groupsLogoMap'][$groupingKey] = $item['logo'];
		$config['groupsTargetUrlMap'][$groupingKey] = $item['profileUrl'];
	}

	$elementLabel = $this->getFormElement('label');
	$config['reportTitle'] = $elementLabel ? $elementLabel->getValue() : '';

	$sliderDisableCalculateTypes = [
		self::WHAT_WILL_CALCULATE_ORDER_CONVERSION,
		self::WHAT_WILL_CALCULATE_ORDER_LOSES
	];

	if (!in_array($calculateValue, $sliderDisableCalculateTypes))
	{
		$amount['slider'] = true;
		$amount['targetUrl'] = $this->getTargetUrl('/shop/orders/list/');
	}

	$config['amount'] = $amount;
	return  [
		'items' => $items,
		'config' => $config,
	];
}