• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_user.php
  • Класс: CTimeManUser
  • Вызов: CTimeManUser::reopenDay
public function reopenDay($bSkipCheck = false, $site_id = SITE_ID, $extraInformation = [])
{
	global $APPLICATION;
	$lastEntry = $this->_GetLastData(true);

	$recordForm = $this->buildReopenForm($extraInformation);

	if ($recordForm->validate())
	{
		$result = (new ManageRelaunchHandler())->handle($recordForm);

		if ($result->isSuccess())
		{
			$ts_finish = MakeTimeStamp($lastEntry['DATE_FINISH']) - CTimeZone::GetOffset();
			$leak = time() - $ts_finish;
			CUser::SetLastActivityDate($this->USER_ID);
			CTimeManReport::Reopen($lastEntry['ID']);
			CTimeManReportDaily::Reopen($lastEntry['ID']);

			if ($leak > BX_TIMEMAN_ALLOWED_TIME_DELTA)
			{
				$this->setLastPauseInfo($this->USER_ID, $ts_finish, $ts_finish + $leak);

				$report = BitrixTimemanModelWorktimeReportWorktimeReport::createReopenReport(
					$lastEntry['USER_ID'],
					$lastEntry['ID']
				);
				$report->save();
			}
			static::clearFullReportCache();

			$data = WorktimeRecordTable::convertFieldsCompatible($result->getWorktimeRecord()->collectValues());

			$e = GetModuleEvents('timeman', 'OnAfterTMDayContinue');
			while ($a = $e->Fetch())
			{
				ExecuteModuleEventEx($a, [$data]);
			}

			return $data;
		}
		if ($result->getErrors()[0]->getCode() === WorktimeServiceResult::ERROR_FOR_USER)
		{
			$APPLICATION->ThrowException($result->getErrors()[0]->getMessage(), 'ALERT_WARNING');
		}
	}

	return false;
}