• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/timermanager.php
  • Класс: CTaskTimerManager
  • Вызов: CTaskTimerManager::onAfterTMEntryUpdate
static function onAfterTMEntryUpdate(/** @noinspection PhpUnusedParameterInspection */ $id, $arFields)
{
	$needStopTimer = false;

	if(!array_key_exists('USER_ID', $arFields))
	{
		return;
	}

	$arFields['USER_ID'] = intval($arFields['USER_ID']);
	if($arFields['USER_ID'] <= 0)
	{
		return;
	}

	if (($arFields['PAUSED'] ?? null) === 'Y')
	{
		$needStopTimer = true;
	}
	elseif (isset($arFields['DATE_FINISH'], $arFields['TIME_FINISH']))
	{
		if (($arFields['DATE_FINISH'] !== false) && ($arFields['TIME_FINISH'] !== false))
			$needStopTimer = true;
	}

	if ($needStopTimer)
	{
		$oTimer = CTaskTimerManager::getInstance($arFields['USER_ID']);
		$oTimer->stop();
	}
}