diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/EffortDistributor.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/EffortDistributor.java index a7cdf75c1..55052f578 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/EffortDistributor.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/EffortDistributor.java @@ -172,6 +172,31 @@ public class EffortDistributor { ResourceWithDerivedData.resources(resourcesAssignable)); } + private List divisionAt( + List resources, LocalDate day) { + List result = new ArrayList(); + for (int i = 0; i < resources.size(); i++) { + List shares = new ArrayList(); + Resource resource = resources.get(i).resource; + ICalendar calendarForResource = resources.get(i).calendar; + EffortDuration alreadyAssigned = assignedHoursForResource + .getAssignedDurationAt(resource, day); + final int alreadyAssignedSeconds = alreadyAssigned.getSeconds(); + Integer capacityEachOneSeconds = calendarForResource.asDurationOn( + PartialDay.wholeDay(day), ONE).getSeconds(); + final int capacityUnits = resources.get(i).capacityUnits; + assert capacityUnits >= 1; + final int assignedForEach = alreadyAssignedSeconds / capacityUnits; + final int remainder = alreadyAssignedSeconds % capacityUnits; + for (int j = 0; j < capacityUnits; j++) { + int assignedSeconds = assignedForEach + (j < remainder ? 1 : 0); + shares.add(new Share(assignedSeconds - capacityEachOneSeconds)); + } + result.add(new ShareSource(shares)); + } + return result; + } + private List resourcesAssignableAt(LocalDate day) { List result = new ArrayList(); for (ResourceWithDerivedData each : resources) { @@ -229,29 +254,4 @@ public class EffortDistributor { } - public List divisionAt( - List resources, LocalDate day) { - List result = new ArrayList(); - for (int i = 0; i < resources.size(); i++) { - List shares = new ArrayList(); - Resource resource = resources.get(i).resource; - ICalendar calendarForResource = resources.get(i).calendar; - EffortDuration alreadyAssigned = assignedHoursForResource - .getAssignedDurationAt(resource, day); - final int alreadyAssignedSeconds = alreadyAssigned.getSeconds(); - Integer capacityEachOneSeconds = calendarForResource.asDurationOn( - PartialDay.wholeDay(day), ONE).getSeconds(); - final int capacityUnits = resources.get(i).capacityUnits; - assert capacityUnits >= 1; - final int assignedForEach = alreadyAssignedSeconds / capacityUnits; - final int remainder = alreadyAssignedSeconds % capacityUnits; - for (int j = 0; j < capacityUnits; j++) { - int assignedSeconds = assignedForEach + (j < remainder ? 1 : 0); - shares.add(new Share(assignedSeconds - capacityEachOneSeconds)); - } - result.add(new ShareSource(shares)); - } - return result; - } - }