- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/companyduplicatechecker.php
- Класс: Bitrix\Crm\Integrity\CompanyDuplicateChecker
- Вызов: CompanyDuplicateChecker::findDuplicates
public function findDuplicates(Crm\EntityAdapter $adapter, DuplicateSearchParams $params)
{
$result = array();
$fieldNames = $params->getFieldNames();
$processAllFields = empty($fieldNames);
$title = ($processAllFields || in_array('TITLE', $fieldNames, true)) ? $adapter->getFieldValue('TITLE', '') : '';
if($title !== '')
{
$criterion = new DuplicateOrganizationCriterion($title);
$criterion->setCategoryId($params->getCategoryId());
$criterion->setStrictComparison($this->useStrictComparison);
$duplicate = $criterion->find($params->getEntityTypeId() ?? \CCrmOwnerType::Undefined);
if($duplicate !== null)
{
$result[] = $duplicate;
}
}
if($processAllFields || in_array('FM.PHONE', $fieldNames, true))
{
$phones = $this->findMultifieldDuplicates('PHONE', $adapter, $params);
if(!empty($phones))
{
$result = array_merge($result, $phones);
}
}
if($processAllFields || in_array('FM.EMAIL', $fieldNames, true))
{
$email = $this->findMultifieldDuplicates('EMAIL', $adapter, $params);
if(!empty($email))
{
$result = array_merge($result, $email);
}
}
$requisites = $this->findRequisiteDuplicates($adapter, $params);
if (!empty($requisites))
{
$result = array_merge($result, $requisites);
}
$bankDetails = $this->findBankDetailDuplicates($adapter, $params);
if (!empty($bankDetails))
{
$result = array_merge($result, $bankDetails);
}
return $result;
}