• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/counter/user.php
  • Класс: BitrixTasksInternalsCounterUser
  • Вызов: User::loadCounters
protected function loadCounters()
{
	$date = date('Y-m-d');

	if ($this->groupId > 0)
	{
		$sql = "SELECT * FROM b_tasks_counters WHERE DATE = '{$date}' AND USER_ID = {$this->userId} AND GROUP_ID = {$this->groupId}";
	}
	else
	{
		$sql = "
		SELECT 
			GROUP_ID,
			
			SUM(OPENED) AS OPENED,
			SUM(CLOSED) AS CLOSED,
			
			SUM(MY_EXPIRED) AS MY_EXPIRED,
			SUM(MY_EXPIRED_SOON) AS MY_EXPIRED_SOON,
			SUM(MY_NOT_VIEWED) AS MY_NOT_VIEWED,
			SUM(MY_WITHOUT_DEADLINE) AS MY_WITHOUT_DEADLINE,
			
			SUM(ORIGINATOR_EXPIRED) AS ORIGINATOR_EXPIRED,
			SUM(ORIGINATOR_WITHOUT_DEADLINE) AS ORIGINATOR_WITHOUT_DEADLINE,
			SUM(ORIGINATOR_WAIT_CTRL) AS ORIGINATOR_WAIT_CTRL,
			
			SUM(AUDITOR_EXPIRED) AS AUDITOR_EXPIRED,
			
			SUM(ACCOMPLICES_EXPIRED) AS ACCOMPLICES_EXPIRED,
			SUM(ACCOMPLICES_EXPIRED_SOON) AS ACCOMPLICES_EXPIRED_SOON,
			SUM(ACCOMPLICES_NOT_VIEWED) AS ACCOMPLICES_NOT_VIEWED

		FROM 
			b_tasks_counters 
		WHERE 
			DATE = '{$date}' AND 
			USER_ID = {$this->userId} 
		GROUP BY 
			GROUP_ID";
	}

	$res = Application::getConnection()->query($sql);
	$counters = $res->fetchAll();

	if (!$counters)
	{
		$this->recountAllCounters();
	}
	else
	{
		foreach ($counters as $row)
		{
			$groupId = $row['GROUP_ID'];
			unset($row['GROUP_ID']);

			foreach ($row as $key => $value)
			{
				$this->counters[strtolower($key)]['allCounters'] += $value;
				$this->counters[strtolower($key)][$groupId] = $value;
			}
		}
	}
}