• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/entityrequisite.php
  • Класс: Bitrix\Crm\EntityRequisite
  • Вызов: EntityRequisite::deleteByEntity
public function deleteByEntity($entityTypeId, $entityId, $options = array())
{
	$result = new Main\Result();

	$entityTypeId = (int)$entityTypeId;
	$entityId = (int)$entityId;

	//Usually check is disabled for suspended types (SuspendedContact and SuspendedCompany)
	$enableTypeCheck = !isset($options['enableCheck']) || $options['enableCheck'] === true;
	if ($enableTypeCheck && !self::checkEntityType($entityTypeId))
	{
		$result->addError(
			new Main\Error(
				GetMessage('CRM_REQUISITE_ERR_INVALID_ENTITY_TYPE'),
				self::ERR_INVALID_ENTITY_TYPE
			)
		);
		return $result;
	}

	if ($entityId <= 0)
	{
		$result->addError(
			new Main\Error(
				GetMessage('CRM_REQUISITE_ERR_INVALID_ENTITY_ID'),
				self::ERR_INVALID_ENTITY_ID
			)
		);
		return $result;
	}

	$res = $this->getList(
		array(
			'filter' => array(
				'=ENTITY_TYPE_ID' => $entityTypeId,
				'=ENTITY_ID' => $entityId
			),
			'select' => array('ID')
		)
	);
	$cnt = 0;
	while ($row = $res->fetch())
	{
		$cnt++;
		$delResult = $this->delete($row['ID']);
		if (!$delResult->isSuccess())
		{
			$result->addError(
				new Main\Error(
					GetMessage('CRM_REQUISITE_ERR_ON_DELETE', array('#ID#', $row['ID'])),
					self::ERR_ON_DELETE
				)
			);
		}
	}

	if ($cnt === 0)
	{
		$result->addError(
			new Main\Error(
				GetMessage('CRM_REQUISITE_ERR_NOTHING_TO_DELETE'),
				self::ERR_NOTHING_TO_DELETE
			)
		);
	}

	return $result;
}