- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/recycling/leadbinder.php
- Класс: Bitrix\Crm\Recycling\LeadBinder
- Вызов: LeadBinder::unbindEntities
public function unbindEntities($associatedEntityTypeID, $associatedEntityID, array $entityIDs)
{
if(empty($entityIDs))
{
return;
}
$entity = new \CCrmLead(false);
if($associatedEntityTypeID === \CCrmOwnerType::Company)
{
foreach($entityIDs as $entityID)
{
$fields = array('COMPANY_ID' => 0);
$entity->Update(
$entityID,
$fields,
false,
false,
$this->getUnbindUpdateOptions((int)$associatedEntityTypeID, [$associatedEntityID]),
);
}
}
elseif($associatedEntityTypeID === \CCrmOwnerType::Contact)
{
$bindingMap = Crm\Binding\LeadContactTable::getBulkLeadBindings($entityIDs);
foreach($bindingMap as $entityID => $bindings)
{
Crm\Binding\EntityBinding::removeEntityBinding(\CCrmOwnerType::Contact, $associatedEntityID, $bindings);
if(!empty($bindings) && !Crm\Binding\EntityBinding::findPrimaryBinding($bindings))
{
Crm\Binding\EntityBinding::markFirstAsPrimary($bindings);
}
$fields = array('CONTACT_BINDINGS' => $bindings);
$entity->Update(
$entityID,
$fields,
false,
false,
$this->getUnbindUpdateOptions((int)$associatedEntityTypeID, [$associatedEntityID]),
);
}
}
else
{
$entityTypeName = \CCrmOwnerType::ResolveName($associatedEntityTypeID);
throw new Main\NotSupportedException("Entity '{$entityTypeName}' not supported in current context.");
}
}