Beispiel #1
0
 $fieldNames = array();
 if ($enableDupCtrlByPerson) {
     $fieldNames[] = 'NAME';
     $fieldNames[] = 'SECOND_NAME';
     $fieldNames[] = 'LAST_NAME';
 }
 if ($enableDupCtrlByOrganization) {
     $fieldNames[] = 'COMPANY_TITLE';
 }
 if ($enableDupCtrlByPhone) {
     $fieldNames[] = 'FM.PHONE';
 }
 if ($enableDupCtrlByEmail) {
     $fieldNames[] = 'FM.EMAIL';
 }
 $adapter = \Bitrix\Crm\EntityAdapterFactory::create($arLead, CCrmOwnerType::Lead);
 $dups = $dupChecker->findDuplicates($adapter, new \Bitrix\Crm\Integrity\DuplicateSearchParams($fieldNames));
 $dupIDs = array();
 foreach ($dups as &$dup) {
     /** @var \Bitrix\Crm\Integrity\Duplicate $dup */
     if (empty($dupIDs)) {
         $dupIDs = $dup->getEntityIDsByType(CCrmOwnerType::Lead);
     } else {
         $dupIDs = array_intersect($dupIDs, $dup->getEntityIDsByType(CCrmOwnerType::Lead));
     }
 }
 unset($dup);
 if (!empty($dupIDs)) {
     $isDuplicate = true;
     if ($dupCtrlType !== 'SKIP') {
         $dupItems = array();
Beispiel #2
0
             if (is_string($phone) && $phone !== '') {
                 $fields['FM']['PHONE'][] = array('VALUE' => $phone);
             }
         }
     }
     if ($hasEmails) {
         $fieldNames[] = 'FM.EMAIL';
         $fields['FM']['EMAIL'] = array();
         foreach ($emails as $email) {
             if (is_string($email) && $email !== '') {
                 $fields['FM']['EMAIL'][] = array('VALUE' => $email);
             }
         }
     }
 }
 $adapter = \Bitrix\Crm\EntityAdapterFactory::create($fields, CCrmOwnerType::Company);
 $dups = $checker->findDuplicates($adapter, new \Bitrix\Crm\Integrity\DuplicateSearchParams($fieldNames));
 $entityInfoByType = array();
 foreach ($dups as &$dup) {
     /** @var \Bitrix\Crm\Integrity\Duplicate $dup */
     $entities = $dup->getEntities();
     if (!(is_array($entities) && !empty($entities))) {
         continue;
     }
     //Each entity type limited by 50 items
     foreach ($entities as &$entity) {
         /** @var \Bitrix\Crm\Integrity\DuplicateEntity $entity */
         $entityTypeID = $entity->getEntityTypeID();
         $entityID = $entity->getEntityID();
         if (!isset($entityInfoByType[$entityTypeID])) {
             $entityInfoByType[$entityTypeID] = array($entityID => array());