- Модуль: 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));
}