function CheckFields($ACTION, &$arFields, $ID = 0) { if ((is_set($arFields, "PLAN_ID") || $ACTION == "ADD") && IntVal($arFields["PLAN_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SCGAPS1_NO_PLAN"), "EMPTY_PLAN_ID"); return false; } if ((is_set($arFields, "MODULE_ID") || $ACTION == "ADD") && StrLen($arFields["MODULE_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SCGAPS1_NO_MODULE"), "EMPTY_MODULE_ID"); return false; } if ((is_set($arFields, "SECTION_ID") || $ACTION == "ADD") && StrLen($arFields["SECTION_ID"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SCGAPS1_NO_SECTION"), "EMPTY_SECTION_ID"); return false; } $ID = IntVal($ID); $arPlanSection = false; if ($ACTION != "ADD") { if ($ID <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SCGAPS1_BAD_FUNC"), "FUNCTION_ERROR"); return false; } else { $arPlanSection = CSaleAffiliatePlanSection::GetByID($ID); if (!$arPlanSection) { $GLOBALS["APPLICATION"]->ThrowException(str_replace("#ID#", $ID, GetMessage("SCGAPS1_NO_RECORD")), "NO_PLAN_SECTION"); return false; } } } if (is_set($arFields, "RATE")) { $arFields["RATE"] = str_replace(",", ".", $arFields["RATE"]); $arFields["RATE"] = DoubleVal($arFields["RATE"]); } if ((is_set($arFields, "RATE_TYPE") || $ACTION == "ADD") && $arFields["RATE_TYPE"] != "F") { $arFields["RATE_TYPE"] = "P"; } if ($ACTION == "ADD") { if ($arFields["RATE_TYPE"] == "P") { $arFields["RATE_CURRENCY"] = false; } if ($arFields["RATE_TYPE"] == "F" && (!is_set($arFields, "RATE_CURRENCY") || StrLen($arFields["RATE_CURRENCY"]) <= 0)) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SCGAPS1_NO_CURRENCY"), "EMPTY_RATE_CURRENCY"); return false; } } else { if (!is_set($arFields, "RATE_TYPE")) { $arFields["RATE_TYPE"] = $arPlanSection["RATE_TYPE"]; } if ($arFields["RATE_TYPE"] == "P") { $arFields["RATE_CURRENCY"] = false; } elseif ($arFields["RATE_TYPE"] == "F") { if (!is_set($arFields, "RATE_CURRENCY")) { $arFields["RATE_CURRENCY"] = $arPlanSection["RATE_CURRENCY"]; } if (!is_set($arFields, "RATE_CURRENCY") || StrLen($arFields["RATE_CURRENCY"]) <= 0) { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SCGAPS1_NO_CURRENCY"), "EMPTY_RATE_CURRENCY"); return false; } } } return True; }