diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/GapRequirements.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/GapRequirements.java index 635a749a6..0170b7376 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/GapRequirements.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/GapRequirements.java @@ -26,6 +26,9 @@ import java.util.ListIterator; import org.apache.commons.lang.Validate; import org.joda.time.LocalDate; +import org.navalplanner.business.calendars.entities.ResourceCalendar; +import org.navalplanner.business.planner.limiting.entities.Gap.GapOnQueue; +import org.navalplanner.business.resources.entities.Resource; /** @@ -80,14 +83,16 @@ public class GapRequirements { .isAfter(gapEnd)); } - public AllocationOnGap guessValidity(Gap gap) { + public AllocationOnGap guessValidity(GapOnQueue gapOnQueue) { + Gap gap = gapOnQueue.getGap(); if (!isPotentiallyValid(gap)) { return AllocationOnGap.invalidOn(gap); } DateAndHour realStart = DateAndHour.Max(earliestPossibleStart, gap .getStartTime()); + Resource resource = gapOnQueue.getOriginQueue().getResource(); List hours = gap.getHoursInGapUntilAllocatingAndGoingToTheEnd( - element.getResource().getCalendar(), realStart, + resource.getCalendar(), realStart, earliestPossibleEnd, element.getIntentedTotalHours()); int total = sum(hours); if (total < element.getIntentedTotalHours()) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourceQueueModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourceQueueModel.java index 5ba5711f3..8d859029c 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourceQueueModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourceQueueModel.java @@ -413,7 +413,7 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel { for (GapOnQueue eachSubGap : getSubGaps(each, requirements .getElement(), generic)) { AllocationOnGap allocation = requirements - .guessValidity(eachSubGap.getGap()); + .guessValidity(eachSubGap); if (allocation.isValid()) { doAllocation(requirements, allocation, eachSubGap.getOriginQueue()); return true;