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