• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/location/tree.php
  • Класс: BitrixSaleLocationTree
  • Вызов: Tree::getDeepestCommonParent
static function getDeepestCommonParent($nodeInfo = array(), $parameters = array())
{
	Assert::expectNotEmptyArray($nodeInfo, '$nodeInfo');

	$filter = array();

	$min = false;
	$max = false;
	foreach($nodeInfo as $node)
	{
		Assert::expectNotEmptyArray($node, '$nodeInfo[]');
		$node['LEFT_MARGIN'] = Assert::expectIntegerNonNegative($node['LEFT_MARGIN'], '$nodeInfo[][LEFT_MARGIN]');
		$node['RIGHT_MARGIN'] = Assert::expectIntegerPositive($node['RIGHT_MARGIN'], '$nodeInfo[][RIGHT_MARGIN]');

		if($min === false || $node['LEFT_MARGIN'] < $min)
			$min = $node['LEFT_MARGIN'];

		if($max === false || $node['RIGHT_MARGIN'] > $max)
			$max = $node['RIGHT_MARGIN'];
	}

	if(empty($parameters))
		$parameters = array();

	if(!is_array($parameters['order']))
		$parameters['order'] = array();

	$parameters['filter']['RIGHT_MARGIN'] = $max;

	$parameters['order'] = array_merge(array(
		'LEFT_MARGIN' => 'desc',
		'RIGHT_MARGIN' => 'asc'
	), $parameters['order']);

	$parameters['limit'] = 1;

	return static::getList($parameters);
}