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