• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/timercore.php
  • Класс: CTaskTimerCore
  • Вызов: CTaskTimerCore::stop
static function stop($userId, $taskId = 0)
{
	global $DB;

	$ts = time();
	if ($ts < 1)
	{
		CTaskAssert::logError('[0x03ad8b00] current unix timestamp is in past, check system time');
		CTaskAssert::assert(false);
	}

	$arData = self::get($userId, $taskId);
	if (
		($arData !== false)
		&& (
			($arData['TIMER_STARTED_AT'] != 0)
			|| ($arData['TIMER_ACCUMULATOR'] != 0)
		)
	)
	{
		$DB->query(
			"UPDATE b_tasks_timer 
			SET TIMER_ACCUMULATOR = 0, TIMER_STARTED_AT = 0
			WHERE
				USER_ID = " . (int) $userId . "
				AND TASK_ID = " . (int) $arData['TASK_ID']
		);

		if (($arData['TIMER_STARTED_AT'] > 0) && ($ts > $arData['TIMER_STARTED_AT']))
			$arData['TIMER_ACCUMULATOR'] += ($ts - $arData['TIMER_STARTED_AT']);

		return ($arData);
	}
	else
		return (false);
}