• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/rest/controllers/task.php
  • Класс: BitrixTasksRestControllersTask
  • Вызов: Task::fillWithTimerInfo
private function fillWithTimerInfo(array $tasks): array
{
	if (empty($tasks))
	{
		return [];
	}

	$timerManager = CTaskTimerManager::getInstance($this->getCurrentUser()->getId());
	$runningTaskData = $timerManager->getRunningTask(false);
	foreach ($tasks as $id => $task)
	{
		$tasks[$id]['TIME_ELAPSED'] = $task['TIME_SPENT_IN_LOGS'];
		$tasks[$id]['TIMER_IS_RUNNING_FOR_CURRENT_USER'] = 'N';

		if (
			is_array($runningTaskData)
			&& (int)$task['ID'] === (int)$runningTaskData['TASK_ID']
			&& $task['ALLOW_TIME_TRACKING'] === 'Y'
		)
		{
			// elapsed time is a sum of times in task log plus time of the current timer
			$tasks[$id]['TIME_ELAPSED'] += (time() - $runningTaskData['TIMER_STARTED_AT']);
			$tasks[$id]['TIME_ELAPSED'] = (string)$tasks[$id]['TIME_ELAPSED'];
			$tasks[$id]['TIMER_IS_RUNNING_FOR_CURRENT_USER'] = 'Y';
		}
	}

	return $tasks;
}