- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integration/main/uiselector/crmquotes.php
- Класс: Bitrix\Crm\Integration\Main\UISelector\CrmQuotes
- Вызов: CrmQuotes::getData
public function getData($params = [])
{
$entityType = static::getHandlerType();
$result = [
'ITEMS' => [],
'ITEMS_LAST' => [],
'ITEMS_HIDDEN' => [],
'ADDITIONAL_INFO' => [
'GROUPS_LIST' => [
'crmquotes' => [
'TITLE' => Loc::getMessage('MAIN_UI_SELECTOR_TITLE_CRMQUOTES_MSGVER_1'),
'TYPE_LIST' => [ $entityType ],
'DESC_LESS_MODE' => 'N',
'SORT' => 80,
],
],
'SORT_SELECTED' => 400,
],
];
$entityOptions = (!empty($params['options']) ? $params['options'] : []);
$prefix = static::getPrefix($entityOptions);
$lastItems = (!empty($params['lastItems']) ? $params['lastItems'] : []);
$selectedItems = (!empty($params['selectedItems']) ? $params['selectedItems'] : []);
$lastQuotesIdList = [];
if(!empty($lastItems[$entityType]))
{
$result["ITEMS_LAST"] = array_map(
function($code) use ($prefix)
{
return preg_replace('/^'.self::PREFIX_FULL . '(\d+)$/', $prefix . '$1', $code);
},
array_values($lastItems[$entityType])
);
foreach ($lastItems[$entityType] as $value)
{
$lastQuotesIdList[] = str_replace(self::PREFIX_FULL, '', $value);
}
}
$selectedQuotesIdList = [];
if(!empty($selectedItems[$entityType]))
{
foreach ($selectedItems[$entityType] as $value)
{
$selectedQuotesIdList[] = str_replace($prefix, '', $value);
}
}
$quotesIdList = array_merge($selectedQuotesIdList, $lastQuotesIdList);
$quotesIdList = array_slice($quotesIdList, 0, max(count($selectedQuotesIdList), 20));
$quotesIdList = array_unique($quotesIdList);
$quotesList = [];
$filter = ['CHECK_PERMISSIONS' => 'Y'];
$order = [ 'ID' => 'DESC' ];
if (!empty($quotesIdList))
{
$filter['@ID'] = $quotesIdList;
$navParams = false;
}
else
{
$navParams = [ 'nTopCount' => 10 ];
}
$res = CCrmQuote::getList(
$order,
$filter,
false,
$navParams,
$this->getSearchSelect()
);
while ($quoteFields = $res->fetch())
{
$quotesList[$prefix . $quoteFields['ID']] = static::prepareEntity($quoteFields, $entityOptions);
}
if (empty($lastQuotesIdList))
{
$result["ITEMS_LAST"] = array_keys($quotesList);
}
$result['ITEMS'] = $quotesList;
return $result;
}