• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/main/uiselector/crmcompanies.php
  • Класс: Bitrix\Crm\Integration\Main\UISelector\CrmCompanies
  • Вызов: CrmCompanies::prepareEntity
static function prepareEntity($data, $options = [])
{
	static
		$companyTypeList = null,
		$companyIndustryList = null;

	$prefix = static::getPrefix($options);

	if ($companyTypeList === null)
	{
		$companyTypeList = CCrmStatus::getStatusListEx('COMPANY_TYPE');
	}

	if ($companyIndustryList === null)
	{
		$companyIndustryList = CCrmStatus::getStatusListEx('INDUSTRY');
	}

	$descList = [];
	if (isset($companyTypeList[$data['COMPANY_TYPE']]))
	{
		$descList[] = $companyTypeList[$data['COMPANY_TYPE']];
	}
	if (isset($companyIndustryList[$data['INDUSTRY']]))
	{
		$descList[] = $companyIndustryList[$data['INDUSTRY']];
	}

	$result = [
		'id' => $prefix . $data['ID'],
		'entityType' => 'companies',
		'entityId' => $data['ID'],
		'name' => htmlspecialcharsbx(Emoji::decode(str_replace([';', ','], ' ', $data['TITLE']))),
		'desc' => htmlspecialcharsbx(implode(', ', $descList))
	];

	if (array_key_exists('DATE_CREATE', $data))
	{
		$result['date'] = MakeTimeStamp($data['DATE_CREATE']);
	}

	if (
		!empty($data['LOGO'])
		&& intval($data['LOGO']) > 0
	)
	{
		$imageFields = CFile::resizeImageGet(
			$data['LOGO'],
			['width' => 100, 'height' => 100],
			BX_RESIZE_IMAGE_EXACT
		);
		$result['avatar'] = $imageFields['src'];
	}

	if (
		!empty($data['HAS_EMAIL'])
		&& $data['HAS_EMAIL'] == 'Y'
	)
	{
		$multiEmailsList = [];
		$found = false;

		$res = CCrmFieldMulti::getList(
			['ID' => 'asc'],
			[
				'ENTITY_ID' => static::getOwnerTypeName(),
				'TYPE_ID' => CCrmFieldMulti::EMAIL,
				'ELEMENT_ID' => $data['ID'],
			]
		);
		while ($multiFields = $res->Fetch())
		{
			if (!empty($multiFields['VALUE']))
			{
				$multiEmailsList[] = htmlspecialcharsbx($multiFields['VALUE']);
				if (!$found)
				{
					$result['email'] = htmlspecialcharsbx($multiFields['VALUE']);
					if (
						isset($options['onlyWithEmail'])
						&& $options['onlyWithEmail'] == 'Y'
					)
					{
						$result['desc'] = $result['email'];
					}
					$found = true;
				}
			}
		}
		$result['multiEmailsList'] = $multiEmailsList;
	}

	if (
		isset($options['returnItemUrl'])
		&& $options['returnItemUrl'] == 'Y'
	)
	{
		$result['url'] = CCrmOwnerType::getEntityShowPath(static::getOwnerType(), $data['ID']);
		$result['urlUseSlider'] = (CCrmOwnerType::isSliderEnabled(static::getOwnerType()) ? 'Y' : 'N');
	}

	return $result;
}