• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/report/view/compareperiodsgrid.php
  • Класс: Bitrix\Crm\Integration\Report\View\ComparePeriodsGrid
  • Вызов: ComparePeriodsGrid::handlerFinallyBeforePassToView
public function handlerFinallyBeforePassToView($dataFromReport)
{
	$result = [];

	$currentPeriod = $dataFromReport[0];
	$previousPeriod = $dataFromReport[1];

	$maxPoints = max(count($currentPeriod['items']), count($previousPeriod['items']));

	$dateGrouping = $currentPeriod['config']['dateGrouping'];
	$dateFormat = $dateGrouping === BaseGraph::GROUP_MONTH ? "f Y": Context::getCurrent()->getCulture()->getLongDateFormat();

	if ($maxPoints == 0)
	{
		return $result;
	}

	for ($i = 0; $i < $maxPoints; $i++)
	{
		$dateCurrent = $currentPeriod['items'][$i]['groupBy'] ? new Date($currentPeriod['items'][$i]['groupBy'], BaseGraph::DATE_INDEX_FORMAT) : null;
		$datePrev = $previousPeriod['items'][$i]['groupBy'] ? new Date($previousPeriod['items'][$i]['groupBy'], BaseGraph::DATE_INDEX_FORMAT) : null;

		$formattedDateCurrent = $dateCurrent ? FormatDate($dateFormat, $dateCurrent) : "—";
		$formattedDatePrev = $datePrev ? FormatDate($dateFormat, $datePrev) : "—";
		$result[$i]['value'] = [
			'dateCurrent' => $dateCurrent,
			'dateCurrentFormatted' => $formattedDateCurrent,
			'datePrev' => $datePrev,
			'datePrevFormatted' => $formattedDatePrev,
			'amountCurrent' => $currentPeriod['items'][$i]['value'],
			'amountPrev' => $previousPeriod['items'][$i]['value']
		];
		$result[$i]['targetUrl'] = [
			'amountCurrent' => $currentPeriod['items'][$i]['targetUrl'],
			'amountPrev' => $previousPeriod['items'][$i]['targetUrl']
		];
	}

	return $result;
}