• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/lib/service/worktime/violation/worktimeviolationmanager.php
  • Класс: BitrixTimemanServiceWorktimeViolationWorktimeViolationManager
  • Вызов: WorktimeViolationManager::getViolationBuilder
protected function getViolationBuilder(WorktimeViolationParams $violationParams)
{
	if (!$violationParams->getSchedule())
	{
		throw new ObjectException(Schedule::class . ' is required to instantiate WorktimeViolationBuilder');
	}
	if (Schedule::isScheduleFixed($violationParams->getSchedule()))
	{
		if (!$this->fixedViolationBuilder)
		{
			$this->fixedViolationBuilder = $this->violationBuilderFactory->createFixedScheduleViolationBuilder($violationParams);
		}
		else
		{
			$this->fixedViolationBuilder->setWorktimeViolationParams($violationParams);
		}
		return $this->fixedViolationBuilder;
	}
	elseif (Schedule::isScheduleShifted($violationParams->getSchedule()))
	{
		if (!$this->shiftedViolationBuilder)
		{
			$this->shiftedViolationBuilder = $this->violationBuilderFactory->createShiftedScheduleViolationBuilder($violationParams);
		}
		else
		{
			$this->shiftedViolationBuilder->setWorktimeViolationParams($violationParams);
		}
		return $this->shiftedViolationBuilder;
	}
	elseif (Schedule::isScheduleFlextime($violationParams->getSchedule()))
	{
		if (!$this->flextimeViolationBuilder)
		{
			$this->flextimeViolationBuilder = $this->violationBuilderFactory->createFlextimeScheduleViolationBuilder($violationParams);
		}
		else
		{
			$this->flextimeViolationBuilder->setWorktimeViolationParams($violationParams);
		}
		return $this->flextimeViolationBuilder;
	}
}