• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/cml2.php
  • Класс: CIBlockCMLImport
  • Вызов: CIBlockCMLImport::CheckTax
function CheckTax($title, $rate)
{
	if ($rate === null)
	{
		$taxName = GetMessage('IBLOCK_NO_VAT_TITLE');
	}
	else
	{
		$taxName = $title . " " . $rate . "%";
	}

	if (isset($this->arTaxCache[$taxName]))
	{
		return $this->arTaxCache[$taxName];
	}

	$vatParams = [
		'select' => ['ID'],
	];

	if ($rate === null)
	{
		$vatParams['filter'] = [
			'=EXCLUDE_VAT' => 'Y',
		];
	}
	else
	{
		$vatParams['filter'] = [
			'=NAME' => $taxName,
			'=EXCLUDE_VAT' => 'N',
			'=RATE' => $rate,
		];
	}

	$getResult = BitrixCatalogModelVat::getList($vatParams)->fetch();
	if (isset($getResult['ID']))
	{
		$vatId = $getResult['ID'];
		$this->arTaxCache[$taxName] = $vatId;
		return $vatId;
	}

	$addParams = [
		'ACTIVE' => 'Y',
		'NAME' => $taxName,
	];

	if ($rate === null)
	{
		$addParams['EXCLUDE_VAT'] = 'Y';
	}
	else
	{
		$addParams['RATE'] = $rate;
	}

	$this->arTaxCache[$taxName] = BitrixCatalogModelVat::add($addParams)->getId();

	return $this->arTaxCache[$taxName];
}