- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/rest.php
- Класс: BitrixTimemanRest
- Вызов: Rest::closeDay
static function closeDay($query, $n, CRestServer $server)
{
$query = static::prepareQuery($query);
$tmUser = static::getUserInstance($query);
if(isset($query['TIME']))
{
$currentInfo = $tmUser->getCurrentInfo();
$userOffset = $tmUser->getDayStartOffset($currentInfo) + date('Z');
static::setCurrentTimezoneOffset($userOffset);
$timeInfo = static::convertTimeFromISO($query['TIME']);
static::correctTimeOffset($userOffset, $timeInfo);
if(!static::checkDate($timeInfo, ConvertTimeStamp(MakeTimeStamp($currentInfo['DATE_START'], FORMAT_DATETIME))))
{
throw new DateTimeException('Day close date should correspond to the day open date', DateTimeException::ERROR_WRONG_DATETIME);
}
$result = $tmUser->CloseDay($timeInfo['TIME'], trim($query['REPORT']));
}
else
{
$result = $tmUser->CloseDay();
}
if(!$result)
{
global $APPLICATION;
$ex = $APPLICATION->GetException();
if($ex)
{
throw new RestException($ex->GetString(), $ex->GetID());
}
}
else
{
static::setDayGeoPosition($result['ID'], $query, 'close');
$currentInfo = $tmUser->GetCurrentInfo();
$reportData = $tmUser->SetReport('', 0, $currentInfo['ID']);
$dailyReportFields = array(
'ENTRY_ID' => $currentInfo['ID'],
'REPORT_DATE' => $currentInfo['DATE_START'],
'ACTIVE' => $currentInfo['ACTIVE'],
'REPORT' => $reportData['REPORT'],
);
CTimeManReportDaily::Add($dailyReportFields);
}
return static::getStatus($query, $n, $server);
}