• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/helpers/order/builder/orderbuilder.php
  • Класс: BitrixSaleHelpersOrderBuilderOrderBuilder
  • Вызов: OrderBuilder::removePayments
protected function removePayments()
{
	if($this->getSettingsContainer()->getItemValue('deletePaymentIfNotExists'))
	{
		$paymentCollection = $this->order->getPaymentCollection();

		$paymentIds = [];
		foreach($this->formData["PAYMENT"] as $paymentData)
		{
			if(!isset($paymentData['ID']))
				continue;

			$payment = $paymentCollection->getItemById($paymentData['ID']);

			if ($payment == null)
				continue;

			$paymentIds[] = $payment->getId();
		}

		foreach ($paymentCollection as $payment)
		{
			if(!in_array($payment->getId(), $paymentIds))
			{
				$r = $payment->delete();
				if (!$r->isSuccess())
				{
					$this->errorsContainer->addErrors($r->getErrors());
					return false;
				}
			}
		}
	}
	return true;
}