DuplicateManager::getSupportedDedupeTypes

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. DuplicateManager
  4. getSupportedDedupeTypes
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integrity/duplicatemanager.php
  • Класс: Bitrix\Crm\Integrity\DuplicateManager
  • Вызов: DuplicateManager::getSupportedDedupeTypes
static function getSupportedDedupeTypes($entityTypeID)
{
	$entityTypeID = (int)$entityTypeID;

	if($entityTypeID !== CCrmOwnerType::Lead
		&& $entityTypeID !== CCrmOwnerType::Contact
		&& $entityTypeID !== CCrmOwnerType::Company)
	{
		return array();
	}

	$result = array();
	if($entityTypeID === CCrmOwnerType::Lead || $entityTypeID === CCrmOwnerType::Contact)
	{
		$result = array_merge($result, DuplicatePersonCriterion::getSupportedDedupeTypes());
	}
	if($entityTypeID === CCrmOwnerType::Lead || $entityTypeID === CCrmOwnerType::Company)
	{
		$result = array_merge($result, DuplicateOrganizationCriterion::getSupportedDedupeTypes());
	}
	$result = array_merge($result, DuplicateCommunicationCriterion::getSupportedDedupeTypes());
	if ($entityTypeID === CCrmOwnerType::Contact || $entityTypeID === CCrmOwnerType::Company)
	{
		$result = array_merge(
			$result,
			DuplicateRequisiteCriterion::getSupportedDedupeTypes(),
			DuplicateBankDetailCriterion::getSupportedDedupeTypes()
		);
	}

	// Volatile types
	$volatileTypesByEntityId = [];
	$idsByEntityTypes = Volatile\TypeInfo::getInstance()->getIdsByEntityTypes([$entityTypeID]);
	if (is_array($idsByEntityTypes[$entityTypeID]))
	{
		foreach ($idsByEntityTypes[$entityTypeID] as $volatileTypeId)
		{
			$data = Volatile\Type\State::getInstance()->get($volatileTypeId)->getData();
			if (
				in_array(
					$data['stateId'],
					[
						Volatile\Type\State::STATE_ASSIGNED,
						Volatile\Type\State::STATE_INDEX,
						Volatile\Type\State::STATE_READY,
					],
					true
				)
			)
			{
				$volatileTypesByEntityId[] = $volatileTypeId;
			}
		}
	}

	return array_merge($result, $volatileTypesByEntityId);
}

Добавить комментарий