Exemplo 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;
 }
Exemplo n.º 2
0
     $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);
Exemplo n.º 3
0
 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;
     }
 }
Exemplo n.º 4
0
         $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);