• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/mailmanager.php
  • Класс: Bitrix\Crm\Integration\MailManager
  • Вызов: MailManager::resolveItem
static function resolveItem(array $commonOptions): array
{
	$entityTypeId = \CCrmOwnerType::Undefined;
	if (isset($commonOptions['ADDITIONAL_FIELDS']['ROOT_SOURCE']['ENTITY_TYPE_ID']))
	{
		$entityTypeId = (int)$commonOptions['ADDITIONAL_FIELDS']['ROOT_SOURCE']['ENTITY_TYPE_ID'];
	}

	$entityId = 0;
	if (isset($commonOptions['ADDITIONAL_FIELDS']['ROOT_SOURCE']['ENTITY_ID']))
	{
		$entityId = (int)$commonOptions['ADDITIONAL_FIELDS']['ROOT_SOURCE']['ENTITY_ID'];
	}

	if (!\CCrmOwnerType::IsDefined($entityTypeId) || $entityId <= 0)
	{
		if (
			!empty($commonOptions['ADDITIONAL_FIELDS']['BINDINGS'])
			&& is_array($commonOptions['ADDITIONAL_FIELDS']['BINDINGS'])
		)
		{
			$binding = reset($commonOptions['ADDITIONAL_FIELDS']['BINDINGS']);

			$entityTypeId = (int)($binding['OWNER_TYPE_ID'] ?? $entityTypeId);
			$entityId = (int)($binding['OWNER_ID'] ?? $entityId);
		}
	}

	return [$entityTypeId, $entityId];
}