• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_report.php
  • Класс: CAllTimeManReport
  • Вызов: CAllTimeManReport::GetList
static function GetList($arOrder = array(), $arFilter = array())
{
	global $DB;

	$arFields = array(
		"ID" => array("FIELD" => "R.ID", "TYPE" => "int"),
		"TIMESTAMP_X" => array("FIELD" => "R.TIMESTAMP_X", "TYPE" => "datetime"),
		"ENTRY_ID" => array("FIELD" => "R.ENTRY_ID", "TYPE" => "int"),
		"USER_ID" => array("FIELD" => "R.USER_ID", "TYPE" => "int"),
		"ACTIVE" => array("FIELD" => "R.ACTIVE", "TYPE" => "string"),
		"REPORT_TYPE" => array("FIELD" => "R.REPORT_TYPE", "TYPE" => "string"),
		"REPORT" => array("FIELD" => "R.REPORT", "TYPE" => "string"),
	);

	$strSql = '
SELECT R.*, '.$DB->DateToCharFunction("R.TIMESTAMP_X", "FULL").' AS TIMESTAMP_X
FROM b_timeman_reports R
WHERE 1=1';

	foreach ($arFilter as $fld => $val)
	{
		$fld = ToUpper($fld);

		if ($arFields[$fld])
		{
			if ($arFields[$fld]['TYPE'] == 'int')
				$val = intval($val);
			else
				$val = $DB->ForSQL($val);

			$strSql .= ' AND ('.$arFields[$fld]['FIELD'].'=''.$val.'')';
		}
	}

	$strOrder = '';
	foreach ($arOrder as $fld => $dir)
	{
		$fld = ToUpper($fld);

		if ($arFields[$fld])
		{
			$strOrder .= ($strOrder == '' ? '' : ', ')
				.$arFields[$fld]['FIELD'].' '.(ToUpper($dir) == 'DESC' ? 'DESC' : 'ASC');
		}
	}

	if ($strOrder <> '')
	{
		$strSql .= ' ORDER BY '.$strOrder;
	}

	return ($DB->Query($strSql, false, "File: ".__FILE__."
Line: ".__LINE__)); }