• Модуль: 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;
}