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