From ca2a233ec175a0cae7451dba04410156e7ba487f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Mon, 7 Jun 2010 17:20:18 +0200 Subject: [PATCH] ItEr59S04ValidacionEProbasFuncionaisItEr58S04: [Bug #482] Fix bug. For elements with generic allocations the resource can't be retrieved. Returning it from GapOnQueue. --- .../planner/limiting/entities/GapRequirements.java | 9 +++++++-- .../limitingresources/LimitingResourceQueueModel.java | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) 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;