diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssignment.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssignment.java index 11230d189..ef3513824 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssignment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DayAssignment.java @@ -20,6 +20,8 @@ package org.navalplanner.business.planner.entities; +import static org.navalplanner.business.workingday.EffortDuration.zero; + import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -80,10 +82,11 @@ public abstract class DayAssignment extends BaseEntity { return start; } - public static int sum(Collection assignments) { - int result = 0; - for (DayAssignment dayAssignment : assignments) { - result += dayAssignment.getHours(); + public static EffortDuration sum( + Collection assignments) { + EffortDuration result = zero(); + for (DayAssignment each : assignments) { + result = result.plus(each.getDuration()); } return result; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DerivedAllocation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DerivedAllocation.java index 3cdf86b30..1a9fcd9b9 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DerivedAllocation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/DerivedAllocation.java @@ -117,7 +117,7 @@ public class DerivedAllocation extends BaseEntity { } int getHours() { - return DayAssignment.sum(getUnorderedAssignments()); + return DayAssignment.sum(getUnorderedAssignments()).roundToHours(); } abstract void resetAssignmentsTo( diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java index 56ba5a77f..29463c126 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/ResourceAllocation.java @@ -836,7 +836,7 @@ public abstract class ResourceAllocation extends } public int getAssignedHours() { - return DayAssignment.sum(getAssignments()); + return DayAssignment.sum(getAssignments()).roundToHours(); } protected abstract class DayAssignmentsState { @@ -968,11 +968,12 @@ public abstract class ResourceAllocation extends protected abstract DayAssignmentsState getDayAssignmentsState(); public int getConsolidatedHours() { - return DayAssignment.sum(getConsolidatedAssignments()); + return DayAssignment.sum(getConsolidatedAssignments()).roundToHours(); } public int getNonConsolidatedHours() { - return DayAssignment.sum(getNonConsolidatedAssignments()); + return DayAssignment.sum(getNonConsolidatedAssignments()) + .roundToHours(); } /** diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/AllocatorForSpecifiedResourcesPerDayAndHours.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/AllocatorForSpecifiedResourcesPerDayAndHours.java index 406ce3853..7bfa56797 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/AllocatorForSpecifiedResourcesPerDayAndHours.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/AllocatorForSpecifiedResourcesPerDayAndHours.java @@ -129,7 +129,7 @@ public abstract class AllocatorForSpecifiedResourcesPerDayAndHours { resourcesPerDayModification, day, remaining); resultAssignments.get(resourcesPerDayModification).addAll( newAssignments); - return DayAssignment.sum(newAssignments); + return DayAssignment.sum(newAssignments).roundToHours(); } private static class HoursPerAllocation {