- Модуль: 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;
}