• Модуль: 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;
}