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