- Модуль: 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;
}