• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/comp_pricetools.php
  • Класс: CIBlockPriceTools
  • Вызов: CIBlockPriceTools::setRatioMinPrice
static function setRatioMinPrice(&$item, $replaceMinPrice = false)
{
	$replaceMinPrice = ($replaceMinPrice !== false);
	if (isset($item['MIN_PRICE']) && !empty($item['MIN_PRICE']) && isset($item['CATALOG_MEASURE_RATIO']))
	{
		if ($item['CATALOG_MEASURE_RATIO'] === 1)
		{
			$item['RATIO_PRICE'] = array(
				'VALUE' => $item['MIN_PRICE']['VALUE'],
				'DISCOUNT_VALUE' => $item['MIN_PRICE']['DISCOUNT_VALUE'],
				'PRINT_VALUE' => $item['MIN_PRICE']['PRINT_VALUE'],
				'PRINT_DISCOUNT_VALUE' => $item['MIN_PRICE']['PRINT_DISCOUNT_VALUE'],
				'DISCOUNT_DIFF' => $item['MIN_PRICE']['DISCOUNT_DIFF'],
				'PRINT_DISCOUNT_DIFF' => $item['MIN_PRICE']['PRINT_DISCOUNT_DIFF'],
				'DISCOUNT_DIFF_PERCENT' => $item['MIN_PRICE']['DISCOUNT_DIFF_PERCENT'],
				'CURRENCY' => $item['MIN_PRICE']['CURRENCY']
			);
		}
		else
		{
			$item['RATIO_PRICE'] = array(
				'VALUE' => $item['MIN_PRICE']['VALUE']*$item['CATALOG_MEASURE_RATIO'],
				'DISCOUNT_VALUE' => $item['MIN_PRICE']['DISCOUNT_VALUE']*$item['CATALOG_MEASURE_RATIO'],
				'CURRENCY' => $item['MIN_PRICE']['CURRENCY']
			);
			$item['RATIO_PRICE']['PRINT_VALUE'] = CCurrencyLang::CurrencyFormat(
				$item['RATIO_PRICE']['VALUE'],
				$item['RATIO_PRICE']['CURRENCY'],
				true
			);
			$item['RATIO_PRICE']['PRINT_DISCOUNT_VALUE'] = CCurrencyLang::CurrencyFormat(
				$item['RATIO_PRICE']['DISCOUNT_VALUE'],
				$item['RATIO_PRICE']['CURRENCY'],
				true
			);
			if ($item['MIN_PRICE']['VALUE'] == $item['MIN_PRICE']['DISCOUNT_VALUE'])
			{
				$item['RATIO_PRICE']['DISCOUNT_DIFF'] = 0;
				$item['RATIO_PRICE']['DISCOUNT_DIFF_PERCENT'] = 0;
				$item['RATIO_PRICE']['PRINT_DISCOUNT_DIFF'] = CCurrencyLang::CurrencyFormat(0, $item['RATIO_PRICE']['CURRENCY'], true);
			}
			else
			{
				$item['RATIO_PRICE']['DISCOUNT_DIFF'] = $item['RATIO_PRICE']['VALUE'] - $item['RATIO_PRICE']['DISCOUNT_VALUE'];
				$item['RATIO_PRICE']['DISCOUNT_DIFF_PERCENT'] = roundEx(100*$item['RATIO_PRICE']['DISCOUNT_DIFF']/$item['RATIO_PRICE']['VALUE'], 0);
				$item['RATIO_PRICE']['PRINT_DISCOUNT_DIFF'] = CCurrencyLang::CurrencyFormat(
					$item['RATIO_PRICE']['DISCOUNT_DIFF'],
					$item['RATIO_PRICE']['CURRENCY'],
					true
				);
			}
		}
		if ($replaceMinPrice)
		{
			$item['MIN_PRICE'] = $item['RATIO_PRICE'];
			unset($item['RATIO_PRICE']);
		}
	}
}