- Модуль: 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']);
}
}
}