• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/provideraccountpay.php
  • Класс: BitrixSaleProviderAccountPay
  • Вызов: ProviderAccountPay::DeductProduct
static function DeductProduct($fields)
{
	/** @var SaleBasketItem $basketItem*/
	$basketItem = $fields['BASKET_ITEM'];
	$orderId = (int)$basketItem->getField('ORDER_ID');
	$currency = $basketItem->getField('CURRENCY');

	$propertyCollection = $basketItem->getPropertyCollection();
	
	$item = $propertyCollection->getPropertyValues();
	$sum = (float)($item['SUM_OF_CHARGE']['VALUE']) * (float)($basketItem->getQuantity());

	/** @var Basket $basket */
	$basket = $basketItem->getCollection();
	$order = $basket->getOrder();
	$userId = $order->getUserId();

	$resultUpdateUserAccount = CSaleUserAccount::UpdateAccount($userId, ($fields["UNDO_DEDUCTION"]==='N'?$sum:-$sum), $currency, "MANUAL", $orderId, "Payment to user account");

	if ($resultUpdateUserAccount)
	{
		$fields['RESULT'] = true;
	}
	else
	{
		return false;
	}

	return $fields;
}