function Update($ID, $arFields) { global $DB; $ID = IntVal($ID); if (!CSalePersonType::CheckFields("UPDATE", $arFields, $ID)) { return false; } $db_events = GetModuleEvents("sale", "OnBeforePersonTypeUpdate"); while ($arEvent = $db_events->Fetch()) { if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) { return false; } } $arLID = array(); if (is_set($arFields, "LID")) { if (is_array($arFields["LID"])) { $arLID = $arFields["LID"]; } else { $arLID[] = $arFields["LID"]; } $str_LID = "''"; $arFields["LID"] = false; foreach ($arLID as $k => $v) { if (strlen($v) > 0) { $str_LID .= ", '" . $DB->ForSql($v) . "'"; if (empty($arFields["LID"])) { $arFields["LID"] = $v; } } else { unset($arLID[$k]); } } } $strUpdate = $DB->PrepareUpdate("b_sale_person_type", $arFields); $strSql = "UPDATE b_sale_person_type SET " . $strUpdate . " WHERE ID = " . $ID . ""; $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); if (count($arLID) > 0) { $strSql = "DELETE FROM b_sale_person_type_site WHERE PERSON_TYPE_ID=" . $ID; $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__); $strSql = "INSERT INTO b_sale_person_type_site(PERSON_TYPE_ID, SITE_ID) " . "SELECT " . $ID . ", LID " . "FROM b_lang " . "WHERE LID IN (" . $str_LID . ") "; $DB->Query($strSql, false, "FILE: " . __FILE__ . "<br> LINE: " . __LINE__); } unset($GLOBALS["SALE_PERSON_TYPE_LIST_CACHE"]); $events = GetModuleEvents("sale", "OnPersonTypeUpdate"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array($ID, $arFields)); } return $ID; }