Ejemplo n.º 1
0
 $entityTypeID = CCrmOwnerType::ResolveID($entityTypeName);
 if ($entityTypeID === CCrmOwnerType::Undefined) {
     __CrmDedupeListEndResonse(array('ERROR' => 'Entity type is not specified.'));
 }
 if ($entityTypeID !== CCrmOwnerType::Lead && $entityTypeID !== CCrmOwnerType::Contact && $entityTypeID !== CCrmOwnerType::Company) {
     __CrmDedupeListEndResonse(array('ERROR' => "Entity type '{$entityTypeName}' is not supported in current context."));
 }
 $leftEntityID = isset($_POST['LEFT_ENTITY_ID']) ? (int) $_POST['LEFT_ENTITY_ID'] : 0;
 if ($leftEntityID <= 0) {
     __CrmDedupeListEndResonse(array('ERROR' => 'Left entity ID is not is not specified.'));
 }
 $rightEntityID = isset($_POST['RIGHT_ENTITY_ID']) ? (int) $_POST['RIGHT_ENTITY_ID'] : 0;
 if ($rightEntityID <= 0) {
     __CrmDedupeListEndResonse(array('ERROR' => 'Right entity ID is not is not specified.'));
 }
 $typeID = isset($_POST['INDEX_TYPE_NAME']) ? Integrity\DuplicateIndexType::resolveID($_POST['INDEX_TYPE_NAME']) : Integrity\DuplicateIndexType::UNDEFINED;
 if (!Integrity\DuplicateIndexType::isDefined($typeID)) {
     __CrmDedupeListEndResonse(array('ERROR' => 'Index type ID is not specified or invalid.'));
 }
 $enablePermissionCheck = !CCrmPerms::IsAdmin($currentUserID);
 $merger = Merger\EntityMerger::create($entityTypeID, $currentUserID, $enablePermissionCheck);
 $leftEntityMatches = isset($_POST['LEFT_ENTITY_INDEX_MATCHES']) && is_array($_POST['LEFT_ENTITY_INDEX_MATCHES']) ? $_POST['LEFT_ENTITY_INDEX_MATCHES'] : array();
 $leftEntityCriterion = Integrity\DuplicateManager::createCriterion($typeID, $leftEntityMatches);
 $rightEntityMatches = isset($_POST['RIGHT_ENTITY_INDEX_MATCHES']) && is_array($_POST['RIGHT_ENTITY_INDEX_MATCHES']) ? $_POST['RIGHT_ENTITY_INDEX_MATCHES'] : array();
 if (empty($rightEntityMatches)) {
     $rightEntityMatches = $leftEntityMatches;
 }
 $rightEntityCriterion = Integrity\DuplicateManager::createCriterion($typeID, $rightEntityMatches);
 try {
     $merger->registerCriterionMismatch($rightEntityCriterion, $leftEntityID, $rightEntityID);
     $builder = Integrity\DuplicateManager::createIndexBuilder($typeID, $entityTypeID, $currentUserID, $enablePermissionCheck);