• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/archive/recovery/firstschemebuilder.php
  • Класс: BitrixSaleArchiveRecoveryFirstSchemeBuilder
  • Вызов: FirstSchemeBuilder::riseShipment
protected function riseShipment(array $shipmentCollectionArchived, array $basketItemsMap, array $itemsStoreMap = [])
{
	/** @var SaleShipmentCollection $shipmentCollection */
	$shipmentCollection = $this->order->getShipmentCollection();
	foreach ($shipmentCollectionArchived as $oldShipment)
	{
		$oldShipmentCollections = $oldShipment['SHIPMENT_ITEM'];
		unset($oldShipment['SHIPMENT_ITEM']);
		/** @var SaleShipment $newShipmentItem */
		$newShipmentItem = $shipmentCollection->createItem();
		$newShipmentItemCollection = $newShipmentItem->getShipmentItemCollection();
		if (is_array($oldShipmentCollections))
		{
			foreach ($oldShipmentCollections as $oldItemStore)
			{
				$basketItemId = $oldItemStore['BASKET_ID'];

				if (empty($basketItemsMap[$basketItemId]))
					continue;

				/** @var SaleShipmentItem $shipmentItem */
				$shipmentItem = $newShipmentItemCollection->createItem($basketItemsMap[$basketItemId]);
				$shipmentItem->setFieldsNoDemand($oldItemStore);
				$shipmentItemStoreCollection = $shipmentItem->getShipmentItemStoreCollection();
				if ($shipmentItemStoreCollection)
				{
					/** @var SaleShipmentItemStore $itemStore */
					$itemStore = $shipmentItemStoreCollection->createItem($basketItemsMap[$basketItemId]);
					$oldBasketBarcodeData = $itemsStoreMap[$basketItemId][$oldItemStore['ID']];
					if (is_array($oldBasketBarcodeData) && empty($oldBasketBarcodeData))
					{
						$itemStore->setFieldsNoDemand($oldBasketBarcodeData);
					}
				}
			}
		}

		$newShipmentItem->setFieldsNoDemand($oldShipment);
	}
}