- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/comp_pricetools.php
- Класс: CIBlockPriceTools
- Вызов: CIBlockPriceTools::getMinPriceFromOffers
static function getMinPriceFromOffers(&$offers, $currency, $replaceMinPrice = true)
{
$replaceMinPrice = ($replaceMinPrice === true);
$result = false;
$minPrice = 0;
if (!empty($offers) && is_array($offers))
{
$doubles = array();
foreach ($offers as $oneOffer)
{
$oneOffer['ID'] = (int)$oneOffer['ID'];
if (isset($doubles[$oneOffer['ID']]))
continue;
if (!$oneOffer['CAN_BUY'])
continue;
CIBlockPriceTools::setRatioMinPrice($oneOffer, $replaceMinPrice);
$oneOffer['MIN_PRICE']['CATALOG_MEASURE_RATIO'] = $oneOffer['CATALOG_MEASURE_RATIO'];
$oneOffer['MIN_PRICE']['CATALOG_MEASURE'] = $oneOffer['CATALOG_MEASURE'];
$oneOffer['MIN_PRICE']['CATALOG_MEASURE_NAME'] = $oneOffer['CATALOG_MEASURE_NAME'];
$oneOffer['MIN_PRICE']['~CATALOG_MEASURE_NAME'] = $oneOffer['~CATALOG_MEASURE_NAME'];
if (empty($result))
{
$minPrice = ($oneOffer['MIN_PRICE']['CURRENCY'] == $currency
? $oneOffer['MIN_PRICE']['DISCOUNT_VALUE']
: CCurrencyRates::ConvertCurrency($oneOffer['MIN_PRICE']['DISCOUNT_VALUE'], $oneOffer['MIN_PRICE']['CURRENCY'], $currency)
);
$result = $oneOffer['MIN_PRICE'];
}
else
{
$comparePrice = ($oneOffer['MIN_PRICE']['CURRENCY'] == $currency
? $oneOffer['MIN_PRICE']['DISCOUNT_VALUE']
: CCurrencyRates::ConvertCurrency($oneOffer['MIN_PRICE']['DISCOUNT_VALUE'], $oneOffer['MIN_PRICE']['CURRENCY'], $currency)
);
if ($minPrice > $comparePrice)
{
$minPrice = $comparePrice;
$result = $oneOffer['MIN_PRICE'];
}
}
$doubles[$oneOffer['ID']] = true;
}
}
return $result;
}