- Модуль: 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);
}