• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/documentgenerator/dataprovider/shipment.php
  • Класс: Bitrix\Crm\Integration\DocumentGenerator\DataProvider\Shipment
  • Вызов: Shipment::loadProductsData
protected function loadProductsData()
{
	$result = [];
	$orderId = $this->getOrderId();
	if ($this->shipment && $orderId > 0)
	{
		$shipmentItems = [];
		foreach ($this->shipment->getShipmentItemCollection() as $shipmentItem)
		{
			/** @var ShipmentItem $shipmentItem */
			$basketId = $shipmentItem->getBasketId();
			$shipmentItems[$basketId] = $shipmentItem->getQuantity();
		}
		if (empty($shipmentItems))
		{
			return $result;
		}
		$dbRes = BasketTable::getList([
			'filter' => [
				'=ORDER_ID' => $orderId,
				'@ID' => array_keys($shipmentItems),
			],
		]);

		while($basketItem = $dbRes->fetch())
		{
			$product = Order::getProductProviderDataByBasketItem(
				$basketItem,
				new ItemIdentifier(
					\CCrmOwnerType::Order,
					$orderId
				),
				$this->data['CURRENCY'] ?? \CCrmCurrency::GetDefaultCurrencyID()
			);

			$product['QUANTITY'] = (float) ($shipmentItems[(int)$basketItem['ID']]);
			$result[] = $product;
		}
	}

	return $result;
}