- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_invoice.php
- Класс: \CAllCrmInvoice
- Вызов: CAllCrmInvoice::GetList
static function GetList($arOrder = Array("ID"=>"DESC"), $arFilter = Array(), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array(), $arOptions = array())
{
global $USER;
if(!CModule::IncludeModule('sale'))
{
return false;
}
//Reset callback params
self::$LIST_CALLBACK_PARAMS = null;
if (isset($arFilter['STATUS_ID']) && is_array($arFilter['STATUS_ID']))
$arFilter['STATUS_ID'] = array_values($arFilter['STATUS_ID']);
if (!is_array($arGroupBy))
{
if (is_array($arSelectFields) && (count($arSelectFields) === 0 || in_array('*', $arSelectFields)))
{
if (count($arSelectFields) === 0)
$arSelectFields[] = '*';
if (!in_array('UF_QUOTE_ID', $arSelectFields))
$arSelectFields[] = 'UF_QUOTE_ID';
if (!in_array('UF_DEAL_ID', $arSelectFields))
$arSelectFields[] = 'UF_DEAL_ID';
if (!in_array('UF_COMPANY_ID', $arSelectFields))
$arSelectFields[] = 'UF_COMPANY_ID';
if (!in_array('UF_CONTACT_ID', $arSelectFields))
$arSelectFields[] = 'UF_CONTACT_ID';
if (!in_array('UF_MYCOMPANY_ID', $arSelectFields))
$arSelectFields[] = 'UF_MYCOMPANY_ID';
$arSelectedUserFields = array_keys(self::GetUserFields());
if (is_array($arSelectedUserFields) && !empty($arSelectedUserFields))
$arSelectFields = array_merge($arSelectFields, $arSelectedUserFields);
unset($arSelectedUserFields);
}
}
if(!is_array($arOptions))
{
$arOptions = array();
}
if (isset($arFilter['CUSTOM_SUBQUERY']))
{
unset($arFilter['CUSTOM_SUBQUERY']);
}
if(isset($arFilter['__CONDITIONS']))
{
if(is_array($arFilter['__CONDITIONS']) && !empty($arFilter['__CONDITIONS']))
{
self::$LIST_CALLBACK_PARAMS = array('SQL' => $arFilter['__CONDITIONS'][0]['SQL']);
$arFilter['CUSTOM_SUBQUERY'] = array('CCrmInvoice', '__callbackWhereCondition');
}
unset($arFilter['__CONDITIONS']);
}
if (!(is_object($USER) && $USER->IsAdmin())
&& (!array_key_exists('CHECK_PERMISSIONS', $arFilter) || $arFilter['CHECK_PERMISSIONS'] !== 'N')
)
{
$arFilter['CUSTOM_SUBQUERY'] = array('CCrmInvoice', '__callbackPermissionsWhereCondition');
self::$arCurrentPermType = isset($arFilter['PERMISSION'])
? (is_array($arFilter['PERMISSION']) ? $arFilter['PERMISSION'] : array($arFilter['PERMISSION']))
: array('READ');
}
$userType = new CCrmUserType($GLOBALS['USER_FIELD_MANAGER'], self::$sUFEntityID);
$userType->ListPrepareFilter($arFilter);
if (
$arNavStartParams === false
&& isset($arOptions['QUERY_OPTIONS'])
&& is_array($arOptions['QUERY_OPTIONS'])
)
{
$queryOptions = $arOptions['QUERY_OPTIONS'];
$limit = isset($queryOptions['LIMIT']) ? (int)$queryOptions['LIMIT'] : 0;
$offset = isset($queryOptions['OFFSET']) ? (int)$queryOptions['OFFSET'] : 0;
if ($limit > 0)
{
$arNavStartParams = [
'nPageSize' => $limit,
'iNumPage' => (int)(floor($offset / $limit) + 1),
];
}
}
$result = Compatible\Helper::getList(
$arOrder, $arFilter, $arGroupBy, $arNavStartParams, $arSelectFields, $arOptions
);
self::$arCurrentPermType = null;
return $result;
}