1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
discount_save.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/catalog/general/discount_save.php");
4
6{
7 public static function Add($arFields, $boolCalc = false)
8 {
9 global $DB;
10
12 return false;
13
14 $arInsert = $DB->PrepareInsert("b_catalog_discount", $arFields);
15
16 $strSql = "INSERT INTO b_catalog_discount(".$arInsert[0].") VALUES(".$arInsert[1].")";
17 $DB->Query($strSql);
18
19 $ID = (int)$DB->LastID();
20 if ($ID > 0)
21 {
22 foreach ($arFields['RANGES'] as &$arRange)
23 {
24 $arRange['DISCOUNT_ID'] = $ID;
25 $arInsert = $DB->PrepareInsert("b_catalog_disc_save_range", $arRange);
26 $strSql = "INSERT INTO b_catalog_disc_save_range(".$arInsert[0].") VALUES(".$arInsert[1].")";
27 $DB->Query($strSql);
28 }
29
30 foreach ($arFields['GROUP_IDS'] as &$intGroupID)
31 {
32 $strSql = "INSERT INTO b_catalog_disc_save_group(DISCOUNT_ID,GROUP_ID) VALUES(".$ID.",".$intGroupID.")";
33 $DB->Query($strSql);
34 }
35
36 $boolCalc = ($boolCalc === true);
37 if ($boolCalc)
39
40 }
41 return $ID;
42 }
43
44 public static function Update($intID, $arFields, $boolCalc = false)
45 {
46 global $DB;
47
48 $intID = (int)$intID;
49 if ($intID <= 0)
50 return false;
51
52 if (!CCatalogDiscountSave::CheckFields('UPDATE',$arFields,$intID))
53 return false;
54
55 $strUpdate = $DB->PrepareUpdate("b_catalog_discount", $arFields);
56 if (!empty($strUpdate))
57 {
58 $strSql = "update b_catalog_discount SET ".$strUpdate." where ID = ".$intID." and TYPE = ".self::ENTITY_ID;
59 $DB->Query($strSql);
60 }
61
62 if (!empty($arFields['RANGES']))
63 {
64 $DB->Query("delete from b_catalog_disc_save_range where DISCOUNT_ID = ".$intID);
65 foreach ($arFields['RANGES'] as &$arRange)
66 {
67 $arRange['DISCOUNT_ID'] = $intID;
68 $arInsert = $DB->PrepareInsert("b_catalog_disc_save_range", $arRange);
69 $strSql = "insert into b_catalog_disc_save_range(".$arInsert[0].") values(".$arInsert[1].")";
70 $DB->Query($strSql);
71 }
72 unset($arRange);
73 }
74
75 if (!empty($arFields['GROUP_IDS']))
76 {
77 $DB->Query("delete from b_catalog_disc_save_group where DISCOUNT_ID = ".$intID);
78 foreach ($arFields['GROUP_IDS'] as &$intGroupID)
79 {
80 $strSql = "insert into b_catalog_disc_save_group(DISCOUNT_ID,GROUP_ID) values(".$intID.",".$intGroupID.")";
81 $DB->Query($strSql);
82 }
83 unset($intGroupID);
84 }
85
86 $boolCalc = ($boolCalc === true);
87 if ($boolCalc)
89
90 return $intID;
91 }
92
101 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
102 {
103 global $DB;
104
106 "ID" => array("FIELD" => "DS.ID", "TYPE" => "int"),
107 "XML_ID" => array("FIELD" => "DS.XML_ID", "TYPE" => "string"),
108 'SITE_ID' => array("FIELD" => "DS.SITE_ID", "TYPE" => "string"),
109 "TYPE" => array("FIELD" => "DS.TYPE", "TYPE" => "int"),
110 'NAME' => array("FIELD" => "DS.NAME", "TYPE" => "string"),
111 'ACTIVE' => array("FIELD" => "DS.ACTIVE", "TYPE" => "char"),
112 "SORT" => array("FIELD" => "DS.SORT", "TYPE" => "int"),
113 "CURRENCY" => array("FIELD" => "DS.CURRENCY", "TYPE" => "string"),
114 "ACTIVE_FROM" => array("FIELD" => "DS.ACTIVE_FROM", "TYPE" => "datetime"),
115 "ACTIVE_TO" => array("FIELD" => "DS.ACTIVE_TO", "TYPE" => "datetime"),
116 "COUNT_PERIOD" => array("FIELD" => "DS.COUNT_PERIOD", "TYPE" => "char"),
117 "COUNT_SIZE" => array("FIELD" => "DS.COUNT_SIZE", "TYPE" => "int"),
118 "COUNT_TYPE" => array("FIELD" => "DS.COUNT_TYPE", "TYPE" => "char"),
119 "COUNT_FROM" => array("FIELD" => "DS.COUNT_FROM", "TYPE" => "datetime"),
120 "COUNT_TO" => array("FIELD" => "DS.COUNT_TO", "TYPE" => "datetime"),
121 "ACTION_SIZE" => array("FIELD" => "DS.ACTION_SIZE", "TYPE" => "int"),
122 "ACTION_TYPE" => array("FIELD" => "DS.ACTION_TYPE", "TYPE" => "char"),
123 "TIMESTAMP_X" => array("FIELD" => "DS.TIMESTAMP_X", "TYPE" => "datetime"),
124 "MODIFIED_BY" => array("FIELD" => "DS.MODIFIED_BY", "TYPE" => "int"),
125 "DATE_CREATE" => array("FIELD" => "DS.DATE_CREATE", "TYPE" => "datetime"),
126 "CREATED_BY" => array("FIELD" => "DS.CREATED_BY", "TYPE" => "int"),
127 "SALE_ID" => array("FIELD" => "DS.SALE_ID", "TYPE" => "int"),
128
129 "RANGE_FROM" => array("FIELD" => "DSR.RANGE_FROM", "TYPE" => "double", "FROM" => "LEFT JOIN b_catalog_disc_save_range DSR ON (DS.ID = DSR.DISCOUNT_ID)"),
130 "VALUE" => array("FIELD" => "DSR.VALUE", "TYPE" => "double", "FROM" => "LEFT JOIN b_catalog_disc_save_range DSR ON (DS.ID = DSR.DISCOUNT_ID)"),
131 "VALUE_TYPE" => array("FIELD" => "DSR.TYPE", "TYPE" => "char", "FROM" => "LEFT JOIN b_catalog_disc_save_range DSR ON (DS.ID = DSR.DISCOUNT_ID)"),
132
133 "GROUP_ID" => array("FIELD" => "DSG.GROUP_ID", "TYPE" => "int", "FROM" => "LEFT JOIN b_catalog_disc_save_group DSG ON (DS.ID = DSG.DISCOUNT_ID)"),
134 );
135
136 if (empty($arSelectFields))
137 $arSelectFields = array('ID','XML_ID','SITE_ID','TYPE','NAME','ACTIVE','SORT','CURRENCY','ACTIVE_FROM','ACTIVE_TO','COUNT_PERIOD','COUNT_SIZE','COUNT_TYPE','COUNT_FROM','COUNT_TO','ACTION_SIZE','ACTION_TYPE','TIMESTAMP_X','MODIFIED_BY','DATE_CREATE','CREATED_BY');
138 elseif (is_array($arSelectFields) && in_array('*',$arSelectFields))
139 $arSelectFields = array('ID','XML_ID','SITE_ID','TYPE','NAME','ACTIVE','SORT','CURRENCY','ACTIVE_FROM','ACTIVE_TO','COUNT_PERIOD','COUNT_SIZE','COUNT_TYPE','COUNT_FROM','COUNT_TO','ACTION_SIZE','ACTION_TYPE','TIMESTAMP_X','MODIFIED_BY','DATE_CREATE','CREATED_BY');
140
141 if (!is_array($arFilter))
142 $arFilter = array();
143 $arFilter['TYPE'] = self::ENTITY_ID;
144
145 $arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
146
147 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "DISTINCT", $arSqls["SELECT"]);
148
149 if (empty($arGroupBy) && is_array($arGroupBy))
150 {
151 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_discount DS ".$arSqls["FROM"];
152 if (!empty($arSqls["WHERE"]))
153 $strSql .= " WHERE ".$arSqls["WHERE"];
154 if (!empty($arSqls["GROUPBY"]))
155 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
156
157 $dbRes = $DB->Query($strSql);
158 if ($arRes = $dbRes->Fetch())
159 return $arRes["CNT"];
160 else
161 return false;
162 }
163
164 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_discount DS ".$arSqls["FROM"];
165 if (!empty($arSqls["WHERE"]))
166 $strSql .= " WHERE ".$arSqls["WHERE"];
167 if (!empty($arSqls["GROUPBY"]))
168 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
169 if (!empty($arSqls["ORDERBY"]))
170 $strSql .= " ORDER BY ".$arSqls["ORDERBY"];
171
172 $intTopCount = 0;
173 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
174 if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
175 {
176 $intTopCount = intval($arNavStartParams["nTopCount"]);
177 }
178 if ($boolNavStartParams && 0 >= $intTopCount)
179 {
180 $strSql_tmp = "SELECT COUNT('x') as CNT FROM b_catalog_discount DS ".$arSqls["FROM"];
181 if (!empty($arSqls["WHERE"]))
182 $strSql_tmp .= " WHERE ".$arSqls["WHERE"];
183 if (!empty($arSqls["GROUPBY"]))
184 $strSql_tmp .= " GROUP BY ".$arSqls["GROUPBY"];
185
186 $dbRes = $DB->Query($strSql_tmp);
187 $cnt = 0;
188 if (empty($arSqls["GROUPBY"]))
189 {
190 if ($arRes = $dbRes->Fetch())
191 $cnt = $arRes["CNT"];
192 }
193 else
194 {
195 $cnt = $dbRes->SelectedRowsCount();
196 }
197
198 $dbRes = new CDBResult();
199
200 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
201 }
202 else
203 {
204 if ($boolNavStartParams && 0 < $intTopCount)
205 {
206 $strSql .= " LIMIT ".$intTopCount;
207 }
208 $dbRes = $DB->Query($strSql);
209 }
210
211 return $dbRes;
212 }
213
214 public static function GetRangeByDiscount($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
215 {
216 global $DB;
217
219 "ID" => array("FIELD" => "DSR.ID", "TYPE" => "int"),
220 "DISCOUNT_ID" => array("FIELD" => "DSR.DISCOUNT_ID", "TYPE" => "int"),
221 "RANGE_FROM" => array("FIELD" => "DSR.RANGE_FROM", "TYPE" => "double"),
222 "VALUE" => array("FIELD" => "DSR.VALUE", "TYPE" => "double"),
223 "TYPE" => array("FIELD" => "DSR.TYPE", "TYPE" => "char"),
224 );
225
226 $arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
227
228 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
229
230 if (empty($arGroupBy) && is_array($arGroupBy))
231 {
232 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_disc_save_range DSR ".$arSqls["FROM"];
233 if (!empty($arSqls["WHERE"]))
234 $strSql .= " WHERE ".$arSqls["WHERE"];
235 if (!empty($arSqls["GROUPBY"]))
236 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
237
238 $dbRes = $DB->Query($strSql);
239 if ($arRes = $dbRes->Fetch())
240 return $arRes["CNT"];
241 else
242 return false;
243 }
244
245 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_disc_save_range DSR ".$arSqls["FROM"];
246 if (!empty($arSqls["WHERE"]))
247 $strSql .= " WHERE ".$arSqls["WHERE"];
248 if (!empty($arSqls["GROUPBY"]))
249 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
250 if (!empty($arSqls["ORDERBY"]))
251 $strSql .= " ORDER BY ".$arSqls["ORDERBY"];
252
253 $intTopCount = 0;
254 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
255 if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
256 {
257 $intTopCount = intval($arNavStartParams["nTopCount"]);
258 }
259 if ($boolNavStartParams && 0 >= $intTopCount)
260 {
261 $strSql_tmp = "SELECT COUNT('x') as CNT FROM b_catalog_disc_save_range DSR ".$arSqls["FROM"];
262 if (!empty($arSqls["WHERE"]))
263 $strSql_tmp .= " WHERE ".$arSqls["WHERE"];
264 if (!empty($arSqls["GROUPBY"]))
265 $strSql_tmp .= " GROUP BY ".$arSqls["GROUPBY"];
266
267 $dbRes = $DB->Query($strSql_tmp);
268 $cnt = 0;
269 if (empty($arSqls["GROUPBY"]))
270 {
271 if ($arRes = $dbRes->Fetch())
272 $cnt = $arRes["CNT"];
273 }
274 else
275 {
276 $cnt = $dbRes->SelectedRowsCount();
277 }
278
279 $dbRes = new CDBResult();
280
281 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
282 }
283 else
284 {
285 if ($boolNavStartParams && 0 < $intTopCount)
286 {
287 $strSql .= " LIMIT ".$intTopCount;
288 }
289 $dbRes = $DB->Query($strSql);
290 }
291
292 return $dbRes;
293 }
294
295 public static function GetGroupByDiscount($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
296 {
297 global $DB;
298
300 "ID" => array("FIELD" => "DSG.ID", "TYPE" => "int"),
301 "DISCOUNT_ID" => array("FIELD" => "DSG.DISCOUNT_ID", "TYPE" => "int"),
302 "GROUP_ID" => array("FIELD" => "DSG.GROUP_ID", "TYPE" => "int"),
303 );
304
305 $arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
306
307 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
308
309 if (empty($arGroupBy) && is_array($arGroupBy))
310 {
311 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_disc_save_group DSG ".$arSqls["FROM"];
312 if (!empty($arSqls["WHERE"]))
313 $strSql .= " WHERE ".$arSqls["WHERE"];
314 if (!empty($arSqls["GROUPBY"]))
315 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
316
317 $dbRes = $DB->Query($strSql);
318 if ($arRes = $dbRes->Fetch())
319 return $arRes["CNT"];
320 else
321 return false;
322 }
323
324 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_disc_save_group DSG ".$arSqls["FROM"];
325 if (!empty($arSqls["WHERE"]))
326 $strSql .= " WHERE ".$arSqls["WHERE"];
327 if (!empty($arSqls["GROUPBY"]))
328 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
329 if (!empty($arSqls["ORDERBY"]))
330 $strSql .= " ORDER BY ".$arSqls["ORDERBY"];
331
332 $intTopCount = 0;
333 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
334 if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
335 {
336 $intTopCount = intval($arNavStartParams["nTopCount"]);
337 }
338 if ($boolNavStartParams && 0 >= $intTopCount)
339 {
340 $strSql_tmp = "SELECT COUNT('x') as CNT FROM b_catalog_disc_save_group DSG ".$arSqls["FROM"];
341 if (!empty($arSqls["WHERE"]))
342 $strSql_tmp .= " WHERE ".$arSqls["WHERE"];
343 if (!empty($arSqls["GROUPBY"]))
344 $strSql_tmp .= " GROUP BY ".$arSqls["GROUPBY"];
345
346 $dbRes = $DB->Query($strSql_tmp);
347 $cnt = 0;
348 if (empty($arSqls["GROUPBY"]))
349 {
350 if ($arRes = $dbRes->Fetch())
351 $cnt = $arRes["CNT"];
352 }
353 else
354 {
355 $cnt = $dbRes->SelectedRowsCount();
356 }
357
358 $dbRes = new CDBResult();
359
360 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
361 }
362 else
363 {
364 if ($boolNavStartParams && 0 < $intTopCount)
365 {
366 $strSql .= " LIMIT ".$intTopCount;
367 }
368 $dbRes = $DB->Query($strSql);
369 }
370
371 return $dbRes;
372 }
373
374 public static function GetUserInfoByDiscount($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
375 {
376 global $DB;
377
379 "ID" => array("FIELD" => "DSU.ID", "TYPE" => "int"),
380 "DISCOUNT_ID" => array("FIELD" => "DSU.DISCOUNT_ID", "TYPE" => "int"),
381 "USER_ID" => array("FIELD" => "DSU.USER_ID", "TYPE" => "int"),
382 "ACTIVE_FROM" => array("FIELD" => "DSU.ACTIVE_FROM", "TYPE" => "datetime"),
383 "ACTIVE_TO" => array("FIELD" => "DSU.ACTIVE_TO", "TYPE" => "datetime"),
384 "RANGE_FROM" => array("FIELD" => "DSU.RANGE_FROM", "TYPE" => "double"),
385 );
386
387 $arSqls = CCatalog::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
388
389 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
390
391 if (empty($arGroupBy) && is_array($arGroupBy))
392 {
393 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_disc_save_user DSU ".$arSqls["FROM"];
394 if (!empty($arSqls["WHERE"]))
395 $strSql .= " WHERE ".$arSqls["WHERE"];
396 if (!empty($arSqls["GROUPBY"]))
397 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
398
399 $dbRes = $DB->Query($strSql);
400 if ($arRes = $dbRes->Fetch())
401 return $arRes["CNT"];
402 else
403 return false;
404 }
405
406 $strSql = "SELECT ".$arSqls["SELECT"]." FROM b_catalog_disc_save_user DSU ".$arSqls["FROM"];
407 if (!empty($arSqls["WHERE"]))
408 $strSql .= " WHERE ".$arSqls["WHERE"];
409 if (!empty($arSqls["GROUPBY"]))
410 $strSql .= " GROUP BY ".$arSqls["GROUPBY"];
411 if (!empty($arSqls["ORDERBY"]))
412 $strSql .= " ORDER BY ".$arSqls["ORDERBY"];
413
414 $intTopCount = 0;
415 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
416 if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
417 {
418 $intTopCount = intval($arNavStartParams["nTopCount"]);
419 }
420 if ($boolNavStartParams && 0 >= $intTopCount)
421 {
422 $strSql_tmp = "SELECT COUNT('x') as CNT FROM b_catalog_disc_save_user DSU ".$arSqls["FROM"];
423 if (!empty($arSqls["WHERE"]))
424 $strSql_tmp .= " WHERE ".$arSqls["WHERE"];
425 if (!empty($arSqls["GROUPBY"]))
426 $strSql_tmp .= " GROUP BY ".$arSqls["GROUPBY"];
427
428 $dbRes = $DB->Query($strSql_tmp);
429 $cnt = 0;
430 if (empty($arSqls["GROUPBY"]))
431 {
432 if ($arRes = $dbRes->Fetch())
433 $cnt = $arRes["CNT"];
434 }
435 else
436 {
437 $cnt = $dbRes->SelectedRowsCount();
438 }
439
440 $dbRes = new CDBResult();
441
442 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
443 }
444 else
445 {
446 if ($boolNavStartParams && 0 < $intTopCount)
447 {
448 $strSql .= " LIMIT ".$intTopCount;
449 }
450 $dbRes = $DB->Query($strSql);
451 }
452
453 return $dbRes;
454 }
455
456 protected static function __GetDiscountIDByGroup($arUserGroup = array())
457 {
458 global $DB;
459
460 $arResult = array();
461
462 if (!empty($arUserGroup) && is_array($arUserGroup))
463 {
464 $arValid = array();
465 foreach ($arUserGroup as &$intGroupID)
466 {
467 $intGroupID = intval($intGroupID);
468 if (0 < $intGroupID && 2 != $intGroupID)
469 $arValid[] = $intGroupID;
470 }
471 if (isset($intGroupID))
472 unset($intGroupID);
473 if (!empty($arValid))
474 {
475 $arUserGroup = array_unique($arValid);
476
477 $strUserGroup = implode(' or GROUP_ID = ',$arUserGroup);
478
479 $strQuery = 'select DISCOUNT_ID from b_catalog_disc_save_group WHERE GROUP_ID = '.$strUserGroup;
480
481 $rsDiscounts = $DB->Query($strQuery);
482 while ($arDiscount = $rsDiscounts->Fetch())
483 {
484 $arResult[] = intval($arDiscount['DISCOUNT_ID']);
485 }
486 if (!empty($arResult))
487 $arResult = array_unique($arResult);
488 }
489 }
490
491 return $arResult;
492 }
493
494 protected static function __GetUserInfoByDiscount($arParams, $arSettings = array())
495 {
496 global $DB;
497
498 $arResult = false;
499 if (!empty($arParams) && is_array($arParams))
500 {
501 if (!is_array($arSettings))
502 $arSettings = array();
503 $boolActiveFromFilter = true;
504 $boolDelete = true;
505 if (!empty($arSettings) && isset($arSettings['ACTIVE_FROM']))
506 $boolActiveFromFilter = (true === $arSettings['ACTIVE_FROM'] ? true : false);
507 if (!empty($arSettings) && isset($arSettings['DELETE']))
508 $boolDelete = (true === $arSettings['DELETE'] ? true : false);
509
510 $intUserID = intval($arParams['USER_ID']);
511 $intDiscountID = intval($arParams['DISCOUNT_ID']);
512 $strActiveDate = strval($arParams['ACTIVE_FROM']);
513 if (0 < $intUserID && 0 < $intDiscountID && !($boolActiveFromFilter && empty($strActiveDate)))
514 {
515 $strQuery = 'select U.*, '.
516 $DB->DateToCharFunction('U.ACTIVE_FROM', 'FULL').' as ACTIVE_FROM_FORMAT, '.
517 $DB->DateToCharFunction('U.ACTIVE_TO', 'FULL').' as ACTIVE_TO_FORMAT '.
518 'from b_catalog_disc_save_user U where DISCOUNT_ID = '.$intDiscountID.' AND USER_ID = '.$intUserID;
519 if ($boolActiveFromFilter)
520 $strQuery .= ' AND ACTIVE_FROM >= '.$DB->CharToDateFunction($strActiveDate);
521 $rsResults = $DB->Query($strQuery);
522 if ($arResult = $rsResults->Fetch())
523 {
524
525 }
526 else
527 {
528 if ($boolDelete)
529 {
530 $strQuery = 'delete from b_catalog_disc_save_user where DISCOUNT_ID = '.$intDiscountID.' AND USER_ID = '.$intUserID;
531 $DB->Query($strQuery);
532 }
533 }
534 }
535 }
536 return $arResult;
537 }
538
539 protected static function __UpdateUserInfoByDiscount($arParams, $arSettings = array())
540 {
541 global $DB;
542 if (!empty($arParams) && is_array($arParams))
543 {
544 if (!is_array($arSettings))
545 $arSettings = array();
546 $boolSearch = false;
547 $boolDelete = true;
548 if (!empty($arSettings) && isset($arSettings['SEARCH']))
549 $boolSearch = (true === $arSettings['SEARCH'] ? true : false);
550 if (!empty($arSettings) && isset($arSettings['DELETE']))
551 $boolDelete = (true === $arSettings['DELETE'] ? true : false);
552
553 $intUserID = intval($arParams['USER_ID']);
554 $intDiscountID = intval($arParams['DISCOUNT_ID']);
555 $strActiveFrom = strval($arParams['ACTIVE_FROM']);
556 $strActiveTo = strval($arParams['ACTIVE_TO']);
557 if (0 < $intUserID && 0 < $intDiscountID && !empty($strActiveFrom) && !empty($strActiveTo))
558 {
559 if ($boolSearch)
560 {
561 $strQuery = 'select ID from b_catalog_disc_save_user where DISCOUNT_ID = '.$intDiscountID.' AND USER_ID = '.$intUserID.' limit 1';
562 $rsItems = $DB->Query($strQuery);
563 if ($arItem = $rsItems->Fetch())
564 {
565 return;
566 }
567 }
568 if ($boolDelete)
569 {
570 $strQuery = 'delete from b_catalog_disc_save_user where DISCOUNT_ID = '.$intDiscountID.' AND USER_ID = '.$intUserID;
571 $DB->Query($strQuery);
572 }
573 $arInsert = $DB->PrepareInsert("b_catalog_disc_save_user", $arParams);
574 $strQuery =
575 "INSERT INTO b_catalog_disc_save_user(".$arInsert[0].") ".
576 "VALUES(".$arInsert[1].")";
577 $DB->Query($strQuery);
578 }
579 }
580 }
581}
$arParams
Определения access_dialog.php:21
$arResult
Определения generate_coupon.php:16
static UserDiscountCalc($intID, $arFields=array(), $boolNew=false)
Определения discount_save.php:430
static CheckFields($strAction, &$arFields, $intID=0)
Определения discount_save.php:99
static PrepareSql(&$arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields)
Определения catalog.php:389
static Add($arFields, $boolCalc=false)
Определения discount_save.php:7
static GetRangeByDiscount($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения discount_save.php:214
static Update($intID, $arFields, $boolCalc=false)
Определения discount_save.php:44
static GetGroupByDiscount($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения discount_save.php:295
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения discount_save.php:101
static GetUserInfoByDiscount($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения discount_save.php:374
static __UpdateUserInfoByDiscount($arParams, $arSettings=array())
Определения discount_save.php:539
static __GetUserInfoByDiscount($arParams, $arSettings=array())
Определения discount_save.php:494
static __GetDiscountIDByGroup($arUserGroup=array())
Определения discount_save.php:456
$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
if($ajaxMode) $ID
Определения get_user.php:27
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
$arRes
Определения options.php:104
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168