• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integrity/duplicaterequisitecriterion.php
  • Класс: Bitrix\Crm\Integrity\DuplicateRequisiteCriterion
  • Вызов: DuplicateRequisiteCriterion::prepareBulkData
static function prepareBulkData(array $requisites)
{
	$result = array();

	$presetCountryMap = array();
	$rqFieldsMap = self::getFieldsMap();

	foreach ($requisites as $requisiteFields)
	{
		$countryId = 0;
		if (isset($requisiteFields['PRESET_COUNTRY_ID']))
		{
			$countryId = (int)$requisiteFields['PRESET_COUNTRY_ID'];
		}
		else if (isset($requisiteFields['PRESET_ID']))
		{
			$presetId = (int)$requisiteFields['PRESET_ID'];
			if ($presetId > 0)
			{
				if (isset($presetCountryMap[$presetId]))
				{
					$countryId = $presetCountryMap[$presetId];
				}
				else
				{
					$preset = new EntityPreset();
					$presetInfo = $preset->getById($presetId);
					if (is_array($presetInfo) && isset($presetInfo['COUNTRY_ID']))
						$countryId = $presetCountryMap[$presetId] = (int)$presetInfo['COUNTRY_ID'];
				}
			}
			unset($presetId);
		}

		if ($countryId > 0)
		{
			if (is_array($rqFieldsMap[$countryId] ?? null))
			{
				foreach ($rqFieldsMap[$countryId] as $rqFieldName)
				{
					if (isset($requisiteFields[$rqFieldName]) && !empty($requisiteFields[$rqFieldName]))
					{
						if (!is_array($result[$countryId] ?? null))
							$result[$countryId] = [];
						if (!is_array($result[$countryId][$rqFieldName] ?? null))
							$result[$countryId][$rqFieldName] = [];
						$result[$countryId][$rqFieldName][] = $requisiteFields[$rqFieldName];
					}
				}
			}
		}
	}

	return $result;
}