• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/update/order/dealgenerator.php
  • Класс: Bitrix\Crm\Update\Order\DealGenerator
  • Вызов: DealGenerator::fillPayableCollection
protected function fillPayableCollection(Crm\Order\Order $order) : bool
{
	$paymentCollection = $order->getPaymentCollection();
	if (
		$paymentCollection->count() === 0
		|| $paymentCollection->count() > 1
	)
	{
		return false;
	}

	/** @var Crm\Order\Payment $payment */
	$payment = $paymentCollection->current();
	if ($payment)
	{
		$payableCollection = $payment->getPayableItemCollection();

		/** @var Crm\Order\BasketItem $item */
		foreach ($order->getBasket() as $item)
		{
			$payableItem = $payableCollection->createItemByBasketItem($item);
			$payableItem->setField('QUANTITY', $item->getQuantity());
		}

		/** @var Crm\Order\Shipment $item */
		foreach ($order->getShipmentCollection()->getNotSystemItems() as $item)
		{
			$payableItem = $payableCollection->createItemByShipment($item);
			$payableItem->setField('QUANTITY', 1);
		}

		return true;
	}

	return false;
}