• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/iblockelementproperty.php
  • Класс: Bitrix\Crm\Integration\IBlockElementProperty
  • Вызов: IBlockElementProperty::getEntityForExcelById
static function getEntityForExcelById($property, $listEntityValues)
{
	$result = '';
	$usePrefix = true;
	$tmpArray = array();
	if(is_array($property['USER_TYPE_SETTINGS']))
	{
		if(array_key_exists('VISIBLE', $property['USER_TYPE_SETTINGS']))
			unset($property['USER_TYPE_SETTINGS']['VISIBLE']);
		$tmpArray = array_filter($property['USER_TYPE_SETTINGS'], function($mark)
		{
			return $mark == "Y";
		});
		if(count($tmpArray) == 1)
		{
			$usePrefix = false;
		}
	}

	$listEntityValue = array();
	$preparedData = array();
	if($usePrefix)
	{
		foreach($listEntityValues as $entityIdWithPrefix)
		{
			$explode = explode('_', $entityIdWithPrefix);
			$entityType = \CCrmOwnerTypeAbbr::resolveName($explode[0]);
			$listEntityValue[$entityType][] = $explode[1];
		}
	}
	else
	{
		$entityType = array_shift(array_keys($tmpArray));
		foreach($listEntityValues as $entityId)
		{
			$listEntityValue[$entityType][] = $entityId;
		}
	}

	foreach($listEntityValue as $entityType => $listEntityId)
	{
		switch($entityType)
		{
			case 'LEAD':
			{
				$queryObject = \CCrmLead::getListEx(array('TITLE' => 'ASC'), array('=ID' => $listEntityId), false,
					false, array('ID', 'TITLE'));
				while($entityData = $queryObject->fetch())
				{
					$preparedData[$entityType][] = array(
						'NAME' => $entityData['TITLE'],
						'LINK' => \CComponentEngine::makePathFromTemplate(Option::get('crm', 'path_to_lead_show'),
							array('lead_id' => $entityData['ID']))
					);
				}
				break;
			}
			case 'CONTACT':
			{
				$queryObject = \CCrmContact::getListEx(array('TITLE' => 'ASC'), array('=ID' => $listEntityId), false,
					false, array('ID', 'FULL_NAME'));
				while($entityData = $queryObject->fetch())
				{
					$preparedData[$entityType][] = array(
						'NAME' => $entityData['FULL_NAME'],
						'LINK' => \CComponentEngine::makePathFromTemplate(Option::get('crm', 'path_to_contact_show'),
							array('contact_id' => $entityData['ID']))
					);
				}
				break;
			}
			case 'COMPANY':
			{
				$queryObject = \CCrmCompany::getListEx(array('TITLE' => 'ASC'), array('ID' => $listEntityId), false,
					false, array('ID', 'TITLE'));
				while($entityData = $queryObject->fetch())
				{
					$preparedData[$entityType][] = array(
						'NAME' => $entityData['TITLE'],
						'LINK' => \CComponentEngine::makePathFromTemplate(Option::get('crm', 'path_to_company_show'),
							array('company_id' => $entityData['ID']))
					);
				}
				break;
			}
			case 'DEAL':
			{
				$queryObject = \CCrmDeal::getListEx(array('TITLE' => 'ASC'), array('ID' => $listEntityId), false,
					false, array('ID', 'TITLE'));
				while($entityData = $queryObject->fetch())
				{
					$preparedData[$entityType][] = array(
						'NAME' => $entityData['TITLE'],
						'LINK' => \CComponentEngine::makePathFromTemplate(Option::get('crm', 'path_to_deal_show'),
							array('deal_id' => $entityData['ID']))
					);
				}
				break;
			}
		}
	}
	foreach($preparedData as $entityType => $listEntityData)
	{
		$result .= Loc::getMessage('CRM_IBLOCK_PROPERTY_ENTITY_'.$entityType).': 
'; foreach($listEntityData as $entity) $result .= ''.htmlspecialcharsbx($entity['NAME']).'
'; } return $result; }