• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/order/builder/orderbuilder.php
  • Класс: BitrixSaleHelpersOrderBuilderOrderBuilder
  • Вызов: OrderBuilder::removeShipmentItems
protected function removeShipmentItems(BitrixSaleShipment $shipment, $products, $idsFromForm)
{
	$result = new Result();

	$shipmentItemCollection = $shipment->getShipmentItemCollection();

	/** @var BitrixSaleShipmentItem $shipmentItem */
	foreach ($shipmentItemCollection as $shipmentItem)
	{
		if (!array_key_exists($shipmentItem->getBasketCode(), $idsFromForm))
		{
			/** @var Result $r */
			$r = $shipmentItem->delete();
			if (!$r->isSuccess())
			{
				$result->addErrors($r->getErrors());
			}
		}

		$shipmentItemStoreCollection = $shipmentItem->getShipmentItemStoreCollection();
		if ($shipmentItemStoreCollection)
		{
			/** @var BitrixSaleShipmentItemStore $shipmentItemStore */
			foreach ($shipmentItemStoreCollection as $shipmentItemStore)
			{
				$shipmentItemId = $shipmentItemStore->getId();
				if (!isset($idsFromForm[$shipmentItem->getBasketCode()]['BARCODE_IDS'][$shipmentItemId]))
				{
					$delResult = $shipmentItemStore->delete();
					if (!$delResult->isSuccess())
					{
						$result->addErrors($delResult->getErrors());
					}
				}
			}
		}
	}

	return $result;
}