- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/duplicateorganizationcriterion.php
- Класс: Bitrix\Crm\Integrity\DuplicateOrganizationCriterion
- Вызов: DuplicateOrganizationCriterion::find
public function find($entityTypeID = \CCrmOwnerType::Undefined, $limit = 50)
{
if($this->title === '')
{
//Invalid Operation?
return null;
}
if(!is_int($entityTypeID))
{
throw new Main\ArgumentTypeException('entityTypeID', 'integer');
}
if(!is_int($limit))
{
throw new Main\ArgumentTypeException('limit', 'integer');
}
$filter = array();
if($this->useStrictComparison)
{
$filter['=TITLE'] = $this->title;
}
else
{
$filter['=%TITLE'] = "{$this->title}%";
}
if(\CCrmOwnerType::IsDefined($entityTypeID))
{
$filter['ENTITY_TYPE_ID'] = $entityTypeID;
}
$listParams = $this->applyEntityCategoryFilter($entityTypeID, [
'select' => ['ENTITY_TYPE_ID', 'ENTITY_ID'],
'order' => [
'ENTITY_TYPE_ID' => $this->sortDescendingByEntityTypeId ? 'DESC' : 'ASC',
'ENTITY_ID' => 'ASC'
],
'filter' => $filter,
'limit' => $limit,
]);
$dbResult = DuplicateOrganizationMatchCodeTable::getList($listParams);
$entities = array();
while($fields = $dbResult->fetch())
{
$entityTypeID = isset($fields['ENTITY_TYPE_ID']) ? intval($fields['ENTITY_TYPE_ID']) : 0;
$entityID = isset($fields['ENTITY_ID']) ? intval($fields['ENTITY_ID']) : 0;
if(\CCrmOwnerType::IsDefined($entityTypeID) && $entityID > 0)
{
$entities[] = new DuplicateEntity($entityTypeID, $entityID);
}
}
return !empty($entities) ? new Duplicate($this, $entities) : null;
}