Esempio n. 1
0
 /**
  * <p>Метод изменяет параметры счета пользователя в соответствии с параметрами из массива arFields. Метод динамичный.</p>
  *
  *
  * @param int $ID  Код изменяемого счета. </htm
  *
  * @param array $arFields  Ассоциативный массив новых параметров счета. Может содержать
  * следующие ключи: <ul> <li> <b>USER_ID</b> - код пользователя-владельца;</li> <li>
  * <b>CURRENT_BUDGET</b> - текущая сумма на счете;</li> <li> <b>CURRENCY</b> - валюта;</li> <li>
  * <b>NOTES</b> - текстовое описание;</li> <li> <b>LOCKED</b> - флаг
  * заблокированности счета;</li> <li> <b>DATE_LOCKED</b> - дата блокировки
  * счета.</li> </ul>
  *
  * @return int <p>Метод возвращает код измененного счета или <i>false</i> в случае
  * ошибки.</p> <br><br>
  *
  * @static
  * @link http://dev.1c-bitrix.ru/api_help/sale/classes/csaleuseraccount/csaleuseraccount.update.php
  * @author Bitrix
  */
 public static function Update($ID, $arFields)
 {
     global $DB;
     $ID = IntVal($ID);
     if ($ID <= 0) {
         return False;
     }
     $arFields1 = array();
     foreach ($arFields as $key => $value) {
         if (substr($key, 0, 1) == "=") {
             $arFields1[substr($key, 1)] = $value;
             unset($arFields[$key]);
         }
     }
     if (!CSaleUserAccount::CheckFields("UPDATE", $arFields, $ID)) {
         return false;
     }
     $dbEvents = GetModuleEvents("sale", "OnBeforeUserAccountUpdate");
     while ($arEvent = $dbEvents->Fetch()) {
         if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false) {
             return false;
         }
     }
     $arOldUserAccount = CSaleUserAccount::GetByID($ID);
     $strUpdate = $DB->PrepareUpdate("b_sale_user_account", $arFields);
     foreach ($arFields1 as $key => $value) {
         if (strlen($strUpdate) > 0) {
             $strUpdate .= ", ";
         }
         $strUpdate .= $key . "=" . $value . " ";
     }
     $strSql = "UPDATE b_sale_user_account SET " . $strUpdate . " WHERE ID = " . $ID . " ";
     $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
     unset($GLOBALS["SALE_USER_ACCOUNT"]["SALE_USER_ACCOUNT_CACHE_" . $ID]);
     unset($GLOBALS["SALE_USER_ACCOUNT"]["SALE_USER_ACCOUNT_CACHE1_" . $arOldUserAccount["USER_ID"] . "_" . $arOldUserAccount["CURRENCY"]]);
     $dbEvents = GetModuleEvents("sale", "OnAfterUserAccountUpdate");
     while ($arEvent = $dbEvents->Fetch()) {
         ExecuteModuleEventEx($arEvent, array($ID, $arFields));
     }
     return $ID;
 }