1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
recurring.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/general/recurring.php");
4
5/***********************************************************************/
6/*********** CSaleRecurring ******************************************/
7/***********************************************************************/
9{
10 public static function GetByID($ID)
11 {
12 global $DB;
13
14 $ID = (int)$ID;
15 if ($ID <= 0)
16 return false;
17
18 if (isset($GLOBALS["SALE_RECURRING"]["SALE_RECURRING_CACHE_".$ID]) && is_array($GLOBALS["SALE_RECURRING"]["SALE_RECURRING_CACHE_".$ID]) && is_set($GLOBALS["SALE_RECURRING"]["SALE_RECURRING_CACHE_".$ID], "ID"))
19 {
20 return $GLOBALS["SALE_RECURRING"]["SALE_RECURRING_CACHE_".$ID];
21 }
22 else
23 {
24 $strSql =
25 "SELECT SR.ID, SR.USER_ID, SR.MODULE, SR.PRODUCT_ID, SR.PRODUCT_NAME, ".
26 " SR.PRODUCT_URL, SR.PRODUCT_PRICE_ID, SR.RECUR_SCHEME_TYPE, ".
27 " SR.RECUR_SCHEME_LENGTH, SR.WITHOUT_ORDER, SR.PRICE, SR.CURRENCY, SR.ORDER_ID, ".
28 " SR.CANCELED, SR.DESCRIPTION, SR.CALLBACK_FUNC, SR.PRODUCT_PROVIDER_CLASS, ".
29 " SR.REMAINING_ATTEMPTS, SR.SUCCESS_PAYMENT, SR.CANCELED_REASON, ".
30 " ".$DB->DateToCharFunction("SR.TIMESTAMP_X", "FULL")." as TIMESTAMP_X, ".
31 " ".$DB->DateToCharFunction("SR.DATE_CANCELED", "FULL")." as DATE_CANCELED, ".
32 " ".$DB->DateToCharFunction("SR.PRIOR_DATE", "FULL")." as PRIOR_DATE, ".
33 " ".$DB->DateToCharFunction("SR.NEXT_DATE", "FULL")." as NEXT_DATE ".
34 "FROM b_sale_recurring SR WHERE SR.ID = ".$ID;
35
36 $db_res = $DB->Query($strSql);
37 if ($res = $db_res->Fetch())
38 {
39 $GLOBALS["SALE_RECURRING"]["SALE_RECURRING_CACHE_".$ID] = $res;
40 return $res;
41 }
42 }
43
44 return false;
45 }
46
47 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
48 {
49 global $DB;
50
51 if (empty($arSelectFields))
52 $arSelectFields = array("ID", "USER_ID", "MODULE", "PRODUCT_ID", "PRODUCT_NAME", "PRODUCT_URL", "PRODUCT_PRICE_ID", "RECUR_SCHEME_TYPE", "RECUR_SCHEME_LENGTH", "WITHOUT_ORDER", "PRICE", "CURRENCY", "ORDER_ID", "CANCELED", "DATE_CANCELED", "CANCELED_REASON", "CALLBACK_FUNC", "PRODUCT_PROVIDER_CLASS", "DESCRIPTION", "TIMESTAMP_X", "PRIOR_DATE", "NEXT_DATE", "REMAINING_ATTEMPTS", "SUCCESS_PAYMENT");
53
54 // FIELDS -->
56 "ID" => array("FIELD" => "SR.ID", "TYPE" => "int"),
57 "USER_ID" => array("FIELD" => "SR.USER_ID", "TYPE" => "int"),
58 "MODULE" => array("FIELD" => "SR.MODULE", "TYPE" => "string"),
59 "PRODUCT_ID" => array("FIELD" => "SR.PRODUCT_ID", "TYPE" => "int"),
60 "PRODUCT_NAME" => array("FIELD" => "SR.PRODUCT_NAME", "TYPE" => "string"),
61 "PRODUCT_URL" => array("FIELD" => "SR.PRODUCT_URL", "TYPE" => "string"),
62 "PRODUCT_PRICE_ID" => array("FIELD" => "SR.PRODUCT_PRICE_ID", "TYPE" => "int"),
63 "RECUR_SCHEME_TYPE" => array("FIELD" => "SR.RECUR_SCHEME_TYPE", "TYPE" => "char"),
64 "RECUR_SCHEME_LENGTH" => array("FIELD" => "SR.RECUR_SCHEME_LENGTH", "TYPE" => "int"),
65 "WITHOUT_ORDER" => array("FIELD" => "SR.WITHOUT_ORDER", "TYPE" => "char"),
66 "PRICE" => array("FIELD" => "SR.PRICE", "TYPE" => "double"),
67 "CURRENCY" => array("FIELD" => "SR.CURRENCY", "TYPE" => "string"),
68 "ORDER_ID" => array("FIELD" => "SR.ORDER_ID", "TYPE" => "int"),
69 "CANCELED" => array("FIELD" => "SR.CANCELED", "TYPE" => "char"),
70 "DATE_CANCELED" => array("FIELD" => "SR.DATE_CANCELED", "TYPE" => "datetime"),
71 "CANCELED_REASON" => array("FIELD" => "SR.CANCELED_REASON", "TYPE" => "string"),
72 "CALLBACK_FUNC" => array("FIELD" => "SR.CALLBACK_FUNC", "TYPE" => "string"),
73 "PRODUCT_PROVIDER_CLASS" => array("FIELD" => "SR.PRODUCT_PROVIDER_CLASS", "TYPE" => "string"),
74 "DESCRIPTION" => array("FIELD" => "SR.DESCRIPTION", "TYPE" => "string"),
75 "TIMESTAMP_X" => array("FIELD" => "SR.TIMESTAMP_X", "TYPE" => "datetime"),
76 "PRIOR_DATE" => array("FIELD" => "SR.PRIOR_DATE", "TYPE" => "datetime"),
77 "NEXT_DATE" => array("FIELD" => "SR.NEXT_DATE", "TYPE" => "datetime"),
78 "REMAINING_ATTEMPTS" => array("FIELD" => "SR.REMAINING_ATTEMPTS", "TYPE" => "int"),
79 "SUCCESS_PAYMENT" => array("FIELD" => "SR.SUCCESS_PAYMENT", "TYPE" => "char"),
80 "USER_LOGIN" => array("FIELD" => "U.LOGIN", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (SR.USER_ID = U.ID)"),
81 "USER_ACTIVE" => array("FIELD" => "U.ACTIVE", "TYPE" => "char", "FROM" => "INNER JOIN b_user U ON (SR.USER_ID = U.ID)"),
82 "USER_NAME" => array("FIELD" => "U.NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (SR.USER_ID = U.ID)"),
83 "USER_LAST_NAME" => array("FIELD" => "U.LAST_NAME", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (SR.USER_ID = U.ID)"),
84 "USER_EMAIL" => array("FIELD" => "U.EMAIL", "TYPE" => "string", "FROM" => "INNER JOIN b_user U ON (SR.USER_ID = U.ID)"),
85 "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 (SR.USER_ID = U.ID)")
86 );
87 // <-- FIELDS
88
89 $arSqls = CSaleOrder::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
90
91 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "", $arSqls["SELECT"]);
92
93 if (is_array($arGroupBy) && count($arGroupBy)==0)
94 {
95 $strSql =
96 "SELECT ".$arSqls["SELECT"]." ".
97 "FROM b_sale_recurring SR ".
98 " ".$arSqls["FROM"]." ";
99 if ($arSqls["WHERE"] <> '')
100 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
101 if ($arSqls["GROUPBY"] <> '')
102 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
103
104 //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
105
106 $dbRes = $DB->Query($strSql);
107 if ($arRes = $dbRes->Fetch())
108 return $arRes["CNT"];
109 else
110 return False;
111 }
112
113 $strSql =
114 "SELECT ".$arSqls["SELECT"]." ".
115 "FROM b_sale_recurring SR ".
116 " ".$arSqls["FROM"]." ";
117 if ($arSqls["WHERE"] <> '')
118 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
119 if ($arSqls["GROUPBY"] <> '')
120 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
121 if ($arSqls["ORDERBY"] <> '')
122 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
123
124 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"])<=0)
125 {
126 $strSql_tmp =
127 "SELECT COUNT('x') as CNT ".
128 "FROM b_sale_recurring SR ".
129 " ".$arSqls["FROM"]." ";
130 if ($arSqls["WHERE"] <> '')
131 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
132 if ($arSqls["GROUPBY"] <> '')
133 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
134
135 //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
136
137 $dbRes = $DB->Query($strSql_tmp);
138 $cnt = 0;
139 if ($arSqls["GROUPBY"] == '')
140 {
141 if ($arRes = $dbRes->Fetch())
142 $cnt = $arRes["CNT"];
143 }
144 else
145 {
146 // FOR MYSQL!!! ANOTHER CODE FOR ORACLE
147 $cnt = $dbRes->SelectedRowsCount();
148 }
149
150 $dbRes = new CDBResult();
151
152 //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
153
154 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
155 }
156 else
157 {
158 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"])>0)
159 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
160
161 //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
162
163 $dbRes = $DB->Query($strSql);
164 }
165
166 return $dbRes;
167 }
168
169 public static function Add($arFields)
170 {
171 global $DB;
172
174 return false;
175
176 $arInsert = $DB->PrepareInsert("b_sale_recurring", $arFields);
177
178 $strSql =
179 "INSERT INTO b_sale_recurring(".$arInsert[0].") ".
180 "VALUES(".$arInsert[1].")";
181 $DB->Query($strSql);
182
183 $ID = intval($DB->LastID());
184
185 return $ID;
186 }
187}
$db_res
Определения options_user_settings.php:8
static PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql=false, $callback=false, $arOptions=array())
Определения order.php:1070
Определения recurring.php:14
static CheckFields($ACTION, &$arFields, $ID=0)
Определения recurring.php:15
Определения recurring.php:9
static Add($arFields)
Определения recurring.php:169
static GetByID($ID)
Определения recurring.php:10
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения recurring.php:47
$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
is_set($a, $k=false)
Определения tools.php:2133
</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
$GLOBALS['_____370096793']
Определения update_client.php:1
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168