• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/search/ordersearchcontentbuilder.php
  • Класс: Bitrix\Crm\Search\OrderSearchContentBuilder
  • Вызов: OrderSearchContentBuilder::prepareSearchMap
protected function prepareSearchMap(array $fields, array $options = null)
{
	$map = new SearchMap();

	$entityID = (int)($fields['ID'] ?? 0);
	if ($entityID <= 0)
	{
		return $map;
	}

	$map->add($entityID);
	$map->addField($fields, 'ACCOUNT_NUMBER');
	$map->addField($fields, 'ORDER_TOPIC');

	$map->addField($fields, 'PRICE');
	$map->add(
		\CCrmCurrency::GetCurrencyName($fields['CURRENCY_ID'] ?? '')
	);

	$map->addUserByID($fields['USER_ID']);

	if (isset($fields['RESPONSIBLE_ID']))
	{
		$map->addUserByID($fields['RESPONSIBLE_ID']);
	}

	//region Company
	$companyID = (int)($fields['COMPANY_ID'] ?? 0);
	if ($companyID > 0)
	{
		$map->add(
			\CCrmOwnerType::GetCaption(\CCrmOwnerType::Company, $companyID, false)
		);

		$map->addEntityMultiFields(
			\CCrmOwnerType::Company,
			$companyID,
			array(\CCrmFieldMulti::PHONE, \CCrmFieldMulti::EMAIL)
		);
	}
	//endregion Company

	//region Contact
	$contactIDs = isset($fields['CONTACT_IDS']) && is_array($fields['CONTACT_IDS'])
		? $fields['CONTACT_IDS']
		: [];
	foreach ($contactIDs as $contactID)
	{
		$map->add(
			\CCrmOwnerType::GetCaption(\CCrmOwnerType::Contact, $contactID, false)
		);

		$map->addEntityMultiFields(
			\CCrmOwnerType::Contact,
			$contactID,
			array(\CCrmFieldMulti::PHONE, \CCrmFieldMulti::EMAIL)
		);
	}
	//endregion Contact

	if (isset($fields['STATUS_ID']))
	{
		$map->add(
			self::getStatusNameById($fields['STATUS_ID'])
		);
	}

	if (isset($fields['DATE_INSERT']))
	{
		$map->add($fields['DATE_INSERT']);
	}

	if (isset($fields['COMMENTS']))
	{
		$map->addHtml($fields['COMMENTS'], 1024);
	}

	if (isset($fields['USER_DESCRIPTION']))
	{
		$map->addHtml($fields['USER_DESCRIPTION'], 1024);
	}

	if (isset($fields['PROPERTIES']) && is_array($fields['PROPERTIES']))
	{
		foreach ($fields['PROPERTIES'] as $propertyValue)
		{
			$map->add($propertyValue);
		}
	}

	//region UserFields
	foreach ($this->getUserFields($entityID) as $userField)
	{
		$map->addUserField($userField);
	}
	//endregion

	return $map;
}