• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integrity/entity/duplicateindex.php
  • Класс: Bitrix\Crm\Integrity\Entity\DuplicateIndexTable
  • Вызов: DuplicateIndexTable::deleteByFilter
static function deleteByFilter(array $filter)
{
	$connection = Main\Application::getConnection();
	$sqlHelper = $connection->getSqlHelper();

	$conditions = array();
	if (isset($filter['USER_ID']))
	{
		$userID = intval($filter['USER_ID']);
		$conditions[] = "USER_ID = {$userID}";
	}

	if (isset($filter['ENTITY_TYPE_ID']))
	{
		$entityTypeID = intval($filter['ENTITY_TYPE_ID']);
		$conditions[] = "ENTITY_TYPE_ID = {$entityTypeID}";
	}

	if (isset($filter['TYPE_ID']))
	{
		$typeID = intval($filter['TYPE_ID']);
		$conditions[] = "TYPE_ID = {$typeID}";
	}

	if (isset($filter['SCOPE']))
	{
		$scope = $sqlHelper->forSql($filter['SCOPE']);
		$conditions[] = "SCOPE = '{$scope}'";
	}

	if (isset($filter['MATCH_HASH']))
	{
		$matchHash = $sqlHelper->forSql($filter['MATCH_HASH']);
		$conditions[] = "MATCH_HASH = '{$matchHash}'";
	}

	if (isset($data['QUANTITY']))
	{
		$quantity = intval($filter['QUANTITY']);
		$conditions[] = "QUANTITY = {$quantity}";
	}

	if (!empty($conditions))
	{
		$conditionSql = implode(' AND ', $conditions);
		Main\Application::getConnection()->queryExecute("DELETE FROM  b_crm_dp_index WHERE {$conditionSql}");
	}
}