@Override public int compareTo(AssignmentAggregateReportElement pagO) { return this.getProjectAssignment().compareTo(pagO.getProjectAssignment()); }
public UserProjectStatus(AssignmentAggregateReportElement aggregate, Number totalBookedHours) { super(aggregate.getProjectAssignment(), aggregate.getHours()); this.totalBookedHours = totalBookedHours; }
/** * Compare on prj * @param o1 * @param o2 * @return */ private int compareOnProject(AssignmentAggregateReportElement o1, AssignmentAggregateReportElement o2) { return o1.getProjectAssignment().getProject().getFullName().compareToIgnoreCase( o2.getProjectAssignment().getProject().getFullName()); }
@Override @Transactional(readOnly = true) public List<ProjectAssignment> getProjectAssignmentsAndCheckDeletability(Project project) { List<ProjectAssignment> assignmentsForProject = projectAssignmentDAO.findAllProjectAssignmentsForProject(project); if (!assignmentsForProject.isEmpty()) { Map<Integer, ProjectAssignment> assignmentMap = Maps.newHashMap(); for (ProjectAssignment projectAssignment : assignmentsForProject) { projectAssignment.setDeletable(true); assignmentMap.put(projectAssignment.getPK(), projectAssignment); } List<AssignmentAggregateReportElement> aggregates = reportAggregatedDAO.getCumulatedHoursPerAssignmentForAssignments(Lists.newArrayList(assignmentMap.keySet())); for (AssignmentAggregateReportElement aggregate : aggregates) { assignmentMap.get(aggregate.getProjectAssignment().getAssignmentId()).setDeletable(false); } } return assignmentsForProject; }
if (aggregate.getProjectAssignment().getAssignmentType().isFixedAllottedType() || aggregate.getProjectAssignment().getAssignmentType().isFlexAllottedType()) { Integer assignmentId = aggregate.getProjectAssignment().getAssignmentId(); assignmentIds.add(assignmentId); originalAggregates.put(assignmentId, aggregate); userProjectStatus.add(new UserProjectStatus(originalAggregates.get(aggregate.getProjectAssignment().getAssignmentId()), aggregate.getHours()));
/** * Compare on project name or customer name */ public int compare(AssignmentAggregateReportElement o1, AssignmentAggregateReportElement o2) { int compare = 0; switch (sortType) { case SORT_ON_PROJECT: compare = compareOnProject(o1, o2); break; case SORT_ON_CUSTOMER: compare = o1.getProjectAssignment().getProject().getCustomer().getName() .compareToIgnoreCase(o2.getProjectAssignment().getProject().getCustomer().getName()); if (compare == 0) { compare = compareOnProject(o1, o2); } break; } return compare; }
@Override public ProjectManagerReport getProjectManagerDetailedReport(Project project) { ProjectManagerReport report = new ProjectManagerReport(); // get the project report.setProject(project); // get a proper report range DateRange reportRange = getReportRangeForProject(project); report.setReportRange(reportRange); // get all aggregates List<Project> projects = Arrays.asList(project); SortedSet<AssignmentAggregateReportElement> aggregates = new TreeSet<AssignmentAggregateReportElement>(reportAggregatedDAO.getCumulatedHoursPerAssignmentForProjects(projects, reportRange)); // filter out just the id's List<Integer> assignmentIds = new ArrayList<>(); for (AssignmentAggregateReportElement aggregate : aggregates) { assignmentIds.add(aggregate.getProjectAssignment().getAssignmentId()); } // get all assignments for this period regardless whether they booked hours on it List<ProjectAssignment> allAssignments = projectAssignmentService.getProjectAssignments(project, reportRange); for (ProjectAssignment assignment : allAssignments) { if (!assignmentIds.contains(assignment.getAssignmentId())) { AssignmentAggregateReportElement emptyAggregate = new AssignmentAggregateReportElement(); emptyAggregate.setProjectAssignment(assignment); aggregates.add(emptyAggregate); } } report.setAggregates(aggregates); report.deriveTotals(); return report; }
@Test public void shouldGetCumulatedHoursPerAssignmentForUser() { List<User> users = Arrays.asList(UserObjectMother.createUser(), new User(2)); List<AssignmentAggregateReportElement> results = reportAggregatedDAO.getCumulatedHoursPerAssignmentForUsers(users); // test if collection is properly initialized AssignmentAggregateReportElement rep = results.get(0); assertEquals("eHour", rep.getProjectAssignment().getProject().getName()); assertEquals(38.7f, rep.getHours().floatValue(), 0.1); assertEquals(5, results.size()); }
aggregate.getProjectAssignment().setProject(pmProject); elements.add(aggregate); elements.add(AssignmentAggregateReportElementMother.createProjectAssignmentAggregate(2, 2, 2));