/** * For flex/fixed allotted, give the available hours * * @return */ public Optional<Float> getAvailableHours() { if (projectAssignment != null) { if (projectAssignment.getAssignmentType().isFixedAllottedType()) { if (hours != null && projectAssignment.getAllottedHours() != null && hours.floatValue() > 0 && projectAssignment.getAllottedHours() > 0) { return Optional.of(projectAssignment.getAllottedHours() - hours.floatValue()); } } else if (projectAssignment.getAssignmentType().isFlexAllottedType() && hours != null && projectAssignment.getAllottedHours() != null && hours.floatValue() > 0 && projectAssignment.getAllottedHours() > 0) { return Optional.of((projectAssignment.getAllottedHours() + ((projectAssignment.getAllowedOverrun() != null) ? projectAssignment.getAllowedOverrun() : 0)) - hours.floatValue()); } } return Optional.absent(); }
/** * Get flex hours remaining to book on this project * @return */ public Float getFlexHoursRemaining() { Float remainder = null; if (totalBookedHours != null && getProjectAssignment().getAssignmentType().isFlexAllottedType()) { if (totalBookedHours.floatValue() <= getProjectAssignment().getAllottedHours()) { remainder = getProjectAssignment().getAllowedOverrun(); } else { remainder = getProjectAssignment().getAllottedHours() + getProjectAssignment().getAllowedOverrun() - totalBookedHours.floatValue(); } } return remainder; }
else if (statusAggregateHours >= (assignment.getAllottedHours() + assignment.getAllowedOverrun())) float totalAllowed = assignment.getAllottedHours() + assignment.getAllowedOverrun();
private static ProjectAssignment createProjectAssignment(ProjectAssignment templateAssignment) { ProjectAssignment assignment = new ProjectAssignment(); assignment.setActive(templateAssignment.isActive()); assignment.setAllottedHours(templateAssignment.getAllottedHours()); assignment.setAllowedOverrun(templateAssignment.getAllowedOverrun()); assignment.setAssignmentType(templateAssignment.getAssignmentType()); assignment.setDateEnd(templateAssignment.getDateEnd()); assignment.setDateStart(templateAssignment.getDateStart()); assignment.setHourlyRate(templateAssignment.getHourlyRate()); assignment.setNotifyPm(templateAssignment.isNotifyPm()); assignment.setProject(templateAssignment.getProject()); assignment.setRole(templateAssignment.getRole()); assignment.setUser(templateAssignment.getUser()); return assignment; }