• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/order/builder/orderbuilder.php
  • Класс: BitrixSaleHelpersOrderBuilderOrderBuilder
  • Вызов: OrderBuilder::removeShipments
protected function removeShipments()
{
	if($this->getSettingsContainer()->getItemValue('deleteShipmentIfNotExists'))
	{
		$shipmentCollection = $this->order->getShipmentCollection();

		$shipmentIds = [];
		foreach($this->formData["SHIPMENT"] as $shipmentData)
		{
			if(!isset($shipmentData['ID']))
				continue;

			$shipment = $shipmentCollection->getItemById($shipmentData['ID']);

			if ($shipment == null)
				continue;

			$shipmentIds[] = $shipment->getId();
		}

		foreach ($shipmentCollection as $shipment)
		{
			if($shipment->isSystem())
				continue;

			if(!in_array($shipment->getId(), $shipmentIds))
			{
				$r = $shipment->delete();
				if (!$r->isSuccess())
				{
					$this->errorsContainer->addErrors($r->getErrors());
					return false;
				}
			}
		}
	}
	return true;
}