1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
affiliate.php
См. документацию.
1<?php
2
4
5require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/general/affiliate.php");
6
8{
9 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
10 {
11 global $DB;
12
13 if (empty($arSelectFields) || !is_array($arSelectFields))
14 {
15 $arSelectFields = [
16 'ID',
17 'SITE_ID',
18 'USER_ID',
19 'AFFILIATE_ID',
20 'PLAN_ID',
21 'ACTIVE',
22 'TIMESTAMP_X',
23 'DATE_CREATE',
24 'PAID_SUM',
25 'APPROVED_SUM',
26 'PENDING_SUM',
27 'ITEMS_NUMBER',
28 'ITEMS_SUM',
29 'LAST_CALCULATE',
30 'AFF_SITE',
31 'AFF_DESCRIPTION',
32 'FIX_PLAN',
33 ];
34 }
35
36 // FIELDS -->
38 "ID" => array("FIELD" => "A.ID", "TYPE" => "int"),
39 "SITE_ID" => array("FIELD" => "A.SITE_ID", "TYPE" => "string"),
40 "USER_ID" => array("FIELD" => "A.USER_ID", "TYPE" => "int"),
41 "AFFILIATE_ID" => array("FIELD" => "A.AFFILIATE_ID", "TYPE" => "int"),
42 "PLAN_ID" => array("FIELD" => "A.PLAN_ID", "TYPE" => "int"),
43 "ACTIVE" => array("FIELD" => "A.ACTIVE", "TYPE" => "char"),
44 "TIMESTAMP_X" => array("FIELD" => "A.TIMESTAMP_X", "TYPE" => "datetime"),
45 "DATE_CREATE" => array("FIELD" => "A.DATE_CREATE", "TYPE" => "datetime"),
46 "PAID_SUM" => array("FIELD" => "A.PAID_SUM", "TYPE" => "double"),
47 "APPROVED_SUM" => array("FIELD" => "A.APPROVED_SUM", "TYPE" => "double"),
48 "PENDING_SUM" => array("FIELD" => "A.PENDING_SUM", "TYPE" => "double"),
49 "ITEMS_NUMBER" => array("FIELD" => "A.ITEMS_NUMBER", "TYPE" => "int"),
50 "ITEMS_SUM" => array("FIELD" => "A.ITEMS_SUM", "TYPE" => "double"),
51 "LAST_CALCULATE" => array("FIELD" => "A.LAST_CALCULATE", "TYPE" => "datetime"),
52 "AFF_SITE" => array("FIELD" => "A.AFF_SITE", "TYPE" => "string"),
53 "AFF_DESCRIPTION" => array("FIELD" => "A.AFF_DESCRIPTION", "TYPE" => "string"),
54 "FIX_PLAN" => array("FIELD" => "A.FIX_PLAN", "TYPE" => "char"),
55
56 "PLAN_SITE_ID" => array("FIELD" => "AP.SITE_ID", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
57 "PLAN_NAME" => array("FIELD" => "AP.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
58 "PLAN_DESCRIPTION" => array("FIELD" => "AP.DESCRIPTION", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
59 "PLAN_TIMESTAMP_X" => array("FIELD" => "AP.TIMESTAMP_X", "TYPE" => "datetime", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
60 "PLAN_ACTIVE" => array("FIELD" => "AP.ACTIVE", "TYPE" => "char", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
61 "PLAN_BASE_RATE" => array("FIELD" => "AP.BASE_RATE", "TYPE" => "double", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
62 "PLAN_BASE_RATE_TYPE" => array("FIELD" => "AP.BASE_RATE_TYPE", "TYPE" => "char", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
63 "PLAN_BASE_RATE_CURRENCY" => array("FIELD" => "AP.BASE_RATE_CURRENCY", "TYPE" => "string", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
64 "PLAN_MIN_PAY" => array("FIELD" => "AP.MIN_PAY", "TYPE" => "double", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
65 "PLAN_MIN_PLAN_VALUE" => array("FIELD" => "AP.MIN_PLAN_VALUE", "TYPE" => "double", "FROM" => "INNER JOIN b_sale_affiliate_plan AP ON (A.PLAN_ID = AP.ID)"),
66
67 "USER_LOGIN" => array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (A.USER_ID = U.ID)"),
68 "USER_NAME" => array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (A.USER_ID = U.ID)"),
69 "USER_LAST_NAME" => array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (A.USER_ID = U.ID)"),
70 "USER_EMAIL" => array("FIELD" => "U.EMAIL", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (A.USER_ID = U.ID)"),
71 "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 (A.USER_ID = U.ID)"),
72
73 "ORDER_ID" => array("FIELD" => "O.ID", "TYPE" => "int", "FROM" => "INNER JOIN b_sale_order O ON (A.ID = O.AFFILIATE_ID)"),
74 "ORDER_DATE_ALLOW_DELIVERY" => array("FIELD" => "O.DATE_ALLOW_DELIVERY", "TYPE" => "datetime", "FROM" => "INNER JOIN b_sale_order O ON (A.ID = O.AFFILIATE_ID)"),
75 "ORDER_ALLOW_DELIVERY" => array("FIELD" => "O.ALLOW_DELIVERY", "TYPE" => "char", "FROM" => "INNER JOIN b_sale_order O ON (A.ID = O.AFFILIATE_ID)"),
76 );
77 // <-- FIELDS
78
79 $arSqls = CSaleOrder::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
80
81 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
82
83 if (empty($arGroupBy) && is_array($arGroupBy))
84 {
85 $strSql =
86 "SELECT ".$arSqls["SELECT"]." ".
87 "FROM b_sale_affiliate A ".
88 " ".$arSqls["FROM"]." ";
89 if ($arSqls["WHERE"] <> '')
90 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
91 if ($arSqls["GROUPBY"] <> '')
92 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
93
94 $dbRes = $DB->Query($strSql);
95 if ($arRes = $dbRes->Fetch())
96 return $arRes["CNT"];
97 else
98 return False;
99 }
100
101 $strSql =
102 "SELECT ".$arSqls["SELECT"]." ".
103 "FROM b_sale_affiliate A ".
104 " ".$arSqls["FROM"]." ";
105 if ($arSqls["WHERE"] <> '')
106 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
107 if ($arSqls["GROUPBY"] <> '')
108 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
109 if ($arSqls["ORDERBY"] <> '')
110 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
111
112 $topCount = 0;
113 $useNavParams = is_array($arNavStartParams);
114 if ($useNavParams && isset($arNavStartParams['nTopCount']))
115 {
116 $topCount = (int)$arNavStartParams['nTopCount'];
117 }
118
119 if ($useNavParams && $topCount <= 0)
120 {
121 $strSql_tmp =
122 "SELECT COUNT('x') as CNT ".
123 "FROM b_sale_affiliate A ".
124 " ".$arSqls["FROM"]." ";
125 if ($arSqls["WHERE"] <> '')
126 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
127 if ($arSqls["GROUPBY"] <> '')
128 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
129
130 $dbRes = $DB->Query($strSql_tmp);
131 $cnt = 0;
132 if ($arSqls["GROUPBY"] == '')
133 {
134 if ($arRes = $dbRes->Fetch())
135 $cnt = $arRes["CNT"];
136 }
137 else
138 {
139 // FOR MYSQL!!! ANOTHER CODE FOR ORACLE
140 $cnt = $dbRes->SelectedRowsCount();
141 }
142
143 $dbRes = new CDBResult();
144
145 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
146 }
147 else
148 {
149 if ($useNavParams && $topCount > 0)
150 {
151 $strSql .= 'LIMIT ' . $topCount;
152 }
153
154 $dbRes = $DB->Query($strSql);
155 }
156
157 return $dbRes;
158 }
159
160 public static function Add($arFields)
161 {
162 global $DB;
163
164 $arFields1 = [];
165 foreach ($arFields as $key => $value)
166 {
167 if (mb_substr($key, 0, 1) == "=")
168 {
169 $arFields1[mb_substr($key, 1)] = $value;
170 unset($arFields[$key]);
171 }
172 }
173
175 {
176 return false;
177 }
178
179 foreach (GetModuleEvents('sale', 'OnBeforeBAffiliateAdd', true) as $arEvent)
180 {
181 if (ExecuteModuleEventEx($arEvent, array(&$arFields)) === false)
182 {
183 return false;
184 }
185 }
186
187 if (!isset($arFields1['TIMESTAMP_X']))
188 {
189 $connection = Application::getConnection();
190 $helper = $connection->getSqlHelper();
191 unset($arFields['TIMESTAMP_X']);
192 $arFields['~TIMESTAMP_X'] = $helper->getCurrentDateTimeFunction();
193 unset($helper, $connection);
194 }
195
196 $arInsert = $DB->PrepareInsert("b_sale_affiliate", $arFields);
197
198 foreach ($arFields1 as $key => $value)
199 {
200 if ($arInsert[0] <> '')
201 {
202 $arInsert[0] .= ", ";
203 $arInsert[1] .= ", ";
204 }
205 $arInsert[0] .= $key;
206 $arInsert[1] .= $value;
207 }
208
209 $strSql =
210 "INSERT INTO b_sale_affiliate(".$arInsert[0].") ".
211 "VALUES(".$arInsert[1].")";
212 $DB->Query($strSql);
213
214 $ID = intval($DB->LastID());
215
216 foreach (GetModuleEvents('sale', 'OnAfterBAffiliateAdd', true) as $arEvent)
217 {
219 }
220
221 return $ID;
222 }
223
224 public static function Update($ID, $arFields)
225 {
226 global $DB;
227
228 $ID = intval($ID);
229 if ($ID <= 0)
230 {
231 return false;
232 }
233
234 $arFields1 = array();
235 foreach ($arFields as $key => $value)
236 {
237 if (mb_substr($key, 0, 1) == "=")
238 {
239 $arFields1[mb_substr($key, 1)] = $value;
240 unset($arFields[$key]);
241 }
242 }
243
245 {
246 return false;
247 }
248
249 foreach (GetModuleEvents('sale', 'OnBeforeAffiliateUpdate', true) as $arEvent)
250 {
251 if (ExecuteModuleEventEx($arEvent, array($ID, &$arFields)) === false)
252 {
253 return false;
254 }
255 }
256
257 if (!isset($arFields1['TIMESTAMP_X']))
258 {
259 $connection = Application::getConnection();
260 $helper = $connection->getSqlHelper();
261 unset($arFields['TIMESTAMP_X']);
262 $arFields['~TIMESTAMP_X'] = $helper->getCurrentDateTimeFunction();
263 unset($helper, $connection);
264 }
265
266 $strUpdate = $DB->PrepareUpdate("b_sale_affiliate", $arFields);
267
268 foreach ($arFields1 as $key => $value)
269 {
270 if ($strUpdate <> '')
271 $strUpdate = ", ".$strUpdate;
272 $strUpdate = $key."=".$value.$strUpdate;
273 }
274
275 $strSql = "UPDATE b_sale_affiliate SET ".$strUpdate." WHERE ID = ".$ID." ";
276 $DB->Query($strSql);
277
278 unset($GLOBALS["SALE_AFFILIATE"]["SALE_AFFILIATE_CACHE_".$ID]);
279
280 foreach (GetModuleEvents('sale', 'OnAfterAffiliateUpdate', true) as $arEvent)
281 {
283 }
284
285 return $ID;
286 }
287}
$connection
Определения actionsdefinitions.php:38
Определения affiliate.php:18
static CheckFields($ACTION, &$arFields, $ID=0)
Определения affiliate.php:39
static PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql=false, $callback=false, $arOptions=array())
Определения order.php:1070
Определения dbresult.php:88
Определения affiliate.php:8
static Add($arFields)
Определения affiliate.php:160
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения affiliate.php:9
static Update($ID, $arFields)
Определения affiliate.php:224
$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
ExecuteModuleEventEx($arEvent, $arParams=[])
Определения tools.php:5214
GetModuleEvents($MODULE_ID, $MESSAGE_ID, $bReturnArray=false)
Определения tools.php:5177
if(empty($signedUserToken)) $key
Определения quickway.php:257
$arRes
Определения options.php:104
$GLOBALS['_____370096793']
Определения update_client.php:1
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168