• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/order/productmanager/productconverter/pricesconverter.php
  • Класс: Bitrix\Crm\Order\ProductManager\ProductConverter\PricesConverter
  • Вызов: PricesConverter::convertToProductRowPrices
public function convertToProductRowPrices(float $price, float $basePrice, float $vatRate, bool $vatIncluded): array
{
	$result = [];
	$vatCalculator = new VatCalculator($vatRate);

	if ($vatIncluded)
	{
		$result['PRICE_BRUTTO'] = $basePrice;
		$result['PRICE_NETTO'] = $vatCalculator->allocate($basePrice);
		$result['PRICE_EXCLUSIVE'] = $vatCalculator->allocate($price);
		$result['PRICE'] = $price;
	}
	else
	{
		$result['PRICE_BRUTTO'] = $vatCalculator->accrue($basePrice);
		$result['PRICE_NETTO'] = $basePrice;
		$result['PRICE_EXCLUSIVE'] = $price;
		$result['PRICE'] = $vatCalculator->accrue($price);
	}

	$result['DISCOUNT_RATE'] = Discount::calculateDiscountRate($result['PRICE_NETTO'], $result['PRICE_EXCLUSIVE']);
	$result['DISCOUNT_SUM'] = Discount::calculateDiscountSum($result['PRICE_EXCLUSIVE'], $result['DISCOUNT_RATE']);
	$result['DISCOUNT_SUM'] = PriceMaths::roundPrecision($result['DISCOUNT_SUM']);

	return $result;
}