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