• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discount.php
  • Класс: BitrixSaleDiscount
  • Вызов: Discount::loadShipment
protected function loadShipment()
{
	$result = new Result;
	if (!$this->isOrderExists())
		return $result;
	if (!$this->isShipmentExists())
	{
		$loadDelivery = false;
		/** @var Order $order */
		$order = $this->getOrder();
		/** @var ShipmentCollection $orderShipmentList */
		$orderShipmentList = $order->getShipmentCollection();
		/** @var Shipment $shipment */
		if ($this->isOrderNew())
		{
			foreach ($orderShipmentList as $shipment)
			{
				if ($shipment->isSystem())
					continue;

				if (!$loadDelivery)
				{
					$this->shipment = $shipment;
					$loadDelivery = true;
					break;
				}
			}
		}
		else
		{
			$shipmentId = false;
			foreach ($orderShipmentList as $shipment)
			{
				if ($shipment->isSystem())
					continue;

				$currentShipmentId = (int)$shipment->getId();
				if ($shipmentId === false || $shipmentId > $currentShipmentId)
					$shipmentId = $currentShipmentId;
			}
			unset($currentShipmentId, $shipment);
			if (!empty($shipmentId))
			{
				$this->shipment = $orderShipmentList->getItemById($shipmentId);
				$loadDelivery = true;
			}
			unset($shipmentId);
		}
		unset($loadDelivery);
	}
	return $result;
}