• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/classes/general/vi_crm_helper.php
  • Класс: CVoxImplantCrmHelper
  • Вызов: CVoxImplantCrmHelper::resolveEntitiesFields
static function resolveEntitiesFields(array $entities)
{
	if(!BitrixMainLoader::includeModule('crm'))
		return $entities;

	$contactIds = array();
	$leadIds = array();
	$companyIds = array();

	foreach ($entities as $entity)
	{
		if($entity['TYPE'] === CCrmOwnerType::ContactName)
			$contactIds[] = $entity['ID'];
		else if($entity['TYPE'] === CCrmOwnerType::LeadName)
			$leadIds[] = $entity['ID'];
		else if($entity['TYPE'] === CCrmOwnerType::CompanyName)
			$companyIds[] = $entity['ID'];
	}

	$contactFields = !empty($contactIds) ? static::resolveContactsFields($contactIds) : array();
	$leadFields = !empty($leadIds) ? static::resolveLeadsFields($leadIds) : array();
	$companyFields = !empty($companyIds) ? static::resolveCompaniesFields($companyIds): array();

	$result = array();
	foreach ($entities as $entity)
	{
		$resolvedEntity = $entity;
		if($entity['TYPE'] === CCrmOwnerType::ContactName && isset($contactFields[$entity['ID']]))
		{
			$resolvedEntity['NAME'] = $contactFields[$entity['ID']]['NAME'];
			$resolvedEntity['PHOTO'] = $contactFields[$entity['ID']]['PHOTO'];
		}
		else if($entity['TYPE'] === CCrmOwnerType::CompanyName && isset($companyFields[$entity['ID']]))
		{
			$resolvedEntity['NAME'] = $companyFields[$entity['ID']]['NAME'];
			$resolvedEntity['PHOTO'] = $companyFields[$entity['ID']]['LOGO'];
		}
		else if($entity['TYPE'] === CCrmOwnerType::LeadName && isset($leadFields[$entity['ID']]))
		{
			$resolvedEntity['NAME'] = $leadFields[$entity['ID']]['NAME'];
			$resolvedEntity['PHOTO'] = null;
		}

		$resolvedEntity['DESCRIPTION'] = CCrmOwnerType::GetDescription(CCrmOwnerType::ResolveID($entity['TYPE']));
		$resolvedEntity['SHOW_URL'] = CCrmOwnerType::GetEntityShowPath(CCrmOwnerType::ResolveID($entity['TYPE']), $entity['ID'], false);

		$key = $entity['TYPE'] . ':' . $entity['ID'];
		$result[$key] = $resolvedEntity;

	}
	return $result;
}