static function GetList($arOrder = array(), $arFilter = array())
{
global $DB;
$arFields = array(
'GROUP_ID' => array(
'TABLE_ALIAS' => 'UG',
'FIELD_NAME' => 'UG.GROUP_ID',
'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'USER_ID' => array(
'TABLE_ALIAS' => 'UG',
'FIELD_NAME' => 'UG.USER_ID',
'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'CAN_VIEW_GROUP_MESSAGES' => array(
'TABLE_ALIAS' => 'UG',
'FIELD_NAME' => 'UG.CAN_VIEW_GROUP_MESSAGES',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'CAN_MAIL_GROUP_MESSAGES' => array(
'TABLE_ALIAS' => 'UG',
'FIELD_NAME' => 'UG.CAN_MAIL_GROUP_MESSAGES',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'CAN_MAIL_UPDATE_GROUP_MESSAGES' => array(
'TABLE_ALIAS' => 'UG',
'FIELD_NAME' => 'UG.CAN_MAIL_UPDATE_GROUP_MESSAGES',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'GROUP_NAME' => array(
'TABLE_ALIAS' => 'G',
'FIELD_NAME' => 'G.NAME',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'IS_TEAM_GROUP' => array(
'TABLE_ALIAS' => 'G',
'FIELD_NAME' => 'G.IS_TEAM_GROUP',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'LOGIN' => array(
'TABLE_ALIAS' => 'U',
'FIELD_NAME' => 'U.LOGIN',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'FIRST_NAME' => array(
'TABLE_ALIAS' => 'U',
'FIELD_NAME' => 'U.NAME',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'LAST_NAME' => array(
'TABLE_ALIAS' => 'U',
'FIELD_NAME' => 'U.LAST_NAME',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
);
$strOrder = '';
if (is_array($arOrder) && count($arOrder) > 0)
{
foreach ($arOrder as $k => $v)
{
if (array_key_exists($k, $arFields))
{
$v = mb_strtoupper($v);
if($v != 'DESC')
{
$v ='ASC';
}
if ($strOrder <> '')
{
$strOrder .= ', ';
}
$strOrder .= $arFields[$k]['FIELD_NAME'] . ' ' . $v;
}
}
}
$obQueryWhere = new CSQLWhere;
$obQueryWhere->SetFields($arFields);
$where = $obQueryWhere->GetQuery($arFilter);
$strQuery = 'SELECT ' .
'UG.GROUP_ID,
UG.USER_ID,
UG.CAN_VIEW_GROUP_MESSAGES,
UG.CAN_MAIL_GROUP_MESSAGES,
UG.CAN_MAIL_UPDATE_GROUP_MESSAGES as UG_CMUGM, '.
'G.NAME GROUP_NAME, G.IS_TEAM_GROUP, '.
'U.LOGIN, U.NAME FIRST_NAME, U.LAST_NAME ' .
'FROM b_ticket_user_ugroup UG ' .
'INNER JOIN b_ticket_ugroups G ON (UG.GROUP_ID=G.ID) ' .
'INNER JOIN b_user U ON (UG.USER_ID=U.ID) ';
if ($where <> '')
{
$strQuery .= ' WHERE ' . $where;
}
if ($strOrder <> '')
{
$strQuery .= ' ORDER BY ' . $strOrder;
}
$res = $DB->Query($strQuery, false, "File: ".__FILE__."
Line: ".__LINE__);
$res->arReplacedAliases = array('UG_CMUGM' => 'CAN_MAIL_UPDATE_GROUP_MESSAGES');
return $res;
}