• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integrity/duplicateindexmismatch.php
  • Класс: Bitrix\Crm\Integrity\DuplicateIndexMismatch
  • Вызов: DuplicateIndexMismatch::prepareQueryField
static function prepareQueryField(DuplicateCriterion $criterion, $entityTypeID, $entityID, $userID)
{
	$typeID = $criterion->getIndexTypeID();
	$matchHash = $criterion->getMatchHash();

	$sql = array();

	$query = new Main\Entity\Query(Entity\DuplicateIndexMismatchTable::getEntity());
	$query->addSelect('R_ENTITY_ID', 'ENTITY_ID');
	$query->addFilter('=USER_ID', $userID);
	$query->addFilter('=ENTITY_TYPE_ID', $entityTypeID);
	$query->addFilter('=TYPE_ID', $typeID);
	$query->addFilter('=MATCH_HASH', $matchHash);
	$query->addFilter('=L_ENTITY_ID', $entityID);

	$sql[] = $query->getQuery();

	$query = new Main\Entity\Query(Entity\DuplicateIndexMismatchTable::getEntity());
	$query->addSelect('L_ENTITY_ID', 'ENTITY_ID');
	$query->addFilter('=USER_ID', $userID);
	$query->addFilter('=ENTITY_TYPE_ID', $entityTypeID);
	$query->addFilter('=TYPE_ID', $typeID);
	$query->addFilter('=MATCH_HASH', $matchHash);
	$query->addFilter('=R_ENTITY_ID', $entityID);

	$sql[] = $query->getQuery();
	return new Main\DB\SqlExpression(implode(' UNION ALL ', $sql));
}