- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/helpers/admin/product.php
- Класс: BitrixSaleHelpersAdminProduct
- Вызов: Product::fillMeasures
private function fillMeasures()
{
$measures = array();
$defaultMeasure = CCatalogMeasure::getDefaultMeasure(true, true);
$defaultMeasureText = ($defaultMeasure["SYMBOL_RUS"] != '' ? $defaultMeasure["SYMBOL_RUS"] : $defaultMeasure["SYMBOL_INTL"]);
$defaultMeasureCode = 0;
$settedIds = array();
$dbRes = CCatalogMeasure::GetList(
array(),
array("ID" => $this->measuresIds),
false,
false,
array("ID", "CODE", "SYMBOL_RUS", "SYMBOL_INTL")
);
while ($measure = $dbRes->Fetch())
$measures[$measure['ID']] = $measure;
foreach($this->catalogData as $productId => $productFields)
{
if(!isset($this->resultData[$productId]))
continue;
$this->resultData[$productId]["MEASURE_TEXT"] = $defaultMeasureText;
$this->resultData[$productId]["MEASURE_CODE"] = $defaultMeasureCode;
if (empty($measures[$productFields['MEASURE']]) || !is_array($measures[$productFields['MEASURE']]))
continue;
$measure = $measures[$productFields['MEASURE']];
$this->resultData[$productId]["MEASURE_TEXT"] = ($measure["SYMBOL_RUS"] != '' ? $measure["SYMBOL_RUS"] : $measure["SYMBOL_INTL"]);
$this->resultData[$productId]["MEASURE_CODE"] = $measure["CODE"] != '' ? $measure["CODE"] : $defaultMeasureText;
$settedIds[] = $productId;
}
$needToSet = array_diff_key($this->resultData, array_flip($settedIds));
foreach($needToSet as $productId => $fields)
{
if(!isset($fields['MEASURE_CODE']))
$this->resultData[$productId]['MEASURE_CODE'] = $defaultMeasureCode;
if(!empty($fields['MEASURE_TEXT']))
$this->resultData[$productId]["MEASURE_TEXT"] = $defaultMeasureText;
}
}