• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/shipmentcollection.php
  • Класс: BitrixSaleShipmentCollection
  • Вызов: ShipmentCollection::tryReserve
public function tryReserve()
{
	$result = new Result();

	/** @var Shipment $shipment */
	foreach ($this->collection as $shipment)
	{
		if ($shipment->isReserved() || $shipment->isShipped())
			continue;

		$r = $shipment->tryReserve();
		if (!$r->isSuccess())
		{
			$result->addErrors($r->getErrors());
		}
		elseif ($r->hasWarnings())
		{
			$result->addWarnings($r->getWarnings());

			$registry = Registry::getInstance(static::getRegistryType());
			/** @var EntityMarker $entityMarker */
			$entityMarker = $registry->getEntityMarkerClassName();
			$entityMarker::addMarker($this->getOrder(), $shipment, $r);
			if (!$shipment->isSystem())
			{
				$shipment->setField('MARKED', 'Y');
			}
		}
	}
	return $result;
}