static function setLeads(array &$result, array $params, $userPermissions): void
{
if(in_array('LEAD', $params['ENTITY_TYPE'], true))
{
$hasNameFormatter = method_exists('CCrmLead', 'PrepareFormattedName');
$result['ENTITY_TYPE'][] = 'lead';
if(method_exists('CCrmLead', 'GetTopIDs'))
{
$topIdList = CCrmLead::GetTopIDs(
self::ELEMENTS_LIMIT,
'DESC',
$userPermissions
);
if(empty($topIdList))
{
$leads = new CDBResult();
$leads->InitFromArray([]);
}
else
{
$leads = CCrmLead::GetListEx(
['ID' => 'DESC'],
['@ID' => $topIdList, 'CHECK_PERMISSIONS' => 'N'],
false,
false,
['ID', 'TITLE', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'FULL_NAME']
);
}
}
else
{
$leads = CCrmLead::GetListEx(
['ID' => 'DESC'],
[],
false,
['nTopCount' => self::ELEMENTS_LIMIT],
(
$hasNameFormatter
? ['ID', 'TITLE', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME']
: ['ID', 'TITLE', 'FULL_NAME']
)
);
}
while($lead = $leads->Fetch())
{
$lead['SID'] = (
$result['PREFIX'] === 'Y'
? 'L_' . $lead['ID'] : $lead['ID']
);
$isSelected = self::getIsSelectedValue($result, $params, $lead);
self::removeItemFromResultList($result, $params, $lead);
if($hasNameFormatter)
{
$description = CCrmLead::PrepareFormattedName(
[
'HONORIFIC' => ($lead['HONORIFIC'] ?? ''),
'NAME' => ($lead['NAME'] ?? ''),
'SECOND_NAME' => ($lead['SECOND_NAME'] ?? ''),
'LAST_NAME' => ($lead['LAST_NAME'] ?? '')
]
);
}
else
{
$description = $lead['FULL_NAME'] ?? '';
}
$result['ELEMENT'][] = [
'title' => (str_replace([';', ','], ' ', $lead['TITLE'])),
'desc' => $description,
'id' => $lead['SID'],
'url' => CComponentEngine::MakePathFromTemplate(
COption::GetOptionString('crm', 'path_to_lead_show'),
['lead_id' => $lead['ID']]
),
'type' => 'lead',
'selected' => $isSelected
];
}
}
}