From daae2bf5ff54e4957bb6267c1bf752cfb1474bb6 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 12 Sep 2011 09:56:05 +0200 Subject: [PATCH] Fix issues in with StretchesFunction after removing date field FEA: ItEr75S23FixAllocationModel --- .../planner/entities/StretchesFunction.java | 2 +- .../entities/StretchesFunctionTypeEnum.java | 2 +- .../web/planner/order/PlanningStateCreator.java | 16 +++++++++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunction.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunction.java index c71831deb..506f298f4 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunction.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunction.java @@ -140,7 +140,7 @@ public class StretchesFunction extends AssignmentFunction { endDate = endDate.plusDays(1); } resourceAllocation.withPreviousAssociatedResources() - .onIntervalWithinTask(getStartFor(startInclusive), endDate) + .onInterval(getStartFor(startInclusive), endDate) .allocateHours(intervalHours); } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunctionTypeEnum.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunctionTypeEnum.java index 8d7023344..a704b6eb6 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunctionTypeEnum.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunctionTypeEnum.java @@ -215,7 +215,7 @@ public enum StretchesFunctionTypeEnum { intervals.addAll(stretchesFunction.getIntervalsDefinedByStreches()); LocalDate startInclusive = resourceAllocation.getFirstNonConsolidatedDate(); - LocalDate endExclusive = resourceAllocation.getTask().getEndAsLocalDate(); + LocalDate endExclusive = resourceAllocation.getEndDate(); int totalHours = resourceAllocation.getNonConsolidatedHours(); apply(resourceAllocation, intervals, startInclusive, endExclusive, totalHours); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java index 30ca8ae53..eca4e3f4c 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/order/PlanningStateCreator.java @@ -38,12 +38,14 @@ import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.orders.entities.TaskSource; import org.navalplanner.business.planner.daos.ITaskElementDAO; import org.navalplanner.business.planner.daos.ITaskSourceDAO; +import org.navalplanner.business.planner.entities.AssignmentFunction; import org.navalplanner.business.planner.entities.DayAssignment; import org.navalplanner.business.planner.entities.DerivedAllocation; import org.navalplanner.business.planner.entities.GenericResourceAllocation; import org.navalplanner.business.planner.entities.ResourceAllocation; import org.navalplanner.business.planner.entities.ResourceAllocation.IVisitor; import org.navalplanner.business.planner.entities.SpecificResourceAllocation; +import org.navalplanner.business.planner.entities.StretchesFunction; import org.navalplanner.business.planner.entities.Task; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.business.planner.entities.TaskGroup; @@ -200,7 +202,7 @@ public class PlanningStateCreator { } private static void forceLoadOfDataAssociatedTo(TaskElement each) { - forceLoadOfResourceAllocationsResources(each); + forceLoadOfResourceAllocationsResourcesAndAssignmentFunction(each); forceLoadOfCriterions(each); if (each.getCalendar() != null) { BaseCalendarModel.forceLoadBaseCalendar(each.getCalendar()); @@ -210,9 +212,9 @@ public class PlanningStateCreator { /** * Forcing the load of all resources so the resources at planning state and - * at allocations are the same + * at allocations are the same. It loads the assignment function too */ - private static void forceLoadOfResourceAllocationsResources( + private static void forceLoadOfResourceAllocationsResourcesAndAssignmentFunction( TaskElement taskElement) { Set> resourceAllocations = taskElement .getAllResourceAllocations(); @@ -221,6 +223,14 @@ public class PlanningStateCreator { for (DerivedAllocation eachDerived : each.getDerivedAllocations()) { eachDerived.getResources(); } + forceLoadOfAssignmentFunction(each); + } + } + + private static void forceLoadOfAssignmentFunction(ResourceAllocation each) { + AssignmentFunction function = each.getAssignmentFunction(); + if ((function != null) && (function instanceof StretchesFunction)) { + ((StretchesFunction) function).getStretches().size(); } }