• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/main/uiselector/crmsmartinvoices.php
  • Класс: Bitrix\Crm\Integration\Main\UISelector\CrmSmartInvoices
  • Вызов: CrmSmartInvoices::search
public function search($params = []): array
{
	$result = [
		'ITEMS' => [],
		'ADDITIONAL_INFO' => []
	];

	if (!InvoiceSettings::getCurrent()->isSmartInvoiceEnabled())
	{
		return $result;
	}

	$entityOptions = $params['options'] ?? [];
	$requestFields = $params['requestFields'] ?? [];
	$search = $requestFields['searchString'];
	$prefix = static::getPrefix($entityOptions);

	if (
		$search <> ''
		&& (
			empty($entityOptions['enableSearch'])
			|| $entityOptions['enableSearch'] !== 'N'
		)
	)
	{
		$filter = $this->getSearchFilter($search, $entityOptions);

		if ($filter === false)
		{
			return $result;
		}

		$list = Container::getInstance()->getFactory(static::getOwnerType())->getItemsFilteredByPermissions([
			'order' => $this->getSearchOrder(),
			'select' => $this->getSearchSelect(),
			'limit' => 10,
			'filter' => $filter,
		]);

		$resultItems = [];
		foreach ($list as $item)
		{
			$resultItems[$prefix . $item->getId()] = static::prepareEntity($item, $entityOptions);
		}

		$resultItems = $this->appendItemsByIds($resultItems, $search, $entityOptions);

		$resultItems = $this->processResultItems($resultItems, $entityOptions);

		$result["ITEMS"] = $resultItems;
	}

	return $result;
}