• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/tax.php
  • Класс: BitrixSaleTax
  • Вызов: Tax::loadExemptList
static function loadExemptList($userId)
{
	$exemptList = array();

	static $proxyUserGroups = array();
	static $proxyTaxExemptList = array();

	if (!empty($proxyUserGroups[$userId]))
	{
		$userGroups = $proxyUserGroups[$userId];
	}
	else
	{
		$userGroups = CUser::GetUserGroup($userId);
		$proxyUserGroups[$userId] = $userGroups;
	}


	$proxyTaxExemptKey = md5(join('|', $userGroups));

	if (array_key_exists($proxyTaxExemptKey, $proxyTaxExemptList))
	{
		$exemptList = $proxyTaxExemptList[$proxyTaxExemptKey];
	}
	else
	{
		/** @var CSaleTax $className */
		$className = static::getTaxClassName();
		$dbTaxExemptList = $className::GetExemptList(array("GROUP_ID" => $userGroups));
		while ($taxExemptList = $dbTaxExemptList->Fetch())
		{
			if (!in_array(intval($taxExemptList["TAX_ID"]), $exemptList))
				$exemptList[] = intval($taxExemptList["TAX_ID"]);
		}

		$proxyTaxExemptList[$proxyTaxExemptKey] = $exemptList;
	}



	return $exemptList;
}