- Модуль: timeman
- Путь к файлу: ~/bitrix/modules/timeman/lib/controller/schedule.php
- Класс: BitrixTimemanControllerSchedule
- Вызов: Schedule::getSchedulesForScheduleFormAction
public function getSchedulesForScheduleFormAction($exceptScheduleId = null, $exceptScheduleAssignmentCodes = [], $checkNestedEntities = false)
{
$scheduleFormHelper = new ScheduleFormHelper();
if ($exceptScheduleId <= 0 && empty($exceptScheduleAssignmentCodes))
{
$this->addError(new MainError('Schedule id or assignment codes are required'));
return [];
}
$schedule = null;
if ($exceptScheduleId > 0)
{
$schedule = $this->scheduleRepository
->findByIdWith($exceptScheduleId, [
'DEPARTMENT_ASSIGNMENTS',
'USER_ASSIGNMENTS',
]);
}
if (!$schedule)
{
$schedule = (new ScheduleEntity(false))->setId(0);
}
$schedule->removeAllUserAssignments();
$schedule->removeAllDepartmentAssignments();
foreach ($exceptScheduleAssignmentCodes as $codeData)
{
$schedule->assignEntity($codeData['code'], $codeData['excluded'] === 'true');
if (EntityCodesHelper::isAllUsers($codeData['code']))
{
$schedule->setIsForAllUsers(true);
}
}
$schedulesForEntityCodes = $scheduleFormHelper->calculateSchedulesMapBySchedule(
$schedule,
$checkNestedEntities
);
return [
'schedules' => $schedulesForEntityCodes,
];
}