• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/binding/entitybinding.php
  • Класс: Bitrix\Crm\Binding\EntityBinding
  • Вызов: EntityBinding::normalizeEntityBindings
static function normalizeEntityBindings($entityTypeID, array &$bindings)
{
	if(!is_int($entityTypeID))
	{
		$entityTypeID = (int)$entityTypeID;
	}

	self::validateEntityTypeId($entityTypeID);

	$fieldName = self::resolveEntityFieldName($entityTypeID);

	$bindings = array_values($bindings);

	$effectiveBindings = array();
	$primaryBindingIndex = -1;
	for($i = 0, $l = count($bindings); $i < $l; $i++)
	{
		$binding = $bindings[$i];
		if(!is_array($binding))
		{
			continue;
		}

		$entityID = isset($binding[$fieldName]) ? (int)$binding[$fieldName] : 0;
		if($entityID <= 0)
		{
			continue;
		}

		if(!(isset($binding['SORT']) && $binding['SORT'] > 0))
		{
			$binding['SORT'] = ($i + 1) * 10;
		}

		if(isset($binding['IS_PRIMARY']))
		{
			if($binding['IS_PRIMARY'] === 'Y' && $primaryBindingIndex < 0)
			{
				$primaryBindingIndex = $i;
			}
			else
			{
				unset($binding['IS_PRIMARY']);
			}
		}
		$effectiveBindings[] = $binding;
	}

	if($primaryBindingIndex < 0 && count($effectiveBindings) > 0)
	{
		$effectiveBindings[0]['IS_PRIMARY'] = 'Y';
	}
	$bindings = $effectiveBindings;
}