$newRatio = true; $currentRatioID = 0; if (isset($_POST['CAT_MEASURE_RATIO_ID'])) { $currentRatioID = (int) $_POST['CAT_MEASURE_RATIO_ID']; if ($currentRatioID > 0) { $ratioIterator = CCatalogMeasureRatio::getList(array(), array('ID' => $currentRatioID, 'PRODUCT_ID' => $PRODUCT_ID), false, false, array('ID', 'PRODUCT_ID')); if ($currentRatio = $ratioIterator->Fetch()) { $newRatio = false; } unset($currentRatio, $ratioIterator); } } if ($newRatio) { CCatalogMeasureRatio::add($arMeasureRatio); } else { CCatalogMeasureRatio::update($currentRatioID, $arMeasureRatio); } unset($currentRatioID, $newRatio, $arMeasureRatio); $intCountBasePrice = count($arCatalogBasePrices); for ($i = 0; $i < $intCountBasePrice; $i++) { if (strlen($arCatalogBasePrices[$i]["PRICE"]) > 0) { $arCatalogFields = array("EXTRA_ID" => false, "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $arCatalogBaseGroup["ID"], "PRICE" => DoubleVal($arCatalogBasePrices[$i]["PRICE"]), "CURRENCY" => $arCatalogBasePrices[$i]["CURRENCY"], "QUANTITY_FROM" => $arCatalogBasePrices[$i]["QUANTITY_FROM"] > 0 ? $arCatalogBasePrices[$i]["QUANTITY_FROM"] : false, "QUANTITY_TO" => $arCatalogBasePrices[$i]["QUANTITY_TO"] > 0 ? $arCatalogBasePrices[$i]["QUANTITY_TO"] : false); if ($arCatalogBasePrices[$i]["ID"] > 0) { $arCatalogPrice = CPrice::GetByID($arCatalogBasePrices[$i]["ID"]); if ($arCatalogPrice && $arCatalogPrice["PRODUCT_ID"] == $PRODUCT_ID) { $arUpdatedIDs[] = $arCatalogBasePrices[$i]["ID"]; if (!CPrice::Update($arCatalogBasePrices[$i]["ID"], $arCatalogFields)) { $strWarning .= str_replace("#ID#", $arCatalogBasePrices[$i]["ID"], GetMessage("C2IT_ERROR_PRPARAMS")) . "<br>"; } } else { $ID_tmp = CPrice::Add($arCatalogFields);
{ $intRatioID = 0; $rsRatios = CCatalogMeasureRatio::getList( array(), array('PRODUCT_ID' => $ID), false, false, array('ID', 'PRODUCT_ID') ); if ($arRatio = $rsRatios->Fetch()) { $intRatioID = intval($arRatio['ID']); } if (0 < $intRatioID) { CCatalogMeasureRatio::update($intRatioID, array('RATIO' => trim($arFields['CATALOG_MEASURE_RATIO']))); } else { CCatalogMeasureRatio::add(array('PRODUCT_ID' => $ID, 'RATIO' => trim($arFields['CATALOG_MEASURE_RATIO']))); } } } } } } if($bCatalog) { if ($boolCatalogPrice && (isset($_POST["CATALOG_PRICE"]) || isset($_POST["CATALOG_CURRENCY"]))) {
if($purchasingCurrency != '') $arFields["PURCHASING_CURRENCY"] = $purchasingCurrency; if ($arCatalog["SUBSCRIPTION"] == "Y") { $arFields["PRICE_TYPE"] = $CAT_PRICE_TYPE; $arFields["RECUR_SCHEME_TYPE"] = $CAT_RECUR_SCHEME_TYPE; $arFields["RECUR_SCHEME_LENGTH"] = $CAT_RECUR_SCHEME_LENGTH; $arFields["TRIAL_PRICE_ID"] = $CAT_TRIAL_PRICE_ID; $arFields["WITHOUT_ORDER"] = $CAT_WITHOUT_ORDER; } CCatalogProduct::Add($arFields); $arMeasureRatio = array("PRODUCT_ID" => $PRODUCT_ID, "RATIO" => $CAT_MEASURE_RATIO); if(isset($CAT_MEASURE_RATIO_ID) && intval($CAT_MEASURE_RATIO_ID) > 0) CCatalogMeasureRatio::update($CAT_MEASURE_RATIO_ID, $arMeasureRatio); else CCatalogMeasureRatio::add($arMeasureRatio); $intCountBasePrice = count($arCatalogBasePrices); for ($i = 0; $i < $intCountBasePrice; $i++) { if (strlen($arCatalogBasePrices[$i]["PRICE"]) > 0) { $arCatalogFields = array( "EXTRA_ID" => false, "PRODUCT_ID" => $PRODUCT_ID, "CATALOG_GROUP_ID" => $arCatalogBaseGroup["ID"], "PRICE" => DoubleVal($arCatalogBasePrices[$i]["PRICE"]), "CURRENCY" => $arCatalogBasePrices[$i]["CURRENCY"], "QUANTITY_FROM" => ($arCatalogBasePrices[$i]["QUANTITY_FROM"] > 0 ? $arCatalogBasePrices[$i]["QUANTITY_FROM"] : False),