• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/controller/activity/binding.php
  • Класс: Bitrix\Crm\Controller\Activity\Binding
  • Вызов: Binding::deleteAction
public function deleteAction(int $activityId, int $entityTypeId, int $entityId): ?bool
{
	if (!$this->doesActivityExist($activityId))
	{
		return null;
	}

	if (!$this->canEdit($entityTypeId, $entityId))
	{
		$this->addError(\Bitrix\Crm\Controller\ErrorCode::getAccessDeniedError());

		return null;
	}

	$bindings = $this->getExistingBindings($activityId);
	if (is_null($bindings))
	{
		return null;
	}

	$bindingFound = false;
	foreach ($bindings as $iterator => $binding)
	{
		if (
			(int)$binding['OWNER_TYPE_ID'] === $entityTypeId
			&& (int)$binding['OWNER_ID'] === $entityId
		)
		{
			unset($bindings[$iterator]);
			$bindingFound = true;

			break;
		}
	}
	if (!$bindingFound)
	{
		$this->addError(new Error(
			Loc::getMessage('CRM_ACTIVITY_BINDING_NOT_BOUND_ERROR'),
			'BINDING_NOT_FOUND'
		));

		return null;
	}
	if (!count($bindings))
	{
		$this->addError(new Error(
			Loc::getMessage('CRM_ACTIVITY_BINDING_LAST_BINDING_ERROR'),
			'LAST_BINDING_CANNOT_BE_DELETED'
		));

		return null;
	}

	return $this->updateBindings($activityId, $bindings);
}