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