- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_status.php
- Класс: \CCrmStatus
- Вызов: CCrmStatus::GetList
static function GetList($arSort=array(), $arFilter=Array())
{
$sqlHelper = \Bitrix\Main\Application::getConnection()->getSqlHelper();
global $DB;
$arSqlSearch = Array();
if (is_array($arFilter))
{
$filter_keys = array_keys($arFilter);
for ($i=0, $ic=count($filter_keys); $i<$ic; $i++)
{
$val = $arFilter[$filter_keys[$i]];
if ((string)$val == '' || (string)$val=='NOT_REF') continue;
switch(strtoupper($filter_keys[$i]))
{
case 'ID':
$arSqlSearch[] = "CS.ID = '".$DB->ForSql($val)."'";
break;
case 'ENTITY_ID':
$arSqlSearch[] = "CS.ENTITY_ID = '".$DB->ForSql($val)."'";
break;
case 'STATUS_ID':
$arSqlSearch[] = "CS.STATUS_ID = '".$DB->ForSql($val)."'";
break;
case 'NAME':
$arSqlSearch[] = GetFilterQuery('CS.NAME', $val);
break;
case 'SORT':
$arSqlSearch[] = "CS.SORT = '".$DB->ForSql($val)."'";
break;
case 'SYSTEM':
$arSqlSearch[] = "CS.".$sqlHelper->quote('SYSTEM')."='".(($val == 'Y')? 'Y' : 'N')."'";
break;
case 'CATEGORY_ID':
$arSqlSearch[] = "CS.CATEGORY_ID = '".((int) $val)."'";
break;
case 'SEMANTICS':
$arSqlSearch[] = "CS.SEMANTICS = '".$DB->ForSql($val)."'";
break;
}
}
}
$sOrder = '';
foreach($arSort as $key=>$val)
{
$ord = (mb_strtoupper($val) <> 'ASC'? 'DESC':'ASC');
switch(mb_strtoupper($key))
{
case 'ID':
$sOrder .= ', CS.ID '.$ord;
break;
case 'ENTITY_ID':
$sOrder .= ', CS.ENTITY_ID '.$ord;
break;
case 'STATUS_ID':
$sOrder .= ', CS.STATUS_ID '.$ord;
break;
case 'NAME':
$sOrder .= ', CS.NAME '.$ord;
break;
case 'SORT':
$sOrder .= ', CS.SORT '.$ord;
break;
case 'SYSTEM':
$sOrder .= ", CS.".$sqlHelper->quote('SYSTEM')." ".$ord;
break;
case 'CATEGORY_ID':
$sOrder .= ', CS.CATEGORY_ID '.$ord;
break;
case 'SEMANTICS':
$sOrder .= ', CS.SEMANTICS '.$ord;
break;
}
}
if ($sOrder == '')
$sOrder = 'CS.ID DESC';
$strSqlOrder = ' ORDER BY '.TrimEx($sOrder,',');
$strSqlSearch = GetFilterSqlSearch($arSqlSearch);
$strSql = "SELECT CS.* FROM b_crm_status CS WHERE {$strSqlSearch} {$strSqlOrder}";
$res = $DB->Query($strSql, false, 'FILE: '.__FILE__.'
LINE: '.__LINE__);
return $res;
}