• Модуль: support
  • Путь к файлу: ~/bitrix/modules/support/classes/general/coupons.php
  • Класс: CSupportSuperCoupon
  • Вызов: CSupportSuperCoupon::GetList
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__); }