static function GetList($arOrder = array(), $arFilter = array())
{
global $DB;
$arFields = array(
'ID' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.ID',
'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'COUPON' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.COUPON',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'COUNT_TICKETS' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.COUNT_TICKETS',
'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'TIMESTAMP_X' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.TIMESTAMP_X',
'FIELD_TYPE' => 'datetime', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'DATE_CREATE' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.DATE_CREATE',
'FIELD_TYPE' => 'datetime', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'CREATED_USER_ID' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.CREATED_USER_ID',
'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'UPDATED_USER_ID' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.UPDATED_USER_ID',
'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'ACTIVE' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.ACTIVE',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'ACTIVE_FROM' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.ACTIVE_FROM',
'FIELD_TYPE' => 'date', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'ACTIVE_TO' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.ACTIVE_TO',
'FIELD_TYPE' => 'date', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'COUNT_USED' => array(
'TABLE_ALIAS' => 'C',
'FIELD_NAME' => 'C.COUNT_USED',
'FIELD_TYPE' => 'date', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'SLA_ID' => array(
'TABLE_ALIAS' => 'S',
'FIELD_NAME' => 'S.ID',
'FIELD_TYPE' => 'int', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
'SLA_NAME' => array(
'TABLE_ALIAS' => 'S',
'FIELD_NAME' => 'S.NAME',
'FIELD_TYPE' => 'string', //int, double, file, enum, int, string, date, datetime
'JOIN' => false,
),
);
$obQueryWhere = new CSQLWhere;
$obQueryWhere->SetFields($arFields);
$where = $obQueryWhere->GetQuery($arFilter);
$order = '';
if (is_array($arOrder))
{
foreach ($arOrder as $k => $v)
{
if (array_key_exists($k, $arFields))
{
$v = mb_strtoupper($v);
if($v != 'DESC')
{
$v ='ASC';
}
if ($order <> '')
{
$order .= ', ';
}
$order .= $arFields[$k]['FIELD_NAME'] . ' ' . $v;
}
}
}
$strQuery = 'SELECT C.ID, C.COUPON, C.COUNT_TICKETS, C.CREATED_USER_ID, C.UPDATED_USER_ID, C.ACTIVE ACTIVE, C.COUNT_USED COUNT_USED,
'.$DB->DateToCharFunction('C.TIMESTAMP_X').' TIMESTAMP_X,
'.$DB->DateToCharFunction('C.DATE_CREATE').' DATE_CREATE,
'.$DB->DateToCharFunction('C.ACTIVE_FROM', 'SHORT').' ACTIVE_FROM,
'.$DB->DateToCharFunction('C.ACTIVE_TO', 'SHORT').' ACTIVE_TO,
UCR.LOGIN CREATED_LOGIN, UCR.NAME CREATED_FIRST_NAME, UCR.LAST_NAME CREATED_LAST_NAME,
UUP.LOGIN UPDATED_LOGIN, UUP.NAME UPDATED_FIRST_NAME, UUP.LAST_NAME UPDATED_LAST_NAME,
S.ID SLA_ID, S.NAME SLA_NAME
FROM b_ticket_supercoupons C
LEFT JOIN b_user UCR ON (C.CREATED_USER_ID IS NOT NULL AND C.CREATED_USER_ID = UCR.ID)
LEFT JOIN b_user UUP ON (C.CREATED_USER_ID IS NOT NULL AND C.UPDATED_USER_ID = UUP.ID)
LEFT JOIN b_ticket_sla S ON (C.SLA_ID IS NOT NULL AND C.SLA_ID = S.ID)
';
if ($where <> '')
{
$strQuery .= ' WHERE ' . $where;
}
if ($order <> '')
{
$strQuery .= ' ORDER BY ' . $order;
}
return $DB->Query($strQuery, false, "File: ".__FILE__."
Line: ".__LINE__);
}