1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
discount.php
См. документацию.
1<?
2
3require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/sale/general/discount.php');
4
6{
15 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
16 {
17 global $DB;
18
19 if (!is_array($arOrder) && !is_array($arFilter))
20 {
21 $arOrder = (string)($arOrder);
22 $arFilter = (string)($arFilter);
23 if ($arOrder !== '' && $arFilter !== '')
24 $arOrder = array($arOrder => $arFilter);
25 else
26 $arOrder = array();
27 if (is_array($arGroupBy))
28 $arFilter = $arGroupBy;
29 else
30 $arFilter = array();
31 if (isset($arFilter["PRICE"]))
32 {
33 $valTmp = $arFilter["PRICE"];
34 unset($arFilter["PRICE"]);
35 $arFilter["<=PRICE_FROM"] = $valTmp;
36 $arFilter[">=PRICE_TO"] = $valTmp;
37 }
38 $arGroupBy = false;
39 }
40
42 "ID" => array("FIELD" => "D.ID", "TYPE" => "int"),
43 "XML_ID" => array("FIELD" => "D.XML_ID", "TYPE" => "string"),
44 "LID" => array("FIELD" => "D.LID", "TYPE" => "string"),
45 "SITE_ID" => array("FIELD" => "D.LID", "TYPE" => "string"),
46 "NAME" => array("FIELD" => "D.NAME", "TYPE" => "string"),
47 "PRICE_FROM" => array("FIELD" => "D.PRICE_FROM", "TYPE" => "double", "WHERE" => array("CSaleDiscount", "PrepareCurrency4Where")),
48 "PRICE_TO" => array("FIELD" => "D.PRICE_TO", "TYPE" => "double", "WHERE" => array("CSaleDiscount", "PrepareCurrency4Where")),
49 "CURRENCY" => array("FIELD" => "D.CURRENCY", "TYPE" => "string"),
50 "DISCOUNT_VALUE" => array("FIELD" => "D.DISCOUNT_VALUE", "TYPE" => "double"),
51 "DISCOUNT_TYPE" => array("FIELD" => "D.DISCOUNT_TYPE", "TYPE" => "char"),
52 "ACTIVE" => array("FIELD" => "D.ACTIVE", "TYPE" => "char"),
53 "SORT" => array("FIELD" => "D.SORT", "TYPE" => "int"),
54 "ACTIVE_FROM" => array("FIELD" => "D.ACTIVE_FROM", "TYPE" => "datetime"),
55 "ACTIVE_TO" => array("FIELD" => "D.ACTIVE_TO", "TYPE" => "datetime"),
56 "TIMESTAMP_X" => array("FIELD" => "D.TIMESTAMP_X", "TYPE" => "datetime"),
57 "MODIFIED_BY" => array("FIELD" => "D.MODIFIED_BY", "TYPE" => "int"),
58 "DATE_CREATE" => array("FIELD" => "D.DATE_CREATE", "TYPE" => "datetime"),
59 "CREATED_BY" => array("FIELD" => "D.CREATED_BY", "TYPE" => "int"),
60 "PRIORITY" => array("FIELD" => "D.PRIORITY", "TYPE" => "int"),
61 "LAST_DISCOUNT" => array("FIELD" => "D.LAST_DISCOUNT", "TYPE" => "char"),
62 "LAST_LEVEL_DISCOUNT" => array("FIELD" => "D.LAST_LEVEL_DISCOUNT", "TYPE" => "char"),
63 "VERSION" => array("FIELD" => "D.VERSION", "TYPE" => "int"),
64 "CONDITIONS" => array("FIELD" => "D.CONDITIONS", "TYPE" => "string"),
65 "UNPACK" => array("FIELD" => "D.UNPACK", "TYPE" => "string"),
66 "APPLICATION" => array("FIELD" => "D.APPLICATION", "TYPE" => "string"),
67 "ACTIONS" => array("FIELD" => "D.ACTIONS", "TYPE" => "string"),
68 "PRESET_ID" => array("FIELD" => "D.PRESET_ID", "TYPE" => "string"),
69 "USE_COUPONS" => array("FIELD" => "D.USE_COUPONS", "TYPE" => "char"),
70 "USER_GROUPS" => array("FIELD" => "DG.GROUP_ID", "TYPE" => "int","FROM" => "LEFT JOIN b_sale_discount_group DG ON (D.ID = DG.DISCOUNT_ID)")
71 );
72
73 if (empty($arSelectFields))
74 $arSelectFields = array('ID','LID','SITE_ID','PRICE_FROM','PRICE_TO','CURRENCY','DISCOUNT_VALUE','DISCOUNT_TYPE','ACTIVE','SORT','ACTIVE_FROM','ACTIVE_TO','PRIORITY','LAST_DISCOUNT', 'LAST_LEVEL_DISCOUNT','VERSION','NAME');
75 elseif (is_array($arSelectFields) && in_array('*',$arSelectFields))
76 $arSelectFields = array('ID','LID','SITE_ID','PRICE_FROM','PRICE_TO','CURRENCY','DISCOUNT_VALUE','DISCOUNT_TYPE','ACTIVE','SORT','ACTIVE_FROM','ACTIVE_TO','PRIORITY','LAST_DISCOUNT', 'LAST_LEVEL_DISCOUNT','VERSION','NAME');
77
78 $arSqls = CSaleOrder::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
79
80 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", '', $arSqls["SELECT"]);
81
82 if (empty($arGroupBy) && is_array($arGroupBy))
83 {
84 $strSql = "select ".$arSqls["SELECT"]." from b_sale_discount D ".$arSqls["FROM"];
85 if (!empty($arSqls["WHERE"]))
86 $strSql .= " where ".$arSqls["WHERE"];
87 if (!empty($arSqls["GROUPBY"]))
88 $strSql .= " group by ".$arSqls["GROUPBY"];
89
90 $dbRes = $DB->Query($strSql);
91 if ($arRes = $dbRes->Fetch())
92 return $arRes["CNT"];
93 else
94 return false;
95 }
96
97 $strSql = "select ".$arSqls["SELECT"]." from b_sale_discount D ".$arSqls["FROM"];
98 if (!empty($arSqls["WHERE"]))
99 $strSql .= " where ".$arSqls["WHERE"];
100 if (!empty($arSqls["GROUPBY"]))
101 $strSql .= " group by ".$arSqls["GROUPBY"];
102 if (!empty($arSqls["ORDERBY"]))
103 $strSql .= " order by ".$arSqls["ORDERBY"];
104
105 $intTopCount = 0;
106 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
107 if ($boolNavStartParams && isset($arNavStartParams['nTopCount']))
108 {
109 $intTopCount = (int)$arNavStartParams["nTopCount"];
110 }
111 if ($boolNavStartParams && $intTopCount <= 0)
112 {
113 $strSql_tmp = "select COUNT('x') as CNT from b_sale_discount D ".$arSqls["FROM"];
114 if (!empty($arSqls["WHERE"]))
115 $strSql_tmp .= " where ".$arSqls["WHERE"];
116 if (!empty($arSqls["GROUPBY"]))
117 $strSql_tmp .= " group by ".$arSqls["GROUPBY"];
118
119 $dbRes = $DB->Query($strSql_tmp);
120 $cnt = 0;
121 if (empty($arSqls["GROUPBY"]))
122 {
123 if ($arRes = $dbRes->Fetch())
124 $cnt = $arRes["CNT"];
125 }
126 else
127 {
128 $cnt = $dbRes->SelectedRowsCount();
129 }
130
131 $dbRes = new CDBResult();
132
133 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
134 }
135 else
136 {
137 if ($boolNavStartParams && $intTopCount > 0)
138 {
139 $strSql .= " limit ".$intTopCount;
140 }
141 $dbRes = $DB->Query($strSql);
142 }
143
144 return $dbRes;
145 }
146
155 public static function GetDiscountGroupList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
156 {
157 global $DB;
158
160 "ID" => array("FIELD" => "DG.ID", "TYPE" => "int"),
161 "DISCOUNT_ID" => array("FIELD" => "DG.DISCOUNT_ID", "TYPE" => "int"),
162 "GROUP_ID" => array("FIELD" => "DG.GROUP_ID", "TYPE" => "int"),
163 );
164
165 $arSqls = CSaleOrder::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
166
167 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
168
169 if (empty($arGroupBy) && is_array($arGroupBy))
170 {
171 $strSql = "select ".$arSqls["SELECT"]." from b_sale_discount_group DG ".$arSqls["FROM"];
172 if (!empty($arSqls["WHERE"]))
173 $strSql .= " where ".$arSqls["WHERE"];
174 if (!empty($arSqls["GROUPBY"]))
175 $strSql .= " group by ".$arSqls["GROUPBY"];
176
177 $dbRes = $DB->Query($strSql);
178 if ($arRes = $dbRes->Fetch())
179 return $arRes["CNT"];
180 else
181 return false;
182 }
183
184 $strSql = "select ".$arSqls["SELECT"]." from b_sale_discount_group DG ".$arSqls["FROM"];
185 if (!empty($arSqls["WHERE"]))
186 $strSql .= " where ".$arSqls["WHERE"];
187 if (!empty($arSqls["GROUPBY"]))
188 $strSql .= " group by ".$arSqls["GROUPBY"];
189 if (!empty($arSqls["ORDERBY"]))
190 $strSql .= " order by ".$arSqls["ORDERBY"];
191
192 $intTopCount = 0;
193 $boolNavStartParams = (!empty($arNavStartParams) && is_array($arNavStartParams));
194 if ($boolNavStartParams && array_key_exists('nTopCount', $arNavStartParams))
195 {
196 $intTopCount = intval($arNavStartParams["nTopCount"]);
197 }
198 if ($boolNavStartParams && 0 >= $intTopCount)
199 {
200 $strSql_tmp = "select COUNT('x') as CNT from b_sale_discount_group DG ".$arSqls["FROM"];
201 if (!empty($arSqls["WHERE"]))
202 $strSql_tmp .= " where ".$arSqls["WHERE"];
203 if (!empty($arSqls["GROUPBY"]))
204 $strSql_tmp .= " group by ".$arSqls["GROUPBY"];
205
206 $dbRes = $DB->Query($strSql_tmp);
207 $cnt = 0;
208 if (empty($arSqls["GROUPBY"]))
209 {
210 if ($arRes = $dbRes->Fetch())
211 $cnt = $arRes["CNT"];
212 }
213 else
214 {
215 $cnt = $dbRes->SelectedRowsCount();
216 }
217
218 $dbRes = new CDBResult();
219
220 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
221 }
222 else
223 {
224 if ($boolNavStartParams && 0 < $intTopCount)
225 {
226 $strSql .= " limit ".$intTopCount;
227 }
228 $dbRes = $DB->Query($strSql);
229 }
230
231 return $dbRes;
232 }
233}
Определения discount.php:11
static PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql=false, $callback=false, $arOptions=array())
Определения order.php:1070
Определения discount.php:6
static GetDiscountGroupList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения discount.php:155
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения discount.php:15
$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
$_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