• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recycling/dealbinder.php
  • Класс: Bitrix\Crm\Recycling\DealBinder
  • Вызов: DealBinder::unbindEntities
public function unbindEntities($associatedEntityTypeID, $associatedEntityID, array $entityIDs)
{
	if(empty($entityIDs))
	{
		return;
	}

	$entity = new \CCrmDeal(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\DealContactTable::getBulkDealBindings($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.");
	}
}