- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_report_helper.php
- Класс: \CCrmProductReportHelper
- Вызов: CCrmProductReportHelper::formatResultValue
static function formatResultValue($k, &$v, &$row, &$cInfo, $total, &$customChartValue = null)
{
// HACK: detect if 'report.view' component is rendering excel spreadsheet
$isHtml = !(isset($_GET['EXCEL']) && $_GET['EXCEL'] === 'Y');
$field = $cInfo['field'];
$fieldName = isset($cInfo['fieldName']) ? $cInfo['fieldName'] : $field->GetName();
$prcnt = isset($cInfo['prcnt']) ? $cInfo['prcnt'] : '';
$aggr = (!empty($cInfo['aggr']) && $cInfo['aggr'] !== 'GROUP_CONCAT');
if(!isset($prcnt[0])
&& ($fieldName === 'DEAL_OWNER.OPPORTUNITY'
|| $fieldName === 'DEAL_OWNER.OPPORTUNITY_ACCOUNT'
|| $fieldName === 'DEAL_OWNER.RECEIVED_AMOUNT'
|| $fieldName === 'DEAL_OWNER.LOST_AMOUNT'
|| $fieldName === 'SUM_ACCOUNT'
|| $fieldName === 'PRICE_ACCOUNT'
|| $fieldName === 'DEAL_OWNER.COMPANY_BY.REVENUE'))
{
// unformatted value for charts
$customChartValue['exist'] = true;
$customChartValue['type'] = 'float';
$customChartValue['value'] = doubleval($v);
$v = self::MoneyToString(doubleval($v), $isHtml);
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.TITLE')
{
if($isHtml && $v <> '' && self::$CURRENT_RESULT_ROW && isset(self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_DEAL_OWNER_ID']))
{
$v = self::prepareDealTitleHtml(self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_DEAL_OWNER_ID'], $v);
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.STAGE_ID')
{
if($v !== '')
{
$v = self::getDealStageName($v, $isHtml);
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.TYPE_ID')
{
if($v !== '')
{
$v = self::getDealTypeName($v, $isHtml);
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.CURRENCY_ID' || $fieldName === 'DEAL_OWNER.COMPANY_BY.CURRENCY_ID')
{
if($v !== '')
{
$v = self::getCurrencyName($v, $isHtml);
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.EVENT_ID')
{
if($v !== '')
{
$v = self::getEventTypeName($v, $isHtml);
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.WEBFORM_ID')
{
if($v !== '')
{
$v = self::getWebFormName($v, $isHtml);
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.ORIGINATOR_BY.ID')
{
$v = self::getDealOriginatorName($v, $isHtml);
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.CONTACT_BY.SOURCE_BY.STATUS_ID')
{
if($v !== '')
{
$v = self::getStatusName($v, 'SOURCE', $isHtml);
}
}
elseif(mb_strpos($fieldName, 'DEAL_OWNER.COMPANY_BY.') === 0)
{
if(!$aggr && ($v == '' || trim($v) === '.'))
{
if(mb_strpos($fieldName, 'DEAL_OWNER.COMPANY_BY.COMPANY_TYPE_BY') !== 0
&& mb_strpos($fieldName, 'DEAL_OWNER.COMPANY_BY.INDUSTRY_BY') !== 0
&& mb_strpos($fieldName, 'DEAL_OWNER.COMPANY_BY.EMPLOYEES_BY') !== 0)
{
$v = GetMessage('CRM_DEAL_COMPANY_NOT_ASSIGNED');
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.COMPANY_BY.TITLE')
{
if($isHtml && self::$CURRENT_RESULT_ROW && isset(self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_DEAL_OWNER_COMPANY_BY_ID']))
{
$v = self::prepareCompanyTitleHtml(self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_DEAL_OWNER_COMPANY_BY_ID'], $v);
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.COMPANY_BY.COMPANY_TYPE_BY.STATUS_ID')
{
if($v !== '')
{
$v = self::getStatusName($v, 'COMPANY_TYPE', $isHtml);
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.COMPANY_BY.INDUSTRY_BY.STATUS_ID')
{
if($v !== '')
{
$v = self::getStatusName($v, 'INDUSTRY', $isHtml);
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.COMPANY_BY.EMPLOYEES_BY.STATUS_ID')
{
if($v !== '')
{
$v = self::getStatusName($v, 'EMPLOYEES', $isHtml);
}
}
}
elseif(mb_strpos($fieldName, 'DEAL_OWNER.CONTACT_BY.') === 0)
{
if(!$aggr && ($v === '' || trim($v) === '.'))
{
if(mb_strpos($fieldName, 'DEAL_OWNER.CONTACT_BY.TYPE_BY') !== 0)
{
$v = GetMessage('CRM_DEAL_CONTACT_NOT_ASSIGNED');
}
}
elseif(!$aggr && $fieldName === 'DEAL_OWNER.CONTACT_BY.TYPE_BY.STATUS_ID')
{
if($v !== '')
{
$v = self::getStatusName($v, 'CONTACT_TYPE', $isHtml);
}
}
elseif(!$aggr && ($fieldName === 'DEAL_OWNER.CONTACT_BY.NAME'
|| $fieldName === 'DEAL_OWNER.CONTACT_BY.LAST_NAME'
|| $fieldName === 'DEAL_OWNER.CONTACT_BY.SECOND_NAME'
|| $fieldName === 'DEAL_OWNER.CONTACT_BY.ADDRESS'))
{
if($isHtml && self::$CURRENT_RESULT_ROW
&& isset(self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_DEAL_OWNER_CONTACT_BY_ID']))
{
$v = self::prepareContactTitleHtml(
self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_DEAL_OWNER_CONTACT_BY_ID'],
$v
);
}
}
}
elseif(!$aggr && mb_strpos($fieldName, 'DEAL_OWNER.ASSIGNED_BY.') === 0)
{
// unset HREF for empty value
if (empty($v) || trim($v) === '.' || $v === ' ')
unset($row['__HREF_'.$k]);
if($v == '' || trim($v) === '.')
{
$v = GetMessage('CRM_DEAL_RESPONSIBLE_NOT_ASSIGNED');
}
elseif($isHtml)
{
$v = htmlspecialcharsbx($v);
}
}
elseif(!$aggr && mb_strpos($fieldName, 'CP_PRODUCT_NAME') === 0)
{
static $defaultCatalogID;
if(!isset($defaultCatalogID))
{
$defaultCatalogID = CCrmCatalog::GetDefaultID();
}
if($isHtml)
{
if($defaultCatalogID > 0 && self::$CURRENT_RESULT_ROW)
{
$iblockID = isset(self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_IBLOCK_ELEMENT_IBLOCK_ID'])
? intval(self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_IBLOCK_ELEMENT_IBLOCK_ID']) : 0;;
$iblockElementID = isset(self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_IBLOCK_ELEMENT_ID'])
? intval(self::$CURRENT_RESULT_ROW['CRM_PRODUCT_ROW_IBLOCK_ELEMENT_ID']) : 0;
}
else
{
$iblockID = 0;
$iblockElementID = 0;
}
if($iblockElementID > 0 && $iblockID === $defaultCatalogID)
{
$v = self::prepareProductNameHtml($iblockElementID, $v);
}
else
{
$v = htmlspecialcharsbx($v);
}
}
}
else
{
parent::formatResultValue($k, $v, $row, $cInfo, $total, $customChartValue);
}
}