- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/controller/worktime.php
- Класс: BitrixTimemanControllerWorktime
- Вызов: Worktime::makeAjaxResult
private function makeAjaxResult($serviceResult, $worktimeForm, $oldRecord)
{
/** @var array $result */
$result = $this->convertKeysToCamelCase($serviceResult->getWorktimeRecord()->collectValues());
$updatedRecord = $serviceResult->getWorktimeRecord();
$startTimestampBefore = $oldRecord ? $oldRecord->getRecordedStartTimestamp() : $updatedRecord->getRecordedStartTimestamp();
$startTimestampAfter = $updatedRecord->getRecordedStartTimestamp();
if ($worktimeForm->useEmployeesTimezone)
{
$offset = $updatedRecord->getStartOffset();
}
else
{
$offset = TimeHelper::getInstance()->getUserUtcOffset($this->getCurrentUser()->getId());
}
$dateBefore = TimeHelper::getInstance()->createDateTimeFromFormat('U', $startTimestampBefore, $offset);
$dateAfter = TimeHelper::getInstance()->createDateTimeFromFormat('U', $startTimestampAfter, $offset);
$dates = [];
$dates[$dateBefore->format('d.m.Y')] = $dateBefore;
$dates[$dateAfter->format('d.m.Y')] = $dateAfter;
global $APPLICATION;
$result['dayCellsHtml'] = [];
foreach ($dates as $date)
{
ob_start();
$APPLICATION->includeComponent(
'bitrix:timeman.worktime.grid',
'.default',
[
'PARTIAL_ITEM' => 'shiftCell',
'DRAWING_TIMESTAMP' => $date->getTimestamp(),
'INCLUDE_CSS' => false,
'IS_SHIFTPLAN' => $this->getRequest()->get('isShiftplan') === 'true',
'USER_ID' => $serviceResult->getWorktimeRecord()->getUserId(),
]
);
$result['dayCellsHtml'][] = ob_get_clean();
}
return ['record' => $result];
}