- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/matchhashdedupedatasource.php
- Класс: Bitrix\Crm\Integrity\MatchHashDedupeDataSource
- Вызов: MatchHashDedupeDataSource::getTotalCount
public function getTotalCount() { $subQuery = new Main\Entity\Query(Entity\DuplicateEntityMatchHashTable::getEntity()); $subQuery->addGroup('MATCH_HASH'); $subQuery->registerRuntimeField('', new Main\Entity\ExpressionField('QTY', 'COUNT(*)')); $subQuery->addFilter('>QTY', 1); $typeID = $this->typeID; $entityTypeID = $this->getEntityTypeID(); $scope = $this->getScope(); $enablePermissionCheck = $this->isPermissionCheckEnabled(); $subQuery->addFilter('=ENTITY_TYPE_ID', $entityTypeID); $subQuery->addFilter('=TYPE_ID', $typeID); if ($scope === DuplicateIndexType::DEFAULT_SCOPE) { $subQuery->addFilter('=SCOPE', DuplicateIndexType::DEFAULT_SCOPE); } else { $subQuery->addFilter('@SCOPE', array(DuplicateIndexType::DEFAULT_SCOPE, $scope)); } if($enablePermissionCheck) { $permissionSql = $this->preparePermissionSql(); if($permissionSql === false) { //Access denied; return 0; } if($permissionSql !== '') { $subQuery->addFilter('@ENTITY_ID', new Main\DB\SqlExpression($permissionSql)); } } $query = new Main\Entity\Query($subQuery); $query->registerRuntimeField('', new Main\Entity\ExpressionField('QTY', 'COUNT(*)')); $query->addSelect('QTY'); $fields = $query->exec()->fetch(); return is_array($fields) && isset($fields['QTY']) ? (int)$fields['QTY'] : 0; }