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 80cd0fbeb..41945be62 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 @@ -241,7 +241,7 @@ public abstract class ResourceAllocation extends @Override protected boolean thereAreAvailableHoursFrom( - LocalDate start, + IntraDayDate start, ResourcesPerDayModification resourcesPerDayModification, EffortDuration effortToAllocate) { ICalendar calendar = getCalendar(resourcesPerDayModification); @@ -249,7 +249,7 @@ public abstract class ResourceAllocation extends .getGoal(); AvailabilityTimeLine availability = resourcesPerDayModification .getAvailability(); - availability.invalidUntil(start); + availability.invalidUntil(start.asExclusiveEnd()); return calendar.thereAreCapacityFor(availability, resourcesPerDay, effortToAllocate); } 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 5c82e3348..e8b390033 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 @@ -31,7 +31,6 @@ import java.util.Map; import java.util.Map.Entry; import org.apache.commons.lang.Validate; -import org.joda.time.LocalDate; import org.navalplanner.business.common.ProportionalDistributor; import org.navalplanner.business.planner.entities.DayAssignment; import org.navalplanner.business.planner.entities.ResourceAllocation; @@ -67,7 +66,7 @@ public abstract class AllocatorForSpecifiedResourcesPerDayAndHours { task.getFirstDayNotConsolidated(), task.getIntraDayStartDate()); int i = 0; IntraDayDate currentEnd = start; - for (EffortPerAllocation each : effortPerAllocation(start.getDate(), + for (EffortPerAllocation each : effortPerAllocation(start, effortToAllocate)) { IntraDayDate endCandidate = untilAllocating(start, each.allocation, each.duration); @@ -78,7 +77,7 @@ public abstract class AllocatorForSpecifiedResourcesPerDayAndHours { return currentEnd; } - private List effortPerAllocation(LocalDate start, + private List effortPerAllocation(IntraDayDate start, EffortDuration toBeAssigned) { return new HoursPerAllocationCalculator(allocations) .calculateEffortsPerAllocation(start, toBeAssigned); @@ -142,7 +141,7 @@ public abstract class AllocatorForSpecifiedResourcesPerDayAndHours { ResourcesPerDayModification allocation, PartialDay day, EffortDuration limit); - protected abstract boolean thereAreAvailableHoursFrom(LocalDate start, + protected abstract boolean thereAreAvailableHoursFrom(IntraDayDate start, ResourcesPerDayModification resourcesPerDayModification, EffortDuration remainingDuration); @@ -193,7 +192,7 @@ public abstract class AllocatorForSpecifiedResourcesPerDayAndHours { } public List calculateEffortsPerAllocation( - LocalDate start, EffortDuration toAssign) { + IntraDayDate start, EffortDuration toAssign) { do { List durations = divideEffort(toAssign); List result = EffortPerAllocation.wrap( @@ -212,7 +211,8 @@ public abstract class AllocatorForSpecifiedResourcesPerDayAndHours { } private List getUnsatisfied( - LocalDate start, List hoursPerAllocations) { + IntraDayDate start, + List hoursPerAllocations) { List cannotSatisfy = new ArrayList(); for (EffortPerAllocation each : hoursPerAllocations) { if (!thereAreAvailableHoursFrom(start, each.allocation,