• Модуль: imopenlines
  • Путь к файлу: ~/bitrix/modules/imopenlines/lib/integrations/report/handlers/base.php
  • Класс: BitrixImOpenLinesIntegrationsReportHandlersBase
  • Вызов: Base::getGeneratedDemoData
protected function getGeneratedDemoData();
abstract protected function getPreparedDemoRow($row);
abstract protected function prepareResultByWhatWillCalculate($data, $whatWillCalculateValue);

/**
 * @return array
 */
protected function getPreparedDemoData()
{
	$demoData = $this->getGeneratedDemoData();
	$grouping = $this->getFormElement('groupingBy');
	$groupingValue = $grouping ? $grouping->getValue() : null;

	$result = array();
	foreach ($demoData as $data)
	{
		switch ($groupingValue)
		{
			case self::GROUP_BY_CHANEL:
				$result[$data['source_id']]['value'][] = $this->getPreparedDemoRow($data)['value'];
				$result[$data['source_id']]['label'] = $data['source_id'];
				break;
			case self::GROUP_BY_DATE:
				$result[$data['date']]['value'][] = $this->getPreparedDemoRow($data)['value'];
				$result[$data['date']]['label'] = $data['date'];
				break;
			case self::GROUP_BY_RESPONSIBLE:
				$result[$data['operator_id']]['value'][] = $this->getPreparedDemoRow($data)['value'];
				$result[$data['operator_id']]['label'] = Loc::getMessage('REPORT_OPERATOR_DEMO_NAME_PREFIX_NEW') . '-' . $data['operator_id'];
				break;
			default:
				$result['withoutGrouping']['value'][] =  $this->getPreparedDemoRow($data)['value'];
				break;
		}
	}

	$calculateField = $this->getFormElement('calculate');
	$whatWillCalculateValue = $calculateField ? $calculateField->getValue() : null;
	return $this->prepareResultByWhatWillCalculate($result, $whatWillCalculateValue);
}