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