1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
person_type.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/sale/general/person_type.php");
4
6{
7 public static function GetList($arOrder = array(), $arFilter = array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array())
8 {
9 global $DB;
10
11 if (!is_array($arOrder) && !is_array($arFilter))
12 {
13 $arOrder = strval($arOrder);
14 $arFilter = strval($arFilter);
15 if ($arOrder <> '' && $arFilter <> '')
16 $arOrder = array($arOrder => $arFilter);
17 else
18 $arOrder = array();
19 if (is_array($arGroupBy))
20 $arFilter = $arGroupBy;
21 else
22 $arFilter = array();
23 $arGroupBy = false;
24 }
25 if(empty($arSelectFields))
26 $arSelectFields = Array("ID", "LID", "NAME", "SORT", "ACTIVE", "CODE");
27
28 if(is_set($arFilter, "LID") && !empty($arFilter["LID"]))
29 {
30 $arFilter["LIDS"] = $arFilter["LID"];
31 unset($arFilter["LID"]);
32 }
33
35
36 // FIELDS -->
38 "ID" => array("FIELD" => "PT.ID", "TYPE" => "int"),
39 "LID" => array("FIELD" => "PT.LID", "TYPE" => "string"),
40 "LIDS" => array("FIELD" => "PTS.SITE_ID", "TYPE" => "string", "FROM" => "LEFT JOIN b_sale_person_type_site PTS ON (PT.ID = PTS.PERSON_TYPE_ID)"),
41 "NAME" => array("FIELD" => "PT.NAME", "TYPE" => "string"),
42 "CODE" => array("FIELD" => "PT.CODE", "TYPE" => "string"),
43 "SORT" => array("FIELD" => "PT.SORT", "TYPE" => "int"),
44 "ACTIVE" => array("FIELD" => "PT.ACTIVE", "TYPE" => "char"),
45 "ENTITY_REGISTRY_TYPE" => array("FIELD" => "ENTITY_REGISTRY_TYPE", "TYPE" => "string"),
46 );
47 // <-- FIELDS
48
49 $arSqls = CSaleOrder::PrepareSql($arFields, $arOrder, $arFilter, $arGroupBy, $arSelectFields);
50 $arSqls["SELECT"] = str_replace("%%_DISTINCT_%%", "DISTINCT", $arSqls["SELECT"]);
51
52 if (is_array($arGroupBy) && count($arGroupBy)==0)
53 {
54 $strSql =
55 "SELECT ".$arSqls["SELECT"]." ".
56 "FROM b_sale_person_type PT ".
57 " ".$arSqls["FROM"]." ";
58 if ($arSqls["WHERE"] <> '')
59 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
60 if ($arSqls["GROUPBY"] <> '')
61 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
62
63 //echo "!1!=".htmlspecialcharsbx($strSql)."<br>";
64
65 $dbRes = $DB->Query($strSql);
66 if ($arRes = $dbRes->Fetch())
67 return $arRes["CNT"];
68 else
69 return False;
70 }
71
72 $strSql =
73 "SELECT ".$arSqls["SELECT"]." ".
74 "FROM b_sale_person_type PT ".
75 " ".$arSqls["FROM"]." ";
76 if ($arSqls["WHERE"] <> '')
77 $strSql .= "WHERE ".$arSqls["WHERE"]." ";
78 if ($arSqls["GROUPBY"] <> '')
79 $strSql .= "GROUP BY ".$arSqls["GROUPBY"]." ";
80 if ($arSqls["ORDERBY"] <> '')
81 $strSql .= "ORDER BY ".$arSqls["ORDERBY"]." ";
82
83 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"])<=0)
84 {
85 $strSql_tmp =
86 "SELECT COUNT('x') as CNT ".
87 "FROM b_sale_person_type PT ".
88 " ".$arSqls["FROM"]." ";
89 if ($arSqls["WHERE"] <> '')
90 $strSql_tmp .= "WHERE ".$arSqls["WHERE"]." ";
91 if ($arSqls["GROUPBY"] <> '')
92 $strSql_tmp .= "GROUP BY ".$arSqls["GROUPBY"]." ";
93
94 //echo "!2.1!=".htmlspecialcharsbx($strSql_tmp)."<br>";
95
96 $dbRes = $DB->Query($strSql_tmp);
97 $cnt = 0;
98 if ($arSqls["GROUPBY"] == '')
99 {
100 if ($arRes = $dbRes->Fetch())
101 $cnt = $arRes["CNT"];
102 }
103 else
104 {
105 // FOR MYSQL!!! ANOTHER CODE FOR ORACLE
106 $cnt = $dbRes->SelectedRowsCount();
107 }
108
109 $dbRes = new CDBResult();
110
111 //echo "!2.2!=".htmlspecialcharsbx($strSql)."<br>";
112
113 $dbRes->NavQuery($strSql, $cnt, $arNavStartParams);
114 }
115 else
116 {
117 if (is_array($arNavStartParams) && intval($arNavStartParams["nTopCount"])>0)
118 $strSql .= "LIMIT ".intval($arNavStartParams["nTopCount"]);
119
120 //echo "!3!=".htmlspecialcharsbx($strSql)."<br>";
121
122 $dbRes = $DB->Query($strSql);
123 }
124
125
126 $arPT = array();
127 $arResTmp = array();
128 while ($arRes = $dbRes->Fetch())
129 {
130 if(intval($arRes["ID"]) > 0)
131 {
132 if(!in_array($arRes["ID"], $arPT))
133 $arPT[] = $arRes["ID"];
134 $arResTmp[] = $arRes;
135 }
136 }
137
138 if(!empty($arPT) && is_array($arPT))
139 {
140 $strSql = "SELECT * from b_sale_person_type_site WHERE PERSON_TYPE_ID IN (".implode(",", $arPT).")";
141 $dbRes1 = $DB->Query($strSql);
142 while ($arRes1 = $dbRes1->Fetch())
143 {
144 $arRes2[$arRes1["PERSON_TYPE_ID"]][] = $arRes1["SITE_ID"];
145 }
146 }
147
148 foreach($arResTmp as $k => $v)
149 $arResTmp[$k]["LIDS"] = $arRes2[$v["ID"]];
150
151 $dbRes = new CDBResult();
152 $dbRes->InitFromArray($arResTmp);
153
154 return $dbRes;
155 }
156
157 public static function Add($arFields)
158 {
159 global $DB;
160
162 return false;
163
164 $db_events = GetModuleEvents("sale", "OnBeforePersonTypeAdd");
165 while ($arEvent = $db_events->Fetch())
166 if (ExecuteModuleEventEx($arEvent, Array(&$arFields))===false)
167 return false;
168
169 $arLID = Array();
170 if(is_set($arFields, "LID"))
171 {
172 if(is_array($arFields["LID"]))
173 $arLID = $arFields["LID"];
174 else
175 $arLID[] = $arFields["LID"];
176
177 $str_LID = "''";
178 $arFields["LID"] = false;
179 foreach($arLID as $k => $v)
180 {
181 if($v <> '')
182 {
183 $str_LID .= ", '".$DB->ForSql($v)."'";
184 if(empty($arFields["LID"]))
185 $arFields["LID"] = $v;
186 }
187 else
188 unset($arLID[$k]);
189 }
190 }
191
192 $arFields['ENTITY_REGISTRY_TYPE'] = \Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER;
193
194 $arInsert = $DB->PrepareInsert("b_sale_person_type", $arFields);
195
196 $strSql =
197 "INSERT INTO b_sale_person_type(".$arInsert[0].") ".
198 "VALUES(".$arInsert[1].")";
199 $DB->Query($strSql);
200
201 $ID = intval($DB->LastID());
202
203 if(count($arLID)>0)
204 {
205 $strSql = "DELETE FROM b_sale_person_type_site WHERE PERSON_TYPE_ID=".$ID;
206 $DB->Query($strSql);
207
208 $strSql =
209 "INSERT INTO b_sale_person_type_site(PERSON_TYPE_ID, SITE_ID) ".
210 "SELECT ".$ID.", LID ".
211 "FROM b_lang ".
212 "WHERE LID IN (".$str_LID.") ";
213
214 $DB->Query($strSql);
215 }
216
217 unset($GLOBALS["SALE_PERSON_TYPE_LIST_CACHE"]);
218
219 $events = GetModuleEvents("sale", "OnPersonTypeAdd");
220 while ($arEvent = $events->Fetch())
221 ExecuteModuleEventEx($arEvent, Array($ID, $arFields));
222
223 return $ID;
224 }
225}
const REGISTRY_TYPE_ORDER
Определения registry.php:16
static PrepareSql(&$arFields, $arOrder, &$arFilter, $arGroupBy, $arSelectFields, $obUserFieldsSql=false, $callback=false, $arOptions=array())
Определения order.php:1070
static CheckFields($ACTION, &$arFields, $ID=false)
Определения person_type.php:80
Определения person_type.php:6
static Add($arFields)
Определения person_type.php:157
static GetList($arOrder=array(), $arFilter=array(), $arGroupBy=false, $arNavStartParams=false, $arSelectFields=array())
Определения person_type.php:7
$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
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
$k
Определения template_pdf.php:567
$GLOBALS['_____370096793']
Определения update_client.php:1
$arFilter
Определения user_search.php:106
$dbRes
Определения yandex_detail.php:168