• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/entity/orderimport.php
  • Класс: BitrixSaleExchangeEntityOrderImport
  • Вызов: OrderImport::calculateDeltaQuantity
public function calculateDeltaQuantity(SaleBasket $basket, array $basketItems)
    {
        $basketItemsIndexQuantityList = array();

        /** @var BitrixSaleBasketItem $basketItem */
        foreach ($basket as $basketItem)
        {
            $basketItemsIndexQuantityList[$basketItem->getId()] = $basketItem->getQuantity();
        }

        if(!empty($basketItems) && is_array($basketItems))
        {
            foreach($basketItems as $items)
            {
                foreach($items as $productXML_ID => $item)
                {
                    if($basketItem = static::getBasketItemByItem($basket, $item))
                    {
                        if(isset($basketItemsIndexQuantityList[$basketItem->getId()]))
                        {
                            if($basketItemsIndexQuantityList[$basketItem->getId()] <= $item['QUANTITY'])
                            {
                                unset($basketItemsIndexQuantityList[$basketItem->getId()]);
                            }
                            else
                            {
                                $basketItemsIndexQuantityList[$basketItem->getId()] -= $item['QUANTITY'];
                            }
                        }
                    }
                }
            }
        }

        return $basketItemsIndexQuantityList;
    }