1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
dictionary.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/classes/general/dictionary.php");
4
6{
7 public static function GetList($by = 's_c_sort', $order = 'asc', $arFilter = [])
8 {
9 global $DB;
10 $arSqlSearch = Array();
11 $leftJoinSite = "";
12 $leftJoinUser = "";
13 if (is_array($arFilter))
14 {
15 $filterKeys = array_keys($arFilter);
16 $filterKeysCount = count($filterKeys);
17 for ($i=0; $i<$filterKeysCount; $i++)
18 {
19 $key = $filterKeys[$i];
20 $val = $arFilter[$filterKeys[$i]];
21 if ((is_array($val) && count($val)<=0) || (!is_array($val) && ((string) $val == '' || $val==='NOT_REF')))
22 continue;
23 $match_value_set = (in_array($key."_EXACT_MATCH", $filterKeys)) ? true : false;
24 $key = strtoupper($key);
25 switch($key)
26 {
27 case "ID":
28 case "SID":
29 if (is_array($val)) $val = implode(" | ", $val);
30 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
31 $arSqlSearch[] = GetFilterQuery("D.".$key, $val, $match);
32 break;
33 case "SITE":
34 if (is_array($val)) $val = implode(" | ", $val);
35 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
36 $arSqlSearch[] = GetFilterQuery("DS.SITE_ID", $val, $match);
37 $leftJoinSite .= "LEFT JOIN b_ticket_dictionary_2_site DS ON (D.ID = DS.DICTIONARY_ID)";
38 $select_user = ", DS.SITE_ID ";
39 break;
40 case "TYPE":
41 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
42 $arSqlSearch[] = GetFilterQuery("D.C_TYPE", $val, $match);
43 break;
44 case "NAME":
45 case "DESCR":
46 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
47 $arSqlSearch[] = GetFilterQuery("D.".$key, $val, $match);
48 break;
49 case "RESPONSIBLE_ID":
50 if (intval($val)>0) $arSqlSearch[] = "D.RESPONSIBLE_USER_ID = '".intval($val)."'";
51 elseif ($val==0) $arSqlSearch[] = "(D.RESPONSIBLE_USER_ID is null or D.RESPONSIBLE_USER_ID=0)";
52 break;
53 case "RESPONSIBLE":
54 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
55 $arSqlSearch[] = GetFilterQuery("D.RESPONSIBLE_USER_ID, U.LOGIN, U.LAST_NAME, U.NAME", $val, $match);
56 $select_user = ",
57 U.LOGIN RESPONSIBLE_LOGIN,
58 concat(ifnull(U.NAME,''),' ',ifnull(U.LAST_NAME,'')) RESPONSIBLE_NAME
59 ";
60 $leftJoinUser = "LEFT JOIN b_user U ON (U.ID = D.RESPONSIBLE_USER_ID)";
61 break;
62 case "DEFAULT":
63 $arSqlSearch[] = ($val=="Y") ? "D.SET_AS_DEFAULT='Y'" : "D.SET_AS_DEFAULT='N'";
64 break;
65 case "LID":
66 case "FIRST_SITE_ID":
67 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
68 $arSqlSearch[] = GetFilterQuery("D.FIRST_SITE_ID",$val,$match);
69 break;
70 }
71 }
72 }
73
74 if ($by == "s_id")
75 {
76 $strSqlOrder = "D.ID";
77 }
78 elseif ($by == "s_c_sort")
79 {
80 $strSqlOrder = "D.C_SORT";
81 }
82 elseif ($by == "s_sid")
83 {
84 $strSqlOrder = "D.SID";
85 }
86 elseif ($by == "s_lid")
87 {
88 $strSqlOrder = "D.FIRST_SITE_ID";
89 }
90 elseif ($by == "s_name")
91 {
92 $strSqlOrder = "D.NAME";
93 }
94 elseif ($by == "s_responsible")
95 {
96 $strSqlOrder = "D.RESPONSIBLE_USER_ID";
97 }
98 elseif ($by == "s_dropdown")
99 {
100 $strSqlOrder = "D.C_SORT, D.ID, D.NAME";
101 }
102 else
103 {
104 $strSqlOrder = "D.C_SORT";
105 }
106
107 if ($order == "desc")
108 {
109 $strSqlOrder .= " desc ";
110 }
111 else
112 {
113 $strSqlOrder .= " asc ";
114 }
115
116 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
117 $strSql = "
118 SELECT
119 D.*,
120 D.FIRST_SITE_ID LID,
121 D.ID REFERENCE_ID,
122 D.NAME REFERENCE
123 $select_user
124 FROM
125 b_ticket_dictionary D
126 $leftJoinUser
127 $leftJoinSite
128 WHERE
129 $strSqlSearch
130 GROUP BY
131 D.ID
132 ORDER BY
133 case D.C_TYPE
134 when 'C' then '1'
135 when 'F' then '2'
136 when 'S' then '3'
137 when 'M' then '4'
138 when 'K' then '5'
139 when 'SR' then '6'
140 when 'D' then '7'
141 else '' end,
142 $strSqlOrder
143 ";
144 $res = $DB->Query($strSql);
145
146 return $res;
147 }
148}
Определения dictionary.php:6
static GetList($by='s_c_sort', $order='asc', $arFilter=[])
Определения dictionary.php:7
$res
Определения filter_act.php:7
GetFilterSqlSearch($arSqlSearch=array(), $FilterLogic="FILTER_logic")
Определения filter_tools.php:397
GetFilterQuery($field, $val, $procent="Y", $ex_sep=array(), $clob="N", $div_fields="Y", $clob_upper="N")
Определения filter_tools.php:383
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
$order
Определения payment.php:8
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
Определения prolog_main_admin.php:393
if(empty($signedUserToken)) $key
Определения quickway.php:257
$i
Определения factura.php:643
</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
$val
Определения options.php:1793
$arFilter
Определения user_search.php:106