From 9687f23032b1d67db46b9d2ce373e5d8c1fe148c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Thu, 29 Sep 2011 12:52:22 +0200 Subject: [PATCH] [Bug #1195] Fix bug When using the owner scenario the allocations must also be switched to the current scenario. A lazy initialization exception is also avoided reattaching the resources of the allocation to be removed. FEA: ItEr75S04BugFixing --- .../web/planner/allocation/AllocationRowsHandler.java | 3 +++ .../navalplanner/web/planner/order/PlanningStateCreator.java | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRowsHandler.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRowsHandler.java index d569a0819..5e5c04f29 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRowsHandler.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRowsHandler.java @@ -404,6 +404,9 @@ public class AllocationRowsHandler { for (AllocationRow each : currentRows) { result.addAll(each.getAssociatedResources()); } + for (ResourceAllocation each : requestedToRemove) { + result.addAll(each.getAssociatedResources()); + } return result; } 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 be4eb0702..e2983825b 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 @@ -304,6 +304,8 @@ public class PlanningStateCreator { private IScenarioInfo buildScenarioInfo(Order orderReloaded) { Scenario currentScenario = scenarioManager.getCurrent(); if (orderReloaded.isUsingTheOwnerScenario()) { + switchAllocationsToScenario(currentScenario, + orderReloaded.getAssociatedTaskElement()); return new UsingOwnerScenario(currentScenario, orderReloaded); } final List previousAssignments = orderReloaded @@ -323,6 +325,9 @@ public class PlanningStateCreator { private static void switchAllocationsToScenario(Scenario scenario, TaskElement task) { + if (task == null) { + return; + } for (ResourceAllocation each : task.getAllResourceAllocations()) { each.switchToScenario(scenario); }