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