1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
form_cformstatus.php
См. документацию.
1<?php
2
4{
5 public static function GetList($FORM_ID, $by = 's_sort', $order = 'asc', $arFilter = [])
6 {
7 global $DB, $strError;
8 $FORM_ID = intval($FORM_ID);
9 $arSqlSearch = Array();
10 $arSqlSearch_h = [];
11 $strSqlSearch_h = '';
12 if (is_array($arFilter))
13 {
14 $filter_keys = array_keys($arFilter);
15 $keyCount = count($filter_keys);
16 for ($i=0; $i<$keyCount; $i++)
17 {
18 $key = $filter_keys[$i];
19 $val = $arFilter[$filter_keys[$i]];
20 if ((string)$val == '' || $val=="NOT_REF")
21 continue;
22 if (is_array($val) && empty($val))
23 continue;
24 $match_value_set = (in_array($key."_EXACT_MATCH", $filter_keys));
25 $key = strtoupper($key);
26 switch($key)
27 {
28 case "ID":
29 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $match_value_set) ? "Y" : "N";
30 $arSqlSearch[] = GetFilterQuery("S.ID",$val,$match);
31 break;
32 case "ACTIVE":
33 $arSqlSearch[] = ($val=="Y") ? "S.ACTIVE='Y'" : "S.ACTIVE='N'";
34 break;
35 case "TITLE":
36 case "DESCRIPTION":
37 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $match_value_set) ? "N" : "Y";
38 $arSqlSearch[] = GetFilterQuery("S.".$key, $val, $match);
39 break;
40 case "RESULTS_1":
41 $arSqlSearch_h[] = "count(R.ID)>='".intval($val)."'";
42 break;
43 case "RESULTS_2":
44 $arSqlSearch_h[] = "count(R.ID)<='".intval($val)."'";
45 break;
46 }
47 }
48 if (!empty($arSqlSearch_h))
49 {
50 $strSqlSearch_h = ' and ('.implode(') and (', $arSqlSearch_h).') ';
51 }
52 }
53
54 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
55 if ($by == "s_id") $strSqlOrder = "ORDER BY S.ID";
56 elseif ($by == "s_timestamp") $strSqlOrder = "ORDER BY S.TIMESTAMP_X";
57 elseif ($by == "s_active") $strSqlOrder = "ORDER BY S.ACTIVE";
58 elseif ($by == "s_c_sort" ||
59 $by == "s_sort") $strSqlOrder = "ORDER BY S.C_SORT";
60 elseif ($by == "s_default") $strSqlOrder = "ORDER BY S.DEFAULT_VALUE";
61 elseif ($by == "s_title") $strSqlOrder = "ORDER BY S.TITLE ";
62 elseif ($by == "s_description") $strSqlOrder = "ORDER BY S.DESCRIPTION";
63 elseif ($by == "s_results") $strSqlOrder = "ORDER BY RESULTS";
64 else
65 {
66 $strSqlOrder = "ORDER BY S.C_SORT";
67 }
68
69 if ($order!="desc")
70 {
71 $strSqlOrder .= " asc ";
72 }
73 else $strSqlOrder .= " desc ";
74
75 $strSql = "
76 SELECT
77 S.ID, S.CSS, S.FORM_ID, S.C_SORT, S.ACTIVE, S.TITLE, S.DESCRIPTION, S.DEFAULT_VALUE, S.HANDLER_OUT, S.HANDLER_IN,
78 ".$DB->DateToCharFunction("S.TIMESTAMP_X")." TIMESTAMP_X,
79 count(distinct R.ID) RESULTS
80 FROM
81 b_form_status S
82 LEFT JOIN b_form_result R ON (R.STATUS_ID = S.ID and R.FORM_ID=S.FORM_ID)
83 WHERE
84 $strSqlSearch
85 and S.FORM_ID = $FORM_ID
86 GROUP BY S.ID
87 HAVING
88 1=1
89 $strSqlSearch_h
90 $strSqlOrder
91 ";
92 $res = $DB->Query($strSql);
93
94 return $res;
95 }
96
97 public static function GetByID($ID)
98 {
99 global $DB, $strError;
100 $ID = intval($ID);
101 $strSql = "
102 SELECT
103 S.ID, S.CSS, S.FORM_ID, S.C_SORT, S.ACTIVE, S.TITLE, S.DESCRIPTION, S.DEFAULT_VALUE, S.HANDLER_OUT, S.HANDLER_IN, S.MAIL_EVENT_TYPE,
104 ".$DB->DateToCharFunction("S.TIMESTAMP_X")." TIMESTAMP_X,
105 count(distinct R.ID) RESULTS
106 FROM
107 b_form_status S
108 LEFT JOIN b_form_result R ON (R.STATUS_ID = S.ID and R.FORM_ID=S.FORM_ID)
109 WHERE
110 S.ID = $ID
111 GROUP BY S.ID
112 ";
113 $res = $DB->Query($strSql);
114 return $res;
115 }
116
117 public static function GetDropdown($FORM_ID, $PERMISSION = array("MOVE"), $OWNER_ID=0)
118 {
119 global $DB, $USER, $strError;
120 $FORM_ID = intval($FORM_ID);
121 if (CForm::IsAdmin())
122 {
123 $strSql = "
124 SELECT
125 S.ID REFERENCE_ID,
126 concat('[',S.ID,'] ',S.TITLE) REFERENCE
127 FROM
128 b_form_status S
129 WHERE
130 S.FORM_ID = $FORM_ID
131 and S.ACTIVE = 'Y'
132 ORDER BY S.C_SORT
133 ";
134 }
135 else
136 {
137 if (is_array($PERMISSION)) $arrPERMISSION = $PERMISSION;
138 else
139 {
140 if (intval($PERMISSION)==2) $PERMISSION = "MOVE";
141 if (intval($PERMISSION)==1) $PERMISSION = "VIEW, MOVE";
142 $arrPERMISSION = explode(",",$PERMISSION);
143 }
144 $str = "''";
145 $arrPERM = array();
146 if (is_array($arrPERMISSION) && count($arrPERMISSION)>0)
147 {
148 foreach ($arrPERMISSION as $perm)
149 {
150 $arrPERM[] = trim($perm);
151 $str .= ",'".$DB->ForSql(trim($perm))."'";
152 }
153 }
154 $arGroups = $USER->GetUserGroupArray();
155 if (!is_array($arGroups)) $arGroups[] = 2;
156 if ($OWNER_ID==$USER->GetID() || (in_array("VIEW",$arrPERM) && in_array("MOVE",$arrPERM))) $arGroups[] = 0;
157 if (is_array($arGroups) && count($arGroups)>0) $groups = implode(",",$arGroups);
158 $strSql = "
159 SELECT
160 S.ID REFERENCE_ID,
161 concat('[',S.ID,'] ',S.TITLE) REFERENCE
162 FROM
163 b_form_status S,
164 b_form_status_2_group G
165 WHERE
166 S.FORM_ID = $FORM_ID
167 and S.ACTIVE = 'Y'
168 and G.STATUS_ID = S.ID
169 and G.GROUP_ID in ($groups)
170 and G.PERMISSION in ($str)
171 GROUP BY
172 S.ID, S.TITLE
173 ORDER BY S.C_SORT
174 ";
175 }
176 $z = $DB->Query($strSql);
177 return $z;
178 }
179}
static IsAdmin()
Определения form_callform.php:8
Определения form_cformstatus.php:4
static GetByID($ID)
Определения form_cformstatus.php:97
static GetDropdown($FORM_ID, $PERMISSION=array("MOVE"), $OWNER_ID=0)
Определения form_cformstatus.php:117
static GetList($FORM_ID, $by='s_sort', $order='asc', $arFilter=[])
Определения form_cformstatus.php:5
$str
Определения commerceml2.php:63
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
$arGroups
Определения options.php:1766
$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
$perm
Определения options.php:169
if($ajaxMode) $ID
Определения get_user.php:27
$strError
Определения options_user_settings.php:4
global $DB
Определения cron_frame.php:29
global $USER
Определения csv_new_run.php:40
$groups
Определения options.php:30
$z
Определения options.php:31
$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