- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/userfield/datamodifiers/element.php
- Класс: Bitrix\Crm\UserField\DataModifiers\Element
- Вызов: Element::setQuotes
static function setQuotes(array &$result, array $params, $userPermissions): void
{
if(in_array('QUOTE', $params['ENTITY_TYPE'], true))
{
$result['ENTITY_TYPE'][] = 'quote';
if(method_exists('CCrmQuote', 'GetTopIDs'))
{
$topIdList = CCrmQuote::GetTopIDs(
self::ELEMENTS_LIMIT,
'DESC',
$userPermissions
);
if(empty($topIdList))
{
$quotes = new CDBResult();
$quotes->InitFromArray([]);
}
else
{
$quotes = CCrmQuote::GetList(
['ID' => 'DESC'],
['@ID' => $topIdList, 'CHECK_PERMISSIONS' => 'N'],
false,
false,
['ID', 'TITLE', 'STAGE_ID', 'COMPANY_TITLE', 'CONTACT_FULL_NAME']
);
}
}
else
{
$quotes = CCrmQuote::GetList(
['ID' => 'DESC'],
[],
false,
['nTopCount' => self::ELEMENTS_LIMIT],
['ID', 'TITLE', 'STAGE_ID', 'COMPANY_TITLE', 'CONTACT_FULL_NAME']
);
}
while($quote = $quotes->Fetch())
{
$quote['SID'] = ($result['PREFIX'] === 'Y' ? 'Q_' . $quote['ID'] : $quote['ID']);
$isSelected = self::getIsSelectedValue($result, $params, $quote);
self::removeItemFromResultList($result, $params, $quote);
$clientTitle = (!empty($quote['COMPANY_TITLE']) ? $quote['COMPANY_TITLE'] : '');
$isClientTitle = ($clientTitle !== '' && !empty($quote['CONTACT_FULL_NAME']));
$clientTitle .= ($isClientTitle ? ', ' : '') . $quote['CONTACT_FULL_NAME'];
$result['ELEMENT'][] = [
'title' => (str_replace([';', ','], ' ', $quote['TITLE'])),
'desc' => $clientTitle,
'id' => $quote['SID'],
'url' => CComponentEngine::MakePathFromTemplate(
COption::GetOptionString('crm', 'path_to_quote_show'),
['quote_id' => $quote['ID']]
),
'type' => 'quote',
'selected' => $isSelected
];
}
}
}