- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/integrations/report/handlers/base.php
- Класс: BitrixImOpenLinesIntegrationsReportHandlersBase
- Вызов: Base::getResponsible
protected function getResponsible()
{
static $result = null;
if ($result !== null)
{
return $result;
}
$operatorIds = [];
$operatorsLines = [];
$result = [
'operatorsName' => [],
'operatorsLines' => []
];
$queueResults = QueueTable::getList([
'select' => [
'ID',
'USER_ID',
'CONFIG_ID'
],
'order' => [
'USER_ID' => 'ASC'
]
])->fetchAll();
foreach ($queueResults as $resultRow)
{
$operatorIds[$resultRow['ID']] = (int)$resultRow['USER_ID'];
$operatorsLines[$resultRow['CONFIG_ID']][(int)$resultRow['USER_ID']] = '';
}
if (!$operatorIds)
{
return $result;
}
$userQuery = new Query(UserTable::getEntity());
$userQuery->addSelect('ID');
$userQuery->addSelect('NAME');
$userQuery->addSelect('LAST_NAME');
$userQuery->whereIn('ID', $operatorIds);
$users = $userQuery->exec()->fetchAll();
foreach ($users as $user)
{
$name = CUser::FormatName(CSite::GetDefaultNameFormat(), [
'NAME' => $user['NAME'],
'LAST_NAME' => $user['LAST_NAME']
]);
$result['operatorsName'][$user['ID']] = $name;
}
foreach ($operatorsLines as $idLines => $operators)
{
foreach ($operators as $id => $name)
{
if(isset($result['operatorsName'][$id]))
{
$result['operatorsLines'][$idLines][$id] = $result['operatorsName'][$id];
}
}
}
return $result;
}