• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/compatible/ordercompatibility.php
  • Класс: BitrixSaleCompatibleOrderCompatibility
  • Вызов: OrderCompatibility::allowDelivery
static function allowDelivery($id, $value)
{
	$result = new SaleResult();

	$registry = SaleRegistry::getInstance(static::getRegistryType());

	/** @var SaleOrder $orderClassName */
	$orderClassName = $registry->getOrderClassName();
	if ($order = $orderClassName::load($id))
	{
		/** @var SaleShipmentCollection $shipmentCollection */
		if(!$shipmentCollection = $order->getShipmentCollection())
		{
			throw new MainObjectNotFoundException('Entity "ShipmentCollection" not found');
		}

		/** @var SaleShipment $shipment */
		foreach ($shipmentCollection as $shipment)
		{
			if ($shipment->isSystem())
				continue;

			/** @var SaleResult $r */
			$r = $shipment->setField('ALLOW_DELIVERY', $value === true ? 'Y' : 'N');
			if (!$r->isSuccess())
			{
				$result->addErrors($r->getErrors());
				return $result;
			}
		}
	}


	/** @var SaleResult $r */
	$r = $order->save();
	if (!$r->isSuccess())
	{
		$result->addErrors($r->getErrors());
	}

	return $result;
}