• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/controller/action/entity/orderpaymentresolver.php
  • Класс: BitrixSaleHelpersControllerActionEntityOrderPaymentResolver
  • Вызов: OrderPaymentResolver::findOrCreatePaymentEqualOrderSum
static function findOrCreatePaymentEqualOrderSum(int $orderId, ?int $paySystemId = null): ?Payment
{
	if ($payment = self::findPaymentEqualOrderSum($orderId))
	{
		return $payment;
	}

	$order = Order::load($orderId);
	if (!$order)
	{
		return null;
	}

	if (!$service = self::buildPaySystemService($order, $paySystemId))
	{
		return null;
	}

	$paymentSum = $order->getPrice();
	$paymentCollection = $order->getPaymentCollection();
	$payment = $paymentCollection->createItem($service);
	$result = $payment->setField('SUM', $paymentSum);

	$result = $result->isSuccess() ? $order->save() : $result;

	if ($result->isSuccess())
	{
		return $payment;
	}

	return null;
}