/** * <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; }
$arID = array(); $dbResultList = CSaleUserAccount::GetList(array($by => $order), $arFilter, false, false, array("ID")); while ($arAccountList = $dbResultList->Fetch()) { $arID[] = $arAccountList['ID']; } } foreach ($arID as $ID) { if (strlen($ID) <= 0) { continue; } switch ($_REQUEST['action']) { case "delete": @set_time_limit(0); if ($saleModulePermissions >= "W") { $DB->StartTransaction(); if ($arDelAccount = CSaleUserAccount::GetByID($ID)) { if (CSaleUserAccount::UpdateAccount($arDelAccount["USER_ID"], -$arDelAccount["CURRENT_BUDGET"], $arDelAccount["CURRENCY"], "DEL_ACCOUNT", 0)) { if (!CSaleUserAccount::Delete($ID)) { $DB->Rollback(); if ($ex = $APPLICATION->GetException()) { $lAdmin->AddGroupError($ex->GetString(), $ID); } else { $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SAA_ERROR_DELETE")), $ID); } } } else { $DB->Rollback(); if ($ex = $APPLICATION->GetException()) { $lAdmin->AddGroupError($ex->GetString(), $ID); } else { $lAdmin->AddGroupError(str_replace("#ID#", $ID, GetMessage("SAA_ERROR_MONEY")), $ID);
public static function UnLockByID($ID) { $ID = IntVal($ID); if ($ID <= 0) { return False; } if ($arUserAccount = CSaleUserAccount::GetByID($ID)) { if ($arUserAccount["LOCKED"] == "Y") { $arFields = array("LOCKED" => "N", "DATE_LOCKED" => false); if (CSaleUserAccount::Update($arUserAccount["ID"], $arFields)) { return True; } else { return False; } } else { return True; } } else { $GLOBALS["APPLICATION"]->ThrowException(GetMessage("SKGU_NO_ACCOUNT"), "NO_ACCOUNT"); return False; } }
$errorMessage .= GetMessage("SAE_EMPTY_CURRENCY") . ".<br>"; } if (strlen($errorMessage) <= 0) { $arFilter = array("USER_ID" => $USER_ID, "CURRENCY" => $CURRENCY); $num = CSaleUserAccount::GetList(array(), $arFilter, array()); if (IntVal($num) > 0) { $errorMessage .= str_replace("#USER#", $USER_ID, str_replace("#CURRENCY#", $CURRENCY, GetMessage("SAE_ALREADY_EXISTS"))) . ".<br>"; } } if (strlen($errorMessage) <= 0) { $OLD_BUDGET = 0.0; } } else { //if($_POST["UNLOCK"] == "Y") // CSaleUserAccount::UnLock($USER_ID, $CURRENCY); if (!($arOldUserAccount = CSaleUserAccount::GetByID($ID))) { $errorMessage .= str_replace("#ID#", $ID, GetMessage("SAE_NO_ACCOUNT")) . ".<br>"; } if (strlen($errorMessage) <= 0) { $USER_ID = $arOldUserAccount["USER_ID"]; $CURRENCY = $arOldUserAccount["CURRENCY"]; $OLD_BUDGET = DoubleVal($arOldUserAccount["CURRENT_BUDGET"]); } } $currentLocked = ""; if (strlen($errorMessage) <= 0) { $dbUserAccount = CSaleUserAccount::GetList(array(), array("USER_ID" => $USER_ID, "CURRENCY" => $CURRENCY)); $arUserAccount = $dbUserAccount->Fetch(); $currentLocked = $arUserAccount["LOCKED"]; $CURRENT_BUDGET = str_replace(",", ".", $CURRENT_BUDGET); $CURRENT_BUDGET = DoubleVal($CURRENT_BUDGET);