CCrmProductReportHelper::formatResultValue

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmProductReportHelper
  4. formatResultValue
  • Модуль: 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);
	}
}

Добавить комментарий