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