diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java index 1ca68f660..3515d9e36 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java @@ -26,8 +26,11 @@ import java.util.Date; import java.util.HashSet; import java.util.List; import java.util.Set; +import java.util.SortedMap; +import java.util.TreeMap; import org.apache.commons.lang.Validate; +import org.joda.time.LocalDate; import org.navalplanner.business.calendars.entities.BaseCalendar; import org.navalplanner.business.common.BaseEntity; import org.navalplanner.business.orders.entities.OrderElement; @@ -278,4 +281,21 @@ public abstract class TaskElement extends BaseEntity { public abstract Set> getResourceAllocations(); + public SortedMap getHoursAssignedByDay() { + SortedMap result = new TreeMap(); + for (ResourceAllocation resourceAllocation : getResourceAllocations()) { + for (DayAssignment each : resourceAllocation + .getAssignments()) { + addToResult(result, each.getDay(), each.getHours()); + } + } + return result; + } + + private void addToResult(SortedMap result, + LocalDate date, int hours) { + int current = result.get(date) != null ? result.get(date) : 0; + result.put(date, current + hours); + } + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java index 7fa5ead13..421915f52 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java @@ -239,8 +239,8 @@ public class TaskElementAdapter implements ITaskElementAdapter { LocalDate lastDay = null; Integer hoursLastDay = 0; - Map daysMap = dayAssignmentDAO - .getHoursAssignedByDayFor(taskElement); + Map daysMap = taskElement + .getHoursAssignedByDay(); if (daysMap.isEmpty()) { return null; }