/** * <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; }