- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/Service/Display/Field/CrmField.php
- Класс: Bitrix\Crm\Service\Display\Field\CrmField
- Вызов: CrmField::loadLinkedEntities
public function loadLinkedEntities(array &$linkedEntitiesValues, array $linkedEntity): void
{
$fieldType = $this->getType();
if (
isset($linkedEntity[\CCrmOwnerType::LeadName])
&& !empty($linkedEntity[\CCrmOwnerType::LeadName])
)
{
$linkedEntitiesValues[$fieldType][\CCrmOwnerType::LeadName] = Container::getInstance()
->getLeadBroker()
->getBunchByIds($linkedEntity[\CCrmOwnerType::LeadName])
;
}
if (
isset($linkedEntity[\CCrmOwnerType::ContactName])
&& !empty($linkedEntity[\CCrmOwnerType::ContactName])
)
{
$linkedEntitiesValues[$fieldType][\CCrmOwnerType::ContactName] = Container::getInstance()
->getContactBroker()
->getBunchByIds($linkedEntity[\CCrmOwnerType::ContactName])
;
}
if (
isset($linkedEntity[\CCrmOwnerType::CompanyName])
&& !empty($linkedEntity[\CCrmOwnerType::CompanyName])
)
{
$linkedEntitiesValues[$fieldType][\CCrmOwnerType::CompanyName] = Container::getInstance()
->getCompanyBroker()
->getBunchByIds($linkedEntity[\CCrmOwnerType::CompanyName])
;
}
if (
isset($linkedEntity[\CCrmOwnerType::DealName])
&& !empty($linkedEntity[\CCrmOwnerType::DealName])
)
{
$linkedEntitiesValues[$fieldType][\CCrmOwnerType::DealName] = Container::getInstance()
->getDealBroker()
->getBunchByIds($linkedEntity[\CCrmOwnerType::DealName])
;
}
if (
isset($linkedEntity[\CCrmOwnerType::OrderName])
&& !empty($linkedEntity[\CCrmOwnerType::OrderName])
)
{
$linkedEntitiesValues[$fieldType][\CCrmOwnerType::OrderName] = Container::getInstance()
->getOrderBroker()
->getBunchByIds($linkedEntity[\CCrmOwnerType::OrderName])
;
}
foreach ($linkedEntity as $entityTypeName => $entityIds)
{
if (
in_array($entityTypeName, [
\CCrmOwnerType::LeadName,
\CCrmOwnerType::DealName,
\CCrmOwnerType::ContactName,
\CCrmOwnerType::CompanyName,
\CCrmOwnerType::OrderName,
])
)
{
continue;
}
$entityTypeId = \CCrmOwnerType::ResolveID($entityTypeName);
if ($entityTypeId)
{
if (
!isset($linkedEntitiesValues[$fieldType])
|| !is_array($linkedEntitiesValues[$fieldType])
)
{
$linkedEntitiesValues[$fieldType] = [];
}
$linkedEntitiesValues[$fieldType][$entityTypeName] = Container::getInstance()
->getDynamicBroker()
->setEntityTypeId($entityTypeId)
->getBunchByIds($entityIds)
;
}
}
}