- Модуль: intranet
- Путь к файлу: ~/bitrix/modules/intranet/lib/ustat/ustat.php
- Класс: BitrixIntranetUStatUStat
- Вызов: UStat::getCurrentActivity
static function getCurrentActivity($departmentId = 0, $section = null)
{
$data = array();
$fieldName = ($section) === null ? 'TOTAL' : $section;
$currentHour = ConvertTimeStamp(mktime(date('G'), 0, 0), 'FULL');
$previousHour = ConvertTimeStamp(mktime(date('G')-1, 0, 0), 'FULL');
$currentHourClient = ConvertTimeStamp(mktime(date('G'), 0, 0)+CTimeZone::getOffset(), 'FULL');
$previousHourClient = ConvertTimeStamp(mktime(date('G')-1, 0, 0)+CTimeZone::getOffset(), 'FULL');
$result = DepartmentHourTable::getList(array(
'select' => array('HOUR', $fieldName),
'filter' => array('=DEPT_ID' => $departmentId, '=HOUR' => array($currentHourClient, $previousHourClient))
));
while ($row = $result->fetch())
{
$data[ConvertTimeStamp($row['HOUR']->getTimestamp(), 'FULL')] = $row[$fieldName];
}
$currentActivity = isset($data[$currentHour]) ? (int) $data[$currentHour] : 0;
if (isset($data[$previousHour]))
{
// emulation of [60 - CURRENT_MINUTES] of previous hour
$currentActivity += round($data[$previousHour] * (1 - date('i') / 60));
}
return $currentActivity;
}