• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/ProductGrid/Enricher/CompleteBasketFields.php
  • Класс: BitrixCrmMobileProductGridEnricherCompleteBasketFields
  • Вызов: CompleteBasketFields::enrich
public function enrich(array $rows): array
{
	$productManager = new ProductManager(
		$this->entity->getEntityTypeId(),
		$this->entity->getId()
	);

	$orderId = $this->getOrderId();
	if (!is_null($orderId))
	{
		$order = Order::load($orderId);
		if (!is_null($order))
		{
			$productManager->setOrder($order);
		}
	}

	$payableItems = $productManager->getPayableItems();

	$result = [];

	foreach ($rows as $row)
	{
		$payableItem = $this->getPayableItem($row->toArray(), $payableItems);
		if (is_null($payableItem))
		{
			continue;
		}

		$row->source['QUANTITY'] = $payableItem['QUANTITY'];

		$originBasketCode = '';
		if (mb_strpos((string)$payableItem['BASKET_CODE'], 'n') === false)
		{
			$originBasketCode = $payableItem['BASKET_CODE'];
		}

		$basketItemFields = [
			'BASKET_CODE' => $payableItem['BASKET_CODE'],
			'XML_ID' => $payableItem['XML_ID'],
			'MODULE' => $payableItem['MODULE'],
			'ADDITIONAL_FIELDS' => [
				'ORIGIN_BASKET_ID' => $originBasketCode,
				'ORIGIN_PRODUCT_ID' => $row->getProductId(),
			],
		];
		$row->basketItemFields = $basketItemFields;

		$result[] = $row;
	}

	return $result;
}