5require_once(
$_SERVER[
"DOCUMENT_ROOT"].
"/bitrix/modules/sale/general/user.php");
18 if (isset(
$GLOBALS[
"SALE_USER_ACCOUNT"][
"SALE_USER_ACCOUNT_CACHE_".
$ID]) && is_array(
$GLOBALS[
"SALE_USER_ACCOUNT"][
"SALE_USER_ACCOUNT_CACHE_".
$ID]) &&
is_set(
$GLOBALS[
"SALE_USER_ACCOUNT"][
"SALE_USER_ACCOUNT_CACHE_".
$ID],
"ID"))
20 return $GLOBALS[
"SALE_USER_ACCOUNT"][
"SALE_USER_ACCOUNT_CACHE_".$ID];
25 "SELECT UA.ID, UA.USER_ID, UA.CURRENT_BUDGET, UA.CURRENCY, UA.NOTES, UA.LOCKED, ".
26 " ".$DB->DateToCharFunction(
"UA.TIMESTAMP_X",
"FULL").
" as TIMESTAMP_X, ".
27 " ".$DB->DateToCharFunction(
"UA.DATE_LOCKED",
"FULL").
" as DATE_LOCKED ".
28 "FROM b_sale_user_account UA ".
29 "WHERE UA.ID = ".$ID.
" ";
31 $dbUserAccount =
$DB->Query($strSql);
32 if ($arUserAccount = $dbUserAccount->Fetch())
34 $GLOBALS[
"SALE_USER_ACCOUNT"][
"SALE_USER_ACCOUNT_CACHE_".$ID] = $arUserAccount;
35 return $arUserAccount;
46 $userID = (int)$userID;
57 return $GLOBALS[
"SALE_USER_ACCOUNT"][
"SALE_USER_ACCOUNT_CACHE_".$userID.
"_".
$currency];
62 "SELECT UA.ID, UA.USER_ID, UA.CURRENT_BUDGET, UA.CURRENCY, UA.NOTES, UA.LOCKED, ".
63 " ".$DB->DateToCharFunction(
"UA.TIMESTAMP_X",
"FULL").
" as TIMESTAMP_X, ".
64 " ".$DB->DateToCharFunction(
"UA.DATE_LOCKED",
"FULL").
" as DATE_LOCKED ".
65 "FROM b_sale_user_account UA ".
66 "WHERE UA.USER_ID = ".$userID.
" ".
67 " AND UA.CURRENCY = '".$DB->ForSql(
$currency).
"' ";
69 $dbUserAccount =
$DB->Query($strSql);
70 if ($arUserAccount = $dbUserAccount->Fetch())
72 $GLOBALS[
"SALE_USER_ACCOUNT"][
"SALE_USER_ACCOUNT_CACHE_".$userID.
"_".
$currency] = $arUserAccount;
73 return $arUserAccount;
84 if (empty($arSelectFields))
85 $arSelectFields =
array(
"ID",
"USER_ID",
"CURRENT_BUDGET",
"CURRENCY",
"LOCKED",
"NOTES",
"TIMESTAMP_X",
"DATE_LOCKED");
89 "ID" =>
array(
"FIELD" =>
"UA.ID",
"TYPE" =>
"int"),
90 "USER_ID" =>
array(
"FIELD" =>
"UA.USER_ID",
"TYPE" =>
"int"),
91 "CURRENT_BUDGET" =>
array(
"FIELD" =>
"UA.CURRENT_BUDGET",
"TYPE" =>
"double"),
92 "CURRENCY" =>
array(
"FIELD" =>
"UA.CURRENCY",
"TYPE" =>
"string"),
93 "LOCKED" =>
array(
"FIELD" =>
"UA.LOCKED",
"TYPE" =>
"char"),
94 "NOTES" =>
array(
"FIELD" =>
"UA.NOTES",
"TYPE" =>
"string"),
95 "TIMESTAMP_X" =>
array(
"FIELD" =>
"UA.TIMESTAMP_X",
"TYPE" =>
"datetime"),
96 "DATE_LOCKED" =>
array(
"FIELD" =>
"UA.DATE_LOCKED",
"TYPE" =>
"datetime"),
97 "USER_LOGIN" =>
array(
"FIELD" =>
"U.LOGIN",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_user U ON (UA.USER_ID = U.ID)"),
98 "USER_ACTIVE" =>
array(
"FIELD" =>
"U.ACTIVE",
"TYPE" =>
"char",
"FROM" =>
"INNER JOIN b_user U ON (UA.USER_ID = U.ID)"),
99 "USER_NAME" =>
array(
"FIELD" =>
"U.NAME",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_user U ON (UA.USER_ID = U.ID)"),
100 "USER_LAST_NAME" =>
array(
"FIELD" =>
"U.LAST_NAME",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_user U ON (UA.USER_ID = U.ID)"),
101 "USER_EMAIL" =>
array(
"FIELD" =>
"U.EMAIL",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_user U ON (UA.USER_ID = U.ID)"),
102 "USER_USER" =>
array(
"FIELD" =>
"U.LOGIN,U.NAME,U.LAST_NAME,U.EMAIL,U.ID",
"WHERE_ONLY" =>
"Y",
"TYPE" =>
"string",
"FROM" =>
"INNER JOIN b_user U ON (UA.USER_ID = U.ID)")
108 $arSqls[
"SELECT"] = str_replace(
"%%_DISTINCT_%%",
"", $arSqls[
"SELECT"]);
110 if (empty($arGroupBy) && is_array($arGroupBy))
113 "SELECT ".$arSqls[
"SELECT"].
" ".
114 "FROM b_sale_user_account UA ".
115 " ".$arSqls[
"FROM"].
" ";
116 if ($arSqls[
"WHERE"] <>
'')
117 $strSql .=
"WHERE ".$arSqls[
"WHERE"].
" ";
118 if ($arSqls[
"GROUPBY"] <>
'')
119 $strSql .=
"GROUP BY ".$arSqls[
"GROUPBY"].
" ";
131 "SELECT ".$arSqls[
"SELECT"].
" ".
132 "FROM b_sale_user_account UA ".
133 " ".$arSqls[
"FROM"].
" ";
134 if ($arSqls[
"WHERE"] <>
'')
135 $strSql .=
"WHERE ".$arSqls[
"WHERE"].
" ";
136 if ($arSqls[
"GROUPBY"] <>
'')
137 $strSql .=
"GROUP BY ".$arSqls[
"GROUPBY"].
" ";
138 if ($arSqls[
"ORDERBY"] <>
'')
139 $strSql .=
"ORDER BY ".$arSqls[
"ORDERBY"].
" ";
141 if (is_array($arNavStartParams) && intval($arNavStartParams[
"nTopCount"])<=0)
144 "SELECT COUNT('x') as CNT ".
145 "FROM b_sale_user_account UA ".
146 " ".$arSqls[
"FROM"].
" ";
147 if ($arSqls[
"WHERE"] <>
'')
148 $strSql_tmp .=
"WHERE ".$arSqls[
"WHERE"].
" ";
149 if ($arSqls[
"GROUPBY"] <>
'')
150 $strSql_tmp .=
"GROUP BY ".$arSqls[
"GROUPBY"].
" ";
156 if ($arSqls[
"GROUPBY"] ==
'')
164 $cnt =
$dbRes->SelectedRowsCount();
171 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
175 if (is_array($arNavStartParams) && intval($arNavStartParams[
"nTopCount"])>0)
176 $strSql .=
"LIMIT ".intval($arNavStartParams[
"nTopCount"]);
193 if (mb_substr(
$key, 0, 1) ==
"=")
195 $arFields1[mb_substr(
$key, 1)] = $value;
205 foreach (
GetModuleEvents(
'sale',
'OnBeforeUserAccountAdd',
true) as $arEvent)
213 if (!isset($arFields1[
'TIMESTAMP_X']))
218 $arFields[
'~TIMESTAMP_X'] = $helper->getCurrentDateTimeFunction();
222 $arInsert =
$DB->PrepareInsert(
"b_sale_user_account",
$arFields);
224 foreach ($arFields1 as
$key => $value)
226 if ($arInsert[0] <>
'') $arInsert[0] .=
", ";
227 $arInsert[0] .=
$key;
228 if ($arInsert[1] <>
'') $arInsert[1] .=
", ";
229 $arInsert[1] .= $value;
232 $strSql =
"INSERT INTO b_sale_user_account(".$arInsert[0].
") VALUES(".$arInsert[1].
")";
237 foreach (
GetModuleEvents(
'sale',
'OnAfterUserAccountAdd',
true) as $arEvent)
253 $arFields1 =
array();
256 if (mb_substr(
$key, 0, 1) ==
"=")
258 $arFields1[mb_substr(
$key, 1)] = $value;
268 foreach (
GetModuleEvents(
'sale',
'OnBeforeUserAccountUpdate',
true) as $arEvent)
278 if (!isset($arFields1[
'TIMESTAMP_X']))
283 $arFields[
'~TIMESTAMP_X'] = $helper->getCurrentDateTimeFunction();
287 $strUpdate =
$DB->PrepareUpdate(
"b_sale_user_account",
$arFields);
289 foreach ($arFields1 as
$key => $value)
291 if ($strUpdate <>
'') $strUpdate .=
", ";
292 $strUpdate .=
$key.
"=".$value.
" ";
295 $strSql =
"UPDATE b_sale_user_account SET ".$strUpdate.
" WHERE ID = ".
$ID.
" ";
298 unset(
$GLOBALS[
"SALE_USER_ACCOUNT"][
"SALE_USER_ACCOUNT_CACHE_".
$ID]);
299 unset(
$GLOBALS[
"SALE_USER_ACCOUNT"][
"SALE_USER_ACCOUNT_CACHE_".$arOldUserAccount[
"USER_ID"].
"_".$arOldUserAccount[
"CURRENCY"]]);
301 foreach (
GetModuleEvents(
'sale',
'OnAfterUserAccountUpdate',
true) as $arEvent)
static PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql=false, $callback=false, $arOptions=array())
static CheckFields($ACTION, &$arFields, $ID=0)
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
static Update($ID, $arFields)
static GetByUserID($userID, $currency)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
ExecuteModuleEventEx($arEvent, $arParams=[])
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
if(empty($signedUserToken)) $key
$GLOBALS['_____370096793']