- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_report_helper.php
- Класс: \CCrmInvoiceReportHelper
- Вызов: CCrmInvoiceReportHelper::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])
&& ($k === 'PRICE'
|| preg_match('/.PRICE$/', $k)
|| $k === 'PRICE_WORK' || preg_match('/_PRICE_WORK$/', $k)
|| $k === 'PRICE_PAYED' || preg_match('/_PRICE_PAYED$/', $k)
|| $k === 'PRICE_CANCELED' || preg_match('/_PRICE_CANCELED/', $k)))
{
// unformatted value for charts
$customChartValue['exist'] = true;
$customChartValue['type'] = 'float';
$customChartValue['value'] = doubleval($v);
$v = self::MoneyToString(doubleval($v), $isHtml);
}
elseif (!isset($prcnt[0]) && preg_match('/_VAT_RATE_PRC$/', $k))
{
$v = number_format(doubleval($v), 2, '.', '');
if ($isHtml)
$v = str_replace(' ', ' ', $v);
}
elseif (!isset($prcnt[0]) && preg_match('/_QUANTITY$/', $k))
{
$v = round(doubleval($v), 4);
}
elseif(!$aggr && $fieldName === 'ORDER_TOPIC')
{
if($isHtml && $v <> '' && self::$CURRENT_RESULT_ROW && isset(self::$CURRENT_RESULT_ROW['ID']))
{
$v = self::prepareInvoiceTitleHtml(self::$CURRENT_RESULT_ROW['ID'], $v);
}
}
elseif(!$aggr && $fieldName === 'PAY_SYSTEM_ID')
{
if($v !== '')
{
$personTypeId = intval(self::$CURRENT_RESULT_ROW['PERSON_TYPE_ID']);
$v = self::getInvoicePaySystemName($v, $personTypeId, $isHtml);
}
}
elseif(!$aggr && $fieldName === 'PERSON_TYPE_ID')
{
if($v !== '')
{
$v = self::getInvoicePersonTypeName($v, $isHtml);
}
}
elseif(!$aggr && $fieldName === 'STATUS_ID')
{
if($v !== '')
{
$v = self::getInvoiceStatusName($v, $isHtml);
}
}
elseif(!$aggr && $fieldName === 'CURRENCY')
{
if($v !== '')
{
$v = self::getCurrencyName($v, $isHtml);
}
}
elseif(!$aggr && $fieldName === 'INVOICE_UTS.DEAL_BY.WEBFORM_ID')
{
if($v !== '')
{
$v = self::getWebFormName($v, $isHtml);
}
}
elseif(!$aggr && mb_strpos($fieldName, 'ASSIGNED_BY.') === 0)
{
// unset HREF for empty value
if (empty($v) || trim($v) === '.' || $v === ' ')
unset($row['__HREF_'.$k]);
if(($v == '' || trim($v) === '.') && mb_strpos($fieldName, '.WORK_POSITION') !== mb_strlen($fieldName) - 14)
{
$v = GetMessage('CRM_INVOICE_RESPONSIBLE_NOT_ASSIGNED');
}
if($isHtml)
{
$v = htmlspecialcharsbx($v);
}
}
elseif(!$aggr && mb_strpos($fieldName, 'ProductRow:LEAD_OWNER.IBLOCK_ELEMENT.') === 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_LEAD_CRM_PRODUCT_ROW_LEAD_OWNER_IBLOCK_ELEMENT_IBLOCK_ID'])
? intval(self::$CURRENT_RESULT_ROW['CRM_LEAD_CRM_PRODUCT_ROW_LEAD_OWNER_IBLOCK_ELEMENT_IBLOCK_ID']) : 0;;
$iblockElementID = isset(self::$CURRENT_RESULT_ROW['CRM_LEAD_CRM_PRODUCT_ROW_LEAD_OWNER_IBLOCK_ELEMENT_ID'])
? intval(self::$CURRENT_RESULT_ROW['CRM_LEAD_CRM_PRODUCT_ROW_LEAD_OWNER_IBLOCK_ELEMENT_ID']) : 0;
}
else
{
$iblockID = 0;
$iblockElementID = 0;
}
if($iblockElementID > 0 && $iblockID === $defaultCatalogID)
{
$v = self::prepareProductNameHtml($iblockElementID, $v);
}
else
{
$v = htmlspecialcharsbx($v);
}
}
}
elseif($fieldName !== 'COMMENTS') // Leave 'COMMENTS' as is for HTML display.
{
parent::formatResultValue($k, $v, $row, $cInfo, $total, $customChartValue);
}
}