• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/lib/controller/schedule.php
  • Класс: BitrixTimemanControllerSchedule
  • Вызов: Schedule::getAction
public function getAction($id)
{
	$schedule = $this->scheduleRepository->findByIdWith($id, [
		'SCHEDULE_VIOLATION_RULES', 'SHIFTS', 'CALENDAR', 'CALENDAR.EXCLUSIONS', 'DEPARTMENTS', 'USER_ASSIGNMENTS'
	]);

	if (!$schedule)
	{
		$this->addError(new MainError('Schedule not found', 'TIMEMAN_SCHEDULE_GET_SCHEDULE_NOT_FOUND'));
		return [];
	}

	if (!$this->userPermissionsManager->canReadSchedule($id))
	{
		$this->addError(new MainError('Access denied', 'TIMEMAN_SCHEDULE_GET_SCHEDULE_ACCESS_DENIED'));

		return [];
	}

	$result = $schedule->collectRawValues();
	foreach ($schedule->obtainShifts() as $shift)
	{
		$result['SHIFTS'][] = $shift->collectValues(Values::ALL, $fieldsMask = FieldTypeMask::SCALAR);
	}
	if ($schedule->get('CALENDAR'))
	{
		/** @var BitrixTimemanModelScheduleCalendarCalendar $calendar */
		$calendar = $schedule->get('CALENDAR');
		$result['CALENDAR'] = $calendar->collectValues(Values::ALL, $fieldsMask = FieldTypeMask::SCALAR);
		$result['CALENDAR']['EXCLUSIONS'] = $calendar->obtainFinalExclusions();
	}
	foreach ($schedule->obtainDepartmentAssignments() as $departmentAssignment)
	{
		$result['USER_ASSIGNMENTS'][] = $departmentAssignment->collectValues(Values::ALL, $fieldsMask = FieldTypeMask::SCALAR);
	}
	foreach ($schedule->obtainUserAssignments() as $userAssignment)
	{
		$result['DEPARTMENT_ASSIGNMENTS'][] = $userAssignment->collectValues(Values::ALL, $fieldsMask = FieldTypeMask::SCALAR);
	}
	$rules = $schedule->obtainScheduleViolationRules();
	if ($rules->getId() > 0)
	{
		$result['SCHEDULE_VIOLATION_RULES'] = $rules->collectValues(Values::ALL, $fieldsMask = FieldTypeMask::SCALAR);
	}

	return $result;
}