• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/tax.php
  • Класс: BitrixSaleTax
  • Вызов: Tax::loadAvailableList
protected function loadAvailableList()
{
	$order = $this->getOrder();
	$basket = $order->getBasket();
	if (!$basket)
		return null;

	$availableList = array();

	if (!$order->isUsedVat())
	{
		$taxExemptList = static::loadExemptList($order->getUserId());

		$taxRateRes = CSaleTaxRate::GetList(
			array("APPLY_ORDER" => "ASC"),
			array(
				"LID" => $order->getSiteId(),
				"PERSON_TYPE_ID" => $order->getPersonTypeId(),
				"ACTIVE" => "Y",
				"LOCATION_CODE" => $order->getTaxLocation(),
			)
		);
		while ($taxRate = $taxRateRes->GetNext())
		{
			if (!in_array(intval($taxRate["TAX_ID"]), $taxExemptList))
			{
				if ($taxRate["IS_PERCENT"] != "Y")
				{
					$taxRate["VALUE"] = PriceMaths::roundPrecision(CCurrencyRates::convertCurrency($taxRate["VALUE"], $taxRate["CURRENCY"], $order->getCurrency()));
					$taxRate["CURRENCY"] = $order->getCurrency();
				}
				$availableList[] = $taxRate;
			}
		}
	}
	else
	{
		$availableList[] = array(
			"NAME" => MainLocalizationLoc::getMessage("SOA_VAT"),
			"IS_PERCENT" => "Y",
			"VALUE" => $order->getVatRate() * 100,
			"VALUE_FORMATED" => "(".($order->getVatRate() * 100)."%, ".GetMessage("SOA_VAT_INCLUDED").")",
			"VALUE_MONEY" => $order->getVatSum(),
			"VALUE_MONEY_FORMATED" => SaleFormatCurrency($order->getVatSum(), $order->getCurrency()),
			"APPLY_ORDER" => 100,
			"IS_IN_PRICE" => "Y",
			"CODE" => "VAT"
		);
	}

	return $availableList;
}