- Модуль: crmmobile
- Путь к файлу: ~/bitrix/modules/crmmobile/lib/Controller/Action/Terminal/FindClient.php
- Класс: BitrixCrmMobileControllerActionTerminalFindClient
- Вызов: FindClient::run
public function run(string $phoneNumber)
{
$result = [];
$entityTypeIds = self::getEntityTypeIds();
foreach ($entityTypeIds as $entityTypeId => $entityTypeData)
{
/** @var DataManager $table */
$table = $entityTypeData['table'];
$categoryId = 0;
$duplicatesList = DuplicateCommunicationMatchCodeTable::getList([
'select' => ['ENTITY_TYPE_ID', 'ENTITY_ID'],
'filter' => [
'=TYPE' => 'PHONE',
'=VALUE' => DuplicateCommunicationCriterion::normalizePhone($phoneNumber),
'=ENTITY_TYPE_ID' => $entityTypeId,
],
'order' => [
'ENTITY_TYPE_ID' => 'ASC',
'ENTITY_ID' => 'ASC'
],
'runtime' => [
new ReferenceField('UA',
$table::getEntity(),
[
'=ref.ID' => 'this.ENTITY_ID',
'=ref.CATEGORY_ID' => new SqlExpression('?i', $categoryId),
],
['join_type' => Join::TYPE_INNER]
)
],
'limit' => 50,
]);
$entitiesData = [];
while ($duplicate = $duplicatesList->fetch())
{
$entitiesData[$duplicate['ENTITY_ID']] = [];
}
self::prepareEntitiesData($entityTypeId, $entitiesData);
$entityMultiFieldValues = self::getEntityMultiFieldValues($entityTypeId, array_keys($entitiesData));
foreach ($entitiesData as $entityId => $entityInfo)
{
$result[] = [
'ENTITY_TYPE_ID' => $entityTypeId,
'ENTITY_ID' => $entityId,
'TITLE' => $entityInfo['TITLE'],
'POST' => $entityInfo['POST'],
'URL' => $entityInfo['SHOW_URL'],
'PHONE' => $entityMultiFieldValues[$entityId]['PHONE'] ?? null,
'EMAIL' => $entityMultiFieldValues[$entityId]['EMAIL'] ?? null,
];
}
}
return $result;
}