• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/report/handler/salesdynamics/wonlostamount.php
  • Класс: Bitrix\Crm\Integration\Report\Handler\SalesDynamics\WonLostAmount
  • Вызов: WonLostAmount::getMultipleData
public function getMultipleData()
{
	$calculatedData = $this->getCalculatedData();
	$baseCurrency = \CCrmCurrency::GetAccountCurrencyID();

	$resultByUser = [];

	foreach ($calculatedData as $dataItem)
	{
		$userId = $dataItem['ASSIGNED_BY_ID'];
		if($dataItem['IS_RETURN_CUSTOMER'] != 'Y')
		{
			$key = ($dataItem['STAGE_SEMANTIC_ID'] == PhaseSemantics::SUCCESS) ? static::PRIMARY_WON: static::PRIMARY_LOST;
		}
		else
		{
			$key = ($dataItem['STAGE_SEMANTIC_ID'] == PhaseSemantics::SUCCESS) ? static::RETURN_WON: static::RETURN_LOST;
		}
		$totalKey = ($dataItem['STAGE_SEMANTIC_ID'] == PhaseSemantics::SUCCESS) ? static::TOTAL_WON: static::TOTAL_LOST;

		$amount = ($dataItem['CURRENCY_ID'] == $baseCurrency) ? $dataItem['SUM'] : \CCrmCurrency::ConvertMoney($dataItem['SUM'], $dataItem['CURRENCY_ID'], $baseCurrency);

		if(!isset($resultByUser[$userId]))
		{
			$resultByUser[$userId]['value'] = [
				'USER_ID' => $userId,
				static::PRIMARY_WON => 0,
				static::PRIMARY_LOST => 0,
				static::RETURN_WON => 0,
				static::RETURN_LOST => 0,
				static::TOTAL_WON => 0,
				static::TOTAL_LOST => 0
			];
			$resultByUser[$userId]['targetUrl'] = [
				static::PRIMARY_WON => $this->getTargetUrl(static::LIST_URL, [
					'ASSIGNED_BY_ID' => $userId, 'STAGE_SEMANTIC_ID' => PhaseSemantics::SUCCESS, 'IS_RETURN_CUSTOMER' => 'N'
				]),
				static::PRIMARY_LOST => $this->getTargetUrl(static::LIST_URL, [
					'ASSIGNED_BY_ID' => $userId, 'STAGE_SEMANTIC_ID' => PhaseSemantics::FAILURE, 'IS_RETURN_CUSTOMER' => 'N'
				]),
				static::RETURN_WON => $this->getTargetUrl(static::LIST_URL, [
					'ASSIGNED_BY_ID' => $userId, 'STAGE_SEMANTIC_ID' => PhaseSemantics::SUCCESS, 'IS_RETURN_CUSTOMER' => 'Y'
				]),
				static::RETURN_LOST => $this->getTargetUrl(static::LIST_URL, [
					'ASSIGNED_BY_ID' => $userId, 'STAGE_SEMANTIC_ID' => PhaseSemantics::FAILURE, 'IS_RETURN_CUSTOMER' => 'Y'
				]),
				static::TOTAL_WON => $this->getTargetUrl(static::LIST_URL, [
					'ASSIGNED_BY_ID' => $userId, 'STAGE_SEMANTIC_ID' => PhaseSemantics::SUCCESS
				]),
				static::TOTAL_LOST => $this->getTargetUrl(static::LIST_URL, [
					'ASSIGNED_BY_ID' => $userId, 'STAGE_SEMANTIC_ID' => PhaseSemantics::FAILURE,
				]),
			];
		}

		$resultByUser[$userId]['value'][$key] += $amount;
		$resultByUser[$userId]['value'][$totalKey] += $amount;
	}

	return $resultByUser;
}