• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/component/vatrate.php
  • Класс: BitrixSalesCenterComponentVatRate
  • Вызов: VatRate::prepareTaxPrices
static function prepareTaxPrices(array $basketItems): array
{
	Loader::requireModule('sale');
	Loader::requireModule('catalog');

	foreach ($basketItems as & $item)
	{
		if (isset($item['taxId']))
		{
			$vatRateRow = VatTable::getRowById((int)$item['taxId']);
			if (!$vatRateRow)
			{
				continue;
			}

			$vatRate = isset($vatRateRow['RATE']) ? (float)$vatRateRow['RATE'] : null;
			if ($vatRate > 0)
			{
				$isVatNotIncluded = ($item['taxIncluded'] ?? 'Y') === 'N';
				if ($isVatNotIncluded)
				{
					$vatCalculator = new VatCalculator($vatRate / 100);

					$fields = [
						'price',
						'priceExclusive',
					];
					foreach ($fields as $field)
					{
						if (isset($item[$field]))
						{
							$priceWithTax = (float)$item[$field];
							$priceWithoutTax = $vatCalculator->allocate($priceWithTax);

							$item[$field] = $priceWithoutTax;
						}
					}
				}
			}
		}
	}

	return $basketItems;
}