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