• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/shipmentrules.php
  • Класс: BitrixSaleInternalsShipmentRules
  • Вызов: ShipmentRules::createOrderRuleMap
static function createOrderRuleMap(SaleOrder $order, PoolQuantity $pool)
{
	$resultList = array();

	$productPool = ItemsPool::getPoolByCode($order->getInternalId());
	if (empty($productPool))
	{
		return $resultList;
	}

	foreach ($productPool as $productId => $itemList)
	{
		foreach ($itemList as $item)
		{
			if ($item instanceof SaleShipmentItem)
			{
				$itemRule = static::createReserveRuleForShipmentItem($item, $pool);
				if (!empty($itemRule) && is_array($itemRule))
				{
					$resultList[] = $itemRule;
				}

				$itemRule = static::createShipRule($item, $pool);
				if (!empty($itemRule) && is_array($itemRule))
				{
					$resultList[] = $itemRule;
				}
			}
			elseif ($item instanceof SaleReserveQuantity)
			{
				$itemRule = static::createReserveRule($item, $pool, $productId);
				if (!empty($itemRule) && is_array($itemRule))
				{
					$resultList[] = $itemRule;
				}
			}
		}
	}

	return $resultList;
}