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