• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/order/builder/director.php
  • Класс: BitrixSaleHelpersOrderBuilderDirector
  • Вызов: Director::getUpdatedPayment
public function getUpdatedPayment(OrderBuilder $builder, array $paymentData)
{
	try{
		$builder->initFields(array(
			'ID' => $paymentData['ORDER_ID'],
			'PAYMENT' => array($paymentData)
		))
			->delegate()
			->createOrder()
			->setDiscounts()
			->buildPayments()
			->setDiscounts()
			->finalActions();
	}
	catch(BuildingException $e)
	{
		return null;
	}

	$order = $builder->getOrder();
	$collection = $order->getPaymentCollection();

	$paymentId = (int)($paymentData['ID'] ?? 0);
	if ($paymentId)
	{
		return $collection->getItemById($paymentId);
	}
	else
	{
		foreach ($collection as $payment)
		{
			if ($payment->getId() === 0)
			{
				return $payment;
			}
		}
	}

	return null;
}