8 public static function GetList($by =
's_c_sort',
$order =
'asc',
$arFilter = [], $is_filtered =
null, $arSelect = [])
13 static $arWhereFields = [
16 'FIELD_NAME' =>
'S.ID',
17 'FIELD_TYPE' =>
'int',
21 $obQueryWhere->SetFields($arWhereFields);
23 if (!is_array($arSelect) || !$arSelect)
25 $arSelect = [
'ID',
'C_SORT',
'ACTIVE',
'TITLE',
'DESCRIPTION',
'IS_FINAL',
'TIMESTAMP_X',
'DOCUMENTS',
'NOTIFY'];
30 $strSqlOrder =
'ORDER BY S.ID';
33 elseif ($by ===
's_timestamp')
35 $strSqlOrder =
'ORDER BY S.TIMESTAMP_X';
36 $arSelect[] =
'TIMESTAMP_X';
38 elseif ($by ===
's_active')
40 $strSqlOrder =
'ORDER BY S.ACTIVE';
41 $arSelect[] =
'ACTIVE';
43 elseif ($by ===
's_c_sort')
45 $strSqlOrder =
'ORDER BY S.C_SORT';
46 $arSelect[] =
'C_SORT';
50 $strSqlOrder =
'ORDER BY S.TITLE ';
51 $arSelect[] =
'TITLE';
53 elseif ($by ===
's_description')
55 $strSqlOrder =
'ORDER BY S.DESCRIPTION';
56 $arSelect[] =
'DESCRIPTION';
58 elseif ($by ===
's_documents')
60 $strSqlOrder =
'ORDER BY DOCUMENTS';
61 $arSelect[] =
'DOCUMENTS';
65 $strSqlOrder =
'ORDER BY S.C_SORT';
66 $arSelect[] =
'C_SORT';
74 $strSqlOrder .=
' ' .
$order .
' ';
78 'C_SORT' =>
'S.C_SORT',
79 'ACTIVE' =>
'S.ACTIVE',
80 'NOTIFY' =>
'S.NOTIFY',
82 'DESCRIPTION' =>
'S.DESCRIPTION',
83 'IS_FINAL' =>
'S.IS_FINAL',
84 'TIMESTAMP_X' =>
'S.TIMESTAMP_X TIMESTAMP_X_TEMP, ' .
$DB->DateToCharFunction(
'S.TIMESTAMP_X'),
85 'DOCUMENTS' =>
'count(DISTINCT D.ID)',
86 'REFERENCE_ID' =>
'S.ID',
87 'REFERENCE' =>
$DB->Concat(
"'['",
'S.ID' ,
"'] '",
'S.TITLE'),
90 foreach ($arSelect as $field)
92 if (array_key_exists($field, $arSelectFields))
94 $arSqlSelect[$field] = $arSelectFields[$field] .
' as ' . $field;
101 'C_SORT' =>
'S.C_SORT',
102 'ACTIVE' =>
'S.ACTIVE',
103 'NOTIFY' =>
'S.NOTIFY',
104 'TITLE' =>
'S.TITLE',
105 'DESCRIPTION' =>
'S.DESCRIPTION',
106 'IS_FINAL' =>
'S.IS_FINAL',
107 'TIMESTAMP_X' =>
'S.TIMESTAMP_X',
108 'REFERENCE_ID' =>
'S.ID',
109 'REFERENCE' =>
$DB->Concat(
"'['",
'S.ID' ,
"'] '",
'S.TITLE'),
112 foreach ($arSelect as $field)
114 if (array_key_exists($field, $arGroupFields))
116 $arSqlGroup[$field] = $arGroupFields[$field];
118 elseif (array_key_exists($field, $arSelectFields))
120 $arSqlGroup[
'ID'] =
'S.ID';
125 $arSqlSearch = $arSqlSearch_h = $arSqlSearch_g = [];
140 if ((
string)
$val ===
'' || (
string)
$val ===
'NOT_REF')
146 $match_value_set = array_key_exists(
$key .
'_EXACT_MATCH',
$arFilter);
152 $arSqlSearch[] = $obQueryWhere->GetQuery([
$key =>
$val]);
156 $predicate = (
$val ==
'Y') ?
"S.ACTIVE='Y'" :
"S.ACTIVE='N'";
162 $arSqlSearch[] =
"S.ACTIVE <> '" .
$val .
"'";
167 $match = ($match_value_set &&
$arFilter[
$key .
'_EXACT_MATCH'] ==
'Y') ?
'N' :
'Y';
172 $match = ($match_value_set &&
$arFilter[
$key .
'_EXACT_MATCH'] ==
'Y') ?
'N' :
'Y';
177 $arSqlSearch_h[] =
'count(D.ID) >= ' . intval(
$val);
182 $arSqlSearch_h[] =
'count(D.ID) <= ' . intval(
$val);
192 foreach (
$val as
$i => $v)
202 $arSqlSearch_g[] =
'G.GROUP_ID in (' . implode(
', ',
$groups) .
')';
207 case 'PERMISSION_TYPE_1':
211 $arSqlSearch_g[] =
'G.PERMISSION_TYPE >= ' .
$val;
216 case 'PERMISSION_TYPE_2':
220 $arSqlSearch_g[] =
'G.PERMISSION_TYPE <= ' .
$val;
226 if ($predicate <>
'' && $predicate !=
'0')
228 $arSqlSearch[] = $predicate;
233 if (
count($arSqlSearch) > 0)
242 if (
count($arSqlSearch_h) > 0)
244 $strSqlSearch_h =
'(' . implode(
') and (', $arSqlSearch_h) .
') ';
248 $strSqlSearch_h =
'';
251 if (
count($arSqlSearch_g) > 0)
253 if ($strSqlSearch <>
'')
255 $strSqlSearch .=
' AND ';
257 $strSqlSearch .=
'(' . implode(
') and (', $arSqlSearch_g) .
') ';
262 ' . implode(
', ', $arSqlSelect) .
'
265 ' . ($strSqlSearch_h <>
'' || array_key_exists(
'DOCUMENTS', $arSqlSelect) ?
'LEFT JOIN b_workflow_document D ON (D.STATUS_ID = S.ID)' :
'') .
'
266 ' . (
count($arSqlSearch_g) > 0 ?
'LEFT JOIN b_workflow_status2group G ON (G.STATUS_ID = S.ID)' :
'') .
'
267 ' . ($strSqlSearch <>
'' ?
'WHERE ' . $strSqlSearch :
'') .
'
268 ' . ($bGroup ?
'GROUP BY ' . implode(
', ', $arSqlGroup) :
'') .
'
269 ' . ($strSqlSearch_h <>
'' ?
'HAVING ' . $strSqlSearch_h :
'') .
'
287 if (strtolower($strOrder) !=
'asc')
308 return self::GetList(
's_c_sort', $strOrder,
$arFilter,
null, [
'REFERENCE_ID',
'REFERENCE',
'IS_FINAL',
'C_SORT']);
315 $strSql =
'SELECT max(C_SORT) MAX_SORT FROM b_workflow_status';
316 $z =
$DB->Query($strSql);
319 return intval(
$zr[
'MAX_SORT']) + 100;
344 $aMsg[] = [
'id' =>
'TITLE',
'text' =>
GetMessage(
'FLOW_FORGOT_TITLE')];
350 $GLOBALS[
'APPLICATION']->ThrowException($e);
384 if ((
$ID == 1) && array_key_exists(
'ACTIVE',
$arFields))
394 $strUpdate =
$DB->PrepareUpdate(
'b_workflow_status',
$arFields);
395 if ($strUpdate !=
'')
397 $strSql =
'UPDATE b_workflow_status SET ' . $strUpdate .
' WHERE ID = ' .
$ID;
408 $STATUS_ID = intval($STATUS_ID);
409 $PERMISSION_TYPE = intval($PERMISSION_TYPE);
411 $DB->Query(
'DELETE FROM b_workflow_status2group WHERE STATUS_ID = ' . $STATUS_ID .
' AND PERMISSION_TYPE = ' . $PERMISSION_TYPE);
412 if (is_array(
$arGroups) && ($PERMISSION_TYPE == 1 || $PERMISSION_TYPE == 2))
416 $GROUP_ID = intval($GROUP_ID);
418 'STATUS_ID' => $STATUS_ID,
419 'GROUP_ID' => $GROUP_ID,
420 'PERMISSION_TYPE' => $PERMISSION_TYPE,
static GetDropDownList($SHOW_ALL='N', $strOrder='desc', $arFilter=[])
CheckFields($ID, $arFields)
static GetList($by='s_c_sort', $order='asc', $arFilter=[], $is_filtered=null, $arSelect=[])
SetPermissions($STATUS_ID, $arGroups, $PERMISSION_TYPE=1)
IncludeModuleLangFile($filepath, $lang=false, $bReturnArray=false)
GetMessage($name, $aReplace=null)
if( $daysToExpire >=0 &&$daysToExpire< 60 elseif)( $daysToExpire< 0)
if(empty($signedUserToken)) $key
</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."%"
$GLOBALS['_____370096793']