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