- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/classes/general/timeman_user.php
- Класс: CTimeManUser
- Вызов: CTimeManUser::SetReport
public function SetReport($report, $report_ts, $entry_id = null)
{
global $USER, $APPLICATION;
if ($last_entry = $this->_GetLastData())
{
if ($entry_id && $entry_id != $last_entry['ID'])
{
$report_ts = 0;
}
$dbRes = CTimeManReport::GetList([], ['ENTRY_ID' => $last_entry['ID'], 'REPORT_TYPE' => 'REPORT']);
if ($arRes = $dbRes->Fetch())
{
$ID = $arRes['ID'];
$current_report_ts = MakeTimeStamp($arRes['TIMESTAMP_X']);
if ($current_report_ts > $report_ts)
{
return $arRes;
}
$arFields = ['REPORT' => $report];
if (!CTimeManReport::Update($ID, $arFields))
{
return false;
}
}
else
{
$arFields = [
'ENTRY_ID' => $last_entry['ID'],
'USER_ID' => $USER->GetID(), // not $last_entry['USER_ID']!
'ACTIVE' => 'Y',
'REPORT_TYPE' => 'REPORT',
'REPORT' => $report,
];
if (!($ID = CTimeManReport::Add($arFields)))
{
return false;
}
}
$dbRes = CTimeManReport::GetByID($ID);
return $dbRes->Fetch();
}
else
{
$APPLICATION->ThrowException('No entry', 'SAVE_REPORT_NO_ENTRY');
}
}