• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/importonecsubordinatesale.php
  • Класс: BitrixSaleExchangeImportOneCSubordinateSale
  • Вызов: ImportOneCSubordinateSale::deletePaymentToReplace
protected function deletePaymentToReplace(Order $order, $documents)
{
	$result = new Result();

	$paymentCollection = $order->getPaymentCollection();
	$paymentIsReplace = false;
	$list = [];

	foreach ($documents as $document)
	{
		if($this->isPaymentDocument($document))
		{
			$list[] = [
				'AMOUNT'=>(float)$document->getField('AMOUNT'),
				'OPERATION'=>DocumentType::resolveID($document->getField('OPERATION'))
			];
		}
	}

	if(count($list)>0)
	{
		/** @var Payment $payment */
		foreach($paymentCollection as $payment)
		{
			if(!$payment->isPaid())
			{
				foreach($list as $k=>$documentPayment)
				{
					//echo $this->resolveEntityTypeId($payment);

					if(
						$payment->getSum() == $documentPayment['AMOUNT'] &&
						$this->resolveEntityTypeId($payment) == $documentPayment['OPERATION']
					)
					{
						$r = $this->paymentDelete($payment);
						if(!$r->isSuccess())
						{
							$result->addErrors($r->getErrors());
						}
						else
						{
							$paymentIsReplace = true;
						}

						unset($list[$k]);
					}
				}
			}
		}
	}

	if($result->isSuccess() && $paymentIsReplace)
		$result->setData(['IS_REPLACE'=>true]);

	return $result;
}