• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/providerbuilderbase.php
  • Класс: BitrixSaleInternalsProviderBuilderBase
  • Вызов: ProviderBuilderBase::createItemsResultAfterDeliver
public function createItemsResultAfterDeliver(SaleResult $resultAfterDeliver)
{
	$result = new SaleResult();
	$resultList = array();
	$products = $this->getItems();

	if (empty($products))
	{
		return $result;
	}

	$resultDeliverData = $resultAfterDeliver->getData();

	foreach ($products as $productId => $productData)
	{
		$providerName = $this->getProviderName();
		if (empty($resultDeliverData['DELIVER_PRODUCTS_LIST']) ||
			empty($resultDeliverData['DELIVER_PRODUCTS_LIST'][$providerName]) ||
			!array_key_exists($productId, $resultDeliverData['DELIVER_PRODUCTS_LIST'][$providerName]))
		{
			continue;
		}

		if (empty($productData['SHIPMENT_ITEM_LIST']))
		{
			continue;
		}

		/**
		 * @var int $shipmentItemIndex
		 * @var SaleShipmentItem $shipmentItem
		 */
		foreach ($productData['SHIPMENT_ITEM_LIST'] as $shipmentItemIndex => $shipmentItem)
		{
			$basketItem = $shipmentItem->getBasketItem();

			if (!$basketItem)
			{
				throw new MainObjectNotFoundException('Entity "BasketItem" not found');
			}

			$resultList[$basketItem->getBasketCode()] = $resultDeliverData['DELIVER_PRODUCTS_LIST'][$providerName][$productId];
		}
	}

	if (!empty($resultList))
	{
		$result->setData(
			array(
				'RESULT_AFTER_DELIVER_LIST' => $resultList
			)
		);
	}

	return $result;
}