- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/kpimanager.php
- Класс: BitrixImOpenLinesKpiManager
- Вызов: KpiManager::getOperatorActiveKpiSessions
static function getOperatorActiveKpiSessions($operatorId)
{
$result = [];
$filterQueue = [
'=CONFIG.KPI_CHECK_OPERATOR_ACTIVITY' => 'Y',
'=CONFIG.ACTIVE' => 'Y',
'>CONFIG.KPI_FURTHER_ANSWER_TIME' => 0,
'=USER_ID' => $operatorId
];
$queueListManager = QueueTable::getList(
[
'select' => ['CONFIG_ID'],
'filter' => $filterQueue,
'order' => [
'SORT' => 'ASC',
'ID' => 'ASC'
]
]
);
$configList = [];
while ($queue = $queueListManager->fetch())
{
$configList[$queue['CONFIG_ID']] = $queue['CONFIG_ID'];
}
if (!empty($configList))
{
$filterKpiMessages = [
'=OPERATOR_ID' => $operatorId,
'=CONFIG_ID' => $configList,
'> [Session::STATUS_ANSWER, Session::STATUS_OPERATOR]
];
$sessionList = SessionTable::getList(
[
'select' => ['ID'],
'filter' => $filterKpiMessages
]
);
while ($session = $sessionList->fetch())
{
$result[] = $session['ID'];
}
}
return $result;
}