• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/ProductGrid/ProductGridDocumentQuery.php
  • Класс: BitrixCrmMobileProductGridProductGridDocumentQuery
  • Вызов: ProductGridDocumentQuery::completePrices
private function completePrices($model, $row): array
{
	$vatRate = null;
	if (array_key_exists('VAT_RATE', $row))
	{
		$vatRate =
			(string)$row['VAT_RATE'] !== ''
				? (float)$row['VAT_RATE']
				: null
		;

		if (BitrixMainLoader::includeModule('catalog'))
		{
			$vatId =
				isset($vatRate)
					? VatTable::getActiveVatIdByRate($vatRate * 100)
					: VatTable::getExcludeVatId()
			;
			if (isset($vatId))
			{
				$model['TAX_ID'] = $vatId;
			}
		}
	}

	$vatIncluded = $row['VAT_INCLUDED'] ?? 'Y';
	$price = (float)$row['PRICE'];
	$basePrice = (float)$row['BASE_PRICE'];
	$vatCalculator = new VatCalculator((float)$vatRate);

	$model['TAX_INCLUDED'] = $vatIncluded;
	$model['TAX_RATE'] = $vatRate * 100;
	$model['DISCOUNT_SUM'] = $row['DISCOUNT_PRICE'];
	$model['DISCOUNT_TYPE_ID'] = CrmDiscount::MONETARY;
	$model['BASE_PRICE'] = $row['BASE_PRICE'];
	$model['PRICE'] = $price;
	$model['PRICE_ACCOUNT'] = $price;

	if ($vatIncluded === 'N')
	{
		$vatSum = $vatCalculator->calc($price, false);
		$model['PRICE_EXCLUSIVE'] = $price - $vatSum;
		$model['PRICE_BRUTTO'] = $vatCalculator->accrue($basePrice);
		$model['PRICE_NETTO'] = $basePrice;
		$model['TAX_SUM'] = $vatSum;
	}
	else
	{
		$vatSum = $vatCalculator->calc($price, true);
		$model['PRICE_EXCLUSIVE'] = $price - $vatSum;
		$model['PRICE_BRUTTO'] = $basePrice;
		$model['PRICE_NETTO'] = $vatCalculator->allocate($basePrice);
		$model['TAX_SUM'] = $vatSum;
	}

	return $model;
}