• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/lib/service/schedule/violationrulesservice.php
  • Класс: BitrixTimemanServiceScheduleViolationRulesService
  • Вызов: ViolationRulesService::add
public function add(ViolationForm $violationForm, $schedule = null)
{
	if ($schedule === null && !($schedule = $this->violationRulesRepository->findScheduleById($violationForm->scheduleId)))
	{
		return (new ViolationRulesServiceResult())->addScheduleNotFoundError();
	}
	$violationForm = clone $violationForm;
	$this->adjustViolationFormFields($violationForm, $schedule);
	$violationRules = ViolationRules::create($schedule->getId(), $violationForm, $violationForm->entityCode);
	$res = $this->violationRulesRepository->save($violationRules);
	if (!$res->isSuccess())
	{
		return ViolationRulesServiceResult::createByResult($res);
	}

	$this->worktimeAgentManager->createTimeLackForPeriodChecking($schedule, null, $violationRules);

	return (new ViolationRulesServiceResult())
		->setViolationRules($violationRules);
}