1C-Bitrix 25.700.0
Загрузка...
Поиск...
Не найдено
sla.php
См. документацию.
1<?php
2
3require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/support/classes/general/sla.php");
4
6{
7 // get SLA list
8 public static function GetList(&$arSort, $arFilter=Array(), &$isFiltered)
9 {
10 global $DB, $USER, $APPLICATION;
11 $isFiltered = false;
12
13 // filter params correct
15 {
16 $arSqlSearch = Array();
17
18 if (is_array($arFilter) && count($arFilter)>0)
19 {
20
21 $filterKeys = array_keys($arFilter);
22 $filterKeysCount = count($filterKeys);
23 for ($i=0; $i<$filterKeysCount; $i++)
24 {
25
26 $key = $filterKeys[$i];
27 $val = $arFilter[$filterKeys[$i]];
28 if ((is_array($val) && count($val)<=0) || (!is_array($val) && ((string) $val == '' || $val==='NOT_REF')))
29 {
30 continue;
31 }
32 $matchValueSet = (in_array($key."_EXACT_MATCH", $filterKeys)) ? true : false;
33 $key = mb_strtoupper($key);
34 if (is_array($val))
35 {
36 $val = implode(" | ",$val);
37 }
38 switch($key)
39 {
40
41 case "ID":
42 case "SLA_ID":
43 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $matchValueSet) ? "Y" : "N";
44 $arSqlSearch[] = GetFilterQuery("S.".$key,$val,$match);
45 break;
46 case "NAME":
47 case "DESCRIPTION":
48 case "DEADLINE_SOURCE":
49 $match = ($arFilter[$key."_EXACT_MATCH"]=="Y" && $matchValueSet) ? "N" : "Y";
50 $arSqlSearch[] = GetFilterQuery("S.".$key, $val, $match);
51 break;
52 case "SITE":
53 $val .= " | ALL";
54 $match = ($arFilter[$key."_EXACT_MATCH"]=="N" && $matchValueSet) ? "Y" : "N";
55 $arSqlSearch[] = GetFilterQuery("SS.SITE_ID", $val, $match);
56 $left_join_site = "LEFT JOIN b_ticket_sla_2_site SS ON (S.ID = SS.SLA_ID)";
57 break;
58
59 }
60 }
61 }
62 }
63
64 $strSqlSearch = GetFilterSqlSearch($arSqlSearch);
65
66 $arSort = is_array($arSort) ? $arSort : array();
67 if (count($arSort)>0)
68 {
69 $ar1 = array_merge($DB->GetTableFieldsList("b_ticket_sla"), array());
70 $ar2 = array_keys($arSort);
71 $arDiff = array_diff($ar2, $ar1);
72 if (is_array($arDiff) && count($arDiff)>0)
73 {
74 foreach($arDiff as $value)
75 {
76 unset($arSort[$value]);
77 }
78 }
79 }
80 if (count($arSort)<=0)
81 {
82 $arSort = array("PRIORITY" => "DESC");
83 }
84 foreach ($arSort as $by => $order)
85 {
86 if(mb_strtoupper($order) != "DESC" )
87 {
88 $order="ASC";
89 }
90 if ($by=="RESPONSE_TIME")
91 {
92 $arSqlOrder[] = "case RESPONSE_TIME_UNIT when 'day' then 3 when 'hour' then 2 when 'minute' then 1 end $order";
93 $arSqlOrder[] = $by." ".$order;
94 }
95 else
96 {
97 $arSqlOrder[] = $by." ".$order;
98 }
99 }
100 if (is_array($arSqlOrder) && count($arSqlOrder)>0)
101 {
102 $strSqlOrder = " ORDER BY ".implode(",", $arSqlOrder);
103 }
104
105 $strSql = "
106 SELECT DISTINCT
107 S.*,
108 case S.RESPONSE_TIME_UNIT
109 when 'day' then S.RESPONSE_TIME*1440
110 when 'hour' then S.RESPONSE_TIME*60
111 when 'minute' then S.RESPONSE_TIME
112 end M_RESPONSE_TIME,
113 case S.NOTICE_TIME_UNIT
114 when 'day' then S.NOTICE_TIME*1440
115 when 'hour' then S.NOTICE_TIME*60
116 when 'minute' then S.NOTICE_TIME
117 end M_NOTICE_TIME,
118 S.ID REFERENCE_ID,
119 S.NAME REFERENCE,
120 ".$DB->DateToCharFunction("S.DATE_MODIFY")." DATE_MODIFY_F,
121 ".$DB->DateToCharFunction("S.DATE_CREATE")." DATE_CREATE_F
122 FROM
123 b_ticket_sla S
124 $left_join_site
125 WHERE
126 $strSqlSearch
127 $strSqlOrder
128 ";
129
130 $rs = $DB->Query($strSql);
131 $isFiltered = (IsFiltered($strSqlSearch));
132 return $rs;
133 }
134}
global $APPLICATION
Определения include.php:80
static CheckFilter($arFilter)
Определения support.php:296
Определения sla.php:6
Определения sla.php:6
static GetList(&$arSort, $arFilter=Array(), &$isFiltered)
Определения sla.php:8
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
Определения file_new.php:804
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
IsFiltered($strSqlSearch)
Определения filter_tools.php:337
$_SERVER["DOCUMENT_ROOT"]
Определения cron_frame.php:9
global $DB
Определения cron_frame.php:29
global $USER
Определения csv_new_run.php:40
$order
Определения payment.php:8
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
$rs
Определения action.php:82
$arFilter
Определения user_search.php:106