• Модуль: catalog
  • Путь к файлу: ~/bitrix/modules/catalog/lib/measureratio.php
  • Класс: BitrixCatalogMeasureRatioTable
  • Вызов: MeasureRatioTable::getCurrentRatio
static function getCurrentRatio($product)
{
	if (!is_array($product))
		$product = array($product);
	MainTypeCollection::normalizeArrayValuesByInt($product, true);
	if (empty($product))
		return false;

	$result = array_fill_keys($product, 1);
	$ratioRows = array_chunk($product, 500);
	foreach ($ratioRows as $row)
	{
		$ratioIterator = self::getList(array(
			'select' => array('PRODUCT_ID', 'RATIO'),
			'filter' => array('@PRODUCT_ID' => $row, '=IS_DEFAULT' => 'Y')
		));
		while ($ratio = $ratioIterator->fetch())
		{
			$ratio['PRODUCT_ID'] = (int)$ratio['PRODUCT_ID'];
			$ratioInt = (int)$ratio['RATIO'];
			$ratioFloat = (float)$ratio['RATIO'];
			$ratioResult  = ($ratioFloat > $ratioInt ? $ratioFloat : $ratioInt);
			if ($ratioResult < CATALOG_VALUE_EPSILON)
				continue;
			$result[$ratio['PRODUCT_ID']] = $ratioResult;
		}
		unset($module, $moduleIterator);
	}
	unset($row, $ratioRows);
	return $result;
}