• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integrity/duplicatemanager.php
  • Класс: Bitrix\Crm\Integrity\DuplicateManager
  • Вызов: DuplicateManager::prepareEntityListFilter
static function prepareEntityListFilter(array &$filter, array $comparisonData, $entityTypeID, $entityAlias = '')
{
	if($entityAlias === '')
	{
		$entityAlias = 'L';
	}

	$queries = array();
	foreach($comparisonData as $data)
	{
		$type = $data['TYPE'];
		$matches = $data['MATCHES'];
		$item = self::createCriterion($type, $matches);
		$item->setStrictComparison(isset($data['ENABLE_STRICT_MODE']) && $data['ENABLE_STRICT_MODE'] == true);
		$query = $item->prepareSearchQuery($entityTypeID, array('ENTITY_ID'))->getQuery();
		$queries[] = "({$query})";
	}

	if(!isset($filter['__JOINS']))
	{
		$filter['__JOINS'] = array();
	}

	$filter['__JOINS'][] = array(
		'TYPE' => 'INNER',
		'SQL' => 'INNER JOIN('.implode("\nUNION\n", $queries).') DP ON DP.ENTITY_ID = '.$entityAlias.'.ID'
	);
}