Вот такой код применил в файле init.php. Чтобы при выгрузке коэффициент единицы измерения менялся на 0.01. Все бы хорошо, но коэффициент меняется только в товарах, а торговых предложениях нет. Подскажите пожалуйста, как сделать так, чтобы коэффициент единицы измерения меняться и в торговых предложениях тоже?
Код |
---|
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "OnAfterIBlockElementUpdateHandler");
function OnAfterIBlockElementUpdateHandler(&$arFields)
{
\Bitrix\Main\Loader::includeModule('catalog');
// проверяем единицы измерения, если == м2, то изменяем коэфициент с 1 на 0.001
if(CModule::IncludeModule("sale") && CModule::IncludeModule("iblock"))
{
$db_propss = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $arFields["ID"], array("sort" => "asc"), Array("CODE"=>"CML2_BASE_UNIT"));
if($ar_propss = $db_propss->Fetch())
$EDINICA_IZMERENIA = intval($ar_propss["DESCRIPTION"]);
if($EDINICA_IZMERENIA == 6){
$r = CCatalogMeasureRatio::getList ( $arOrder = array(), $arFilter = array("PRODUCT_ID" => $arFields["ID"]), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array() );
if($ar_r = $r->GetNext())
{
if($ar_r[RATIO] != '0.01')
{
$db_res = CCatalogMeasureRatio::update($ar_r["ID"], array("RATIO" => 0.01));
}
}
}
}
} |