- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/recycling/dealbinder.php
- Класс: Bitrix\Crm\Recycling\DealBinder
- Вызов: DealBinder::unbindEntity
public function unbindEntity($associatedEntityTypeID, array $associatedEntityIDs, $entityID)
{
if(empty($associatedEntityIDs))
{
return;
}
$entity = new \CCrmDeal(false);
if($associatedEntityTypeID === \CCrmOwnerType::Company)
{
$fields = array('COMPANY_ID' => 0);
$entity->Update(
$entityID,
$fields,
false,
false,
$this->getUnbindUpdateOptions((int)$associatedEntityTypeID, $associatedEntityIDs),
);
}
elseif($associatedEntityTypeID === \CCrmOwnerType::Contact)
{
$bindings = Crm\Binding\DealContactTable::getDealBindings($entityID);
foreach($associatedEntityIDs as $associatedEntityID)
{
Crm\Binding\EntityBinding::removeEntityBinding(\CCrmOwnerType::Contact, $associatedEntityID, $bindings);
}
if(!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, $associatedEntityIDs),
);
}
else
{
$entityTypeName = \CCrmOwnerType::ResolveName($associatedEntityTypeID);
throw new Main\NotSupportedException("Entity '{$entityTypeName}' not supported in current context.");
}
}