1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
user_transact.php
См. документацию.
1<?php
2
4
5require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/general/user_transact.php");
6
8{
9 public static function GetByID($ID)
10 {
11 global $DB;
12
13 $ID = intval($ID);
14 if ($ID <= 0)
15 return false;
16
17 $strSql =
18 "SELECT UT.ID, UT.USER_ID, UT.AMOUNT, UT.CURRENCY, UT.DEBIT, UT.DESCRIPTION, ".
19 " UT.ORDER_ID, UT.NOTES, UT.EMPLOYEE_ID, ".
20 " ".$DB->DateToCharFunction("UT.TIMESTAMP_X", "FULL")." as TIMESTAMP_X, ".
21 " ".$DB->DateToCharFunction("UT.TRANSACT_DATE", "FULL")." as TRANSACT_DATE ".
22 "FROM b_sale_user_transact UT ".
23 "WHERE UT.ID = ".$ID." ";
24
25 $db_res = $DB->Query($strSql);
26 if ($res = $db_res->Fetch())
27 return $res;
28
29 return false;
30 }
31
32 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
33 {
34 global $DB;
35
36 if (count($arSelectFields) <= 0)
37 $arSelectFields = array("ID", "USER_ID", "TIMESTAMP_X", "TRANSACT_DATE", "AMOUNT", "CURRENCY", "DEBIT", "ORDER_ID", "DESCRIPTION", "NOTES");
38
39 // FIELDS -->
41 "ID" => array("FIELD" => "UT.ID", "TYPE" => "int"),
42 "USER_ID" => array("FIELD" => "UT.USER_ID", "TYPE" => "int"),
43 "AMOUNT" => array("FIELD" => "UT.AMOUNT", "TYPE" => "double"),
44 "CURRENCY" => array("FIELD" => "UT.CURRENCY", "TYPE" => "string"),
45 "DEBIT" => array("FIELD" => "UT.DEBIT", "TYPE" => "char"),
46 "ORDER_ID" => array("FIELD" => "UT.ORDER_ID", "TYPE" => "int"),
47 "DESCRIPTION" => array("FIELD" => "UT.DESCRIPTION", "TYPE" => "string"),
48 "NOTES" => array("FIELD" => "UT.NOTES", "TYPE" => "string"),
49 "TIMESTAMP_X" => array("FIELD" => "UT.TIMESTAMP_X", "TYPE" => "datetime"),
50 "TRANSACT_DATE" => array("FIELD" => "UT.TRANSACT_DATE", "TYPE" => "datetime"),
51 "EMPLOYEE_ID" => array("FIELD" => "UT.EMPLOYEE_ID", "TYPE" => "int"),
52 "USER_LOGIN" => array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UT.USER_ID = U.ID)"),
53 "USER_ACTIVE" => array("FIELD" => "U.ACTIVE", "TYPE" => "char", "FROM" => "INNER JOIN b_user U ON (UT.USER_ID = U.ID)"),
54 "USER_NAME" => array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UT.USER_ID = U.ID)"),
55 "USER_LAST_NAME" => array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UT.USER_ID = U.ID)"),
56 "USER_EMAIL" => array("FIELD" => "U.EMAIL", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (UT.USER_ID = U.ID)"),
57 "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 (UT.USER_ID = U.ID)")
58 );
59 // <-- FIELDS
60
61 $arSqls = CSaleOrder::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
62
63 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
64
65 if (is_array($arGroupBy) && count($arGroupBy)==0)
66 {
67 $strSql =
68 "SELECT ".$arSqls["SELECT"]." ".
69 "FROM b_sale_user_transact UT ".
70 " ".$arSqls["FROM"]." ";
71 if ($arSqls["WHERE"] <> '')
72 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
73 if ($arSqls["GROUPBY"] <> '')
74 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
75
76 //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
77
78 $dbRes = $DB->Query($strSql);
79 if ($arRes = $dbRes->Fetch())
80 return $arRes["CNT"];
81 else
82 return False;
83 }
84
85 $strSql =
86 "SELECT ".$arSqls["SELECT"]." ".
87 "FROM b_sale_user_transact UT ".
88 " ".$arSqls["FROM"]." ";
89 if ($arSqls["WHERE"] <> '')
90 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
91 if ($arSqls["GROUPBY"] <> '')
92 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
93 if ($arSqls["ORDERBY"] <> '')
94 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
95
96 $nTopCount = (int)($arNavStartParams["nTopCount"] ?? 0);
97 if (is_array($arNavStartParams) && $nTopCount <= 0)
98 {
99 $strSql_tmp =
100 "SELECT COUNT('x') as CNT ".
101 "FROM b_sale_user_transact UT ".
102 " ".$arSqls["FROM"]." ";
103 if ($arSqls["WHERE"] <> '')
104 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
105 if ($arSqls["GROUPBY"] <> '')
106 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
107
108 //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
109
110 $dbRes = $DB->Query($strSql_tmp);
111 $cnt = 0;
112 if ($arSqls["GROUPBY"] == '')
113 {
114 if ($arRes = $dbRes->Fetch())
115 $cnt = $arRes["CNT"];
116 }
117 else
118 {
119 // FOR MYSQL!!! ANOTHER CODE FOR ORACLE
120 $cnt = $dbRes->SelectedRowsCount();
121 }
122
123 $dbRes = new CDBResult();
124
125 //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
126
127 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
128 }
129 else
130 {
131 if ($nTopCount > 0)
132 {
133 $strSql .= "LIMIT " . $nTopCount;
134 }
135
136 //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
137
138 $dbRes = $DB->Query($strSql);
139 }
140
141 return $dbRes;
142 }
143
144 public static function Add($arFields)
145 {
146 global $DB;
147
148 $arFields1 = [];
149 foreach ($arFields as $key => $value)
150 {
151 if (mb_substr($key, 0, 1) == "=")
152 {
153 $arFields1[mb_substr($key, 1)] = $value;
154 unset($arFields[$key]);
155 }
156 }
157
159 {
160 return false;
161 }
162
163 if (!isset($arFields1['TIMESTAMP_X']))
164 {
165 $connection = Application::getConnection();
166 $helper = $connection->getSqlHelper();
167 unset($arFields['TIMESTAMP_X']);
168 $arFields['~TIMESTAMP_X'] = $helper->getCurrentDateTimeFunction();
169 unset($helper, $connection);
170 }
171
172 $arInsert = $DB->PrepareInsert("b_sale_user_transact", $arFields);
173
174 foreach ($arFields1 as $key => $value)
175 {
176 if ($arInsert[0] <> '') $arInsert[0] .= ", ";
177 $arInsert[0] .= $key;
178 if ($arInsert[1] <> '') $arInsert[1] .= ", ";
179 $arInsert[1] .= $value;
180 }
181
182 $strSql =
183 "INSERT INTO b_sale_user_transact(".$arInsert[0].") ".
184 "VALUES(".$arInsert[1].")";
185 $DB->Query($strSql);
186
187 $ID = intval($DB->LastID());
188
189 return $ID;
190 }
191
192 public static function Update($ID, $arFields)
193 {
194 global $DB;
195
196 $ID = intval($ID);
197 if ($ID <= 0)
198 {
199 return false;
200 }
201
202 $arFields1 = [];
203 foreach ($arFields as $key => $value)
204 {
205 if (mb_substr($key, 0, 1) == "=")
206 {
207 $arFields1[mb_substr($key, 1)] = $value;
208 unset($arFields[$key]);
209 }
210 }
211
213 {
214 return false;
215 }
216
217 if (!isset($arFields1['TIMESTAMP_X']))
218 {
219 $connection = Application::getConnection();
220 $helper = $connection->getSqlHelper();
221 unset($arFields['TIMESTAMP_X']);
222 $arFields['~TIMESTAMP_X'] = $helper->getCurrentDateTimeFunction();
223 unset($helper, $connection);
224 }
225
226 $strUpdate = $DB->PrepareUpdate("b_sale_user_transact", $arFields);
227
228 foreach ($arFields1 as $key => $value)
229 {
230 if ($strUpdate <> '') $strUpdate .= ", ";
231 $strUpdate .= $key."=".$value." ";
232 }
233
234 $strSql = "UPDATE b_sale_user_transact SET ".$strUpdate." WHERE ID = ".$ID." ";
235 $DB->Query($strSql);
236
237 return $ID;
238 }
239}
$connection
Определения actionsdefinitions.php:38
$db_res
Определения options_user_settings.php:8
static PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql=false, $callback=false, $arOptions=array())
Определения order.php:1070
static CheckFields($ACTION, &$arFields, $ID=0)
Определения user_transact.php:6
Определения dbresult.php:88
static Add($arFields)
Определения user_transact.php:144
static GetByID($ID)
Определения user_transact.php:9
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения user_transact.php:32
static Update($ID, $arFields)
Определения user_transact.php:192
$arFields
Определения dblapprove.php:5
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$res
Определения filter_act.php:7
if($ajaxMode) $ID
Определения get_user.php:27
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
if(empty($signedUserToken)) $key
Определения quickway.php:257
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
Определения waybill.php:936
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168