Esempio n. 1
0
 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;
 }