/** проверяет, закончилось ли у руководителей проекта время для согласования отпуска */ private boolean checkTimeIsOverForProjectManagers(Vacation vacation) throws VacationApprovalServiceException { Integer controlTimeForProjectManager = getControlTimeForProjectManager(vacation); Date date = new Date(); return (date.after( DateUtils.addDays(vacation.getCreationDate(), controlTimeForProjectManager))); }
/** * получаем максимальное количество дней, за которое руководители проекта должны согласовать * заявление на отпуск */ private Integer getControlTimeForProjectManager(Vacation vacation) throws VacationApprovalServiceException { Long daysForApprove = DateTimeUtil.getAllDaysCount(vacation.getCreationDate(), vacation.getBeginDate()); Integer vacationTreshold = getVacationTreshold(); if (daysForApprove >= vacationTreshold) { return getVacationProjectManagerOverrideThreshold(); } else { return getVacationUrgentProjectManagerOverrideThreshold(); } }