• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/lib/service/schedule/scheduleservice.php
  • Класс: BitrixTimemanServiceScheduleScheduleService
  • Вызов: ScheduleService::add
public function add(ScheduleForm $scheduleForm)
{
	return $this->wrapAction(function () use ($scheduleForm) {

		# calendar
		$calendarResult = $this->safeRun($this->saveCalendar($scheduleForm));

		# schedule
		$schedule = Schedule::create(
			$scheduleForm,
			$calendarResult->getCalendar()->getId()
		);
		$this->safeRun($this->scheduleProvider->save($schedule));

		$schedule->setCalendar($calendarResult->getCalendar());

		# shifts
		if (!$schedule->isFlextime())
		{
			$this->safeRun($this->createShifts($schedule, $scheduleForm));
		}

		# violation rules
		$this->safeRun($violationResult = $this->violationRulesService->add($scheduleForm->violationForm, $schedule));

		# users
		# departments
		$this->safeRun($this->saveAssignments($schedule, $scheduleForm));

		$this->safeRun($this->excludeSelectedDepartmentsFromOtherSchedules($schedule));

		$this->cleanCache();

		return $this->buildResultWithSchedule($schedule);
	});
}