From de9c2cd55f33e762c16a9c9335c3e00b3b2f705e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Thu, 8 Jul 2010 14:02:11 +0200 Subject: [PATCH] ItEr60S04ValidacionEProbasFuncionaisItEr59S04: [Bug #531] Update length of parent tasks when limiting resources tasks are assigned to a queue. --- .../LimitingResourceQueueModel.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) 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 c6a569439..011d69d9d 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 @@ -124,6 +124,8 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel { private Set toBeSaved = new HashSet(); + private Set parentElementsToBeUpdated = new HashSet(); + private Scenario master; @Override @@ -692,8 +694,10 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel { saveQueueElement(each); } } + updateEndDateForParentTasks(); SaveCommand.dontPoseAsTransientAndChildrenObjects(getAllocations(toBeSaved)); toBeSaved.clear(); + parentElementsToBeUpdated.clear(); } private List> getAllocations( @@ -709,7 +713,21 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel { private void saveQueueElement(LimitingResourceQueueElement element) { limitingResourceQueueElementDAO.save(element); - taskDAO.save(getAssociatedTask(element)); + Task task = getAssociatedTask(element); + taskDAO.save(task); + parentElementsToBeUpdated.add(task.getParent()); + } + + private void updateEndDateForParentTasks() { + for(TaskElement task : parentElementsToBeUpdated) { + TaskElement parent = task; + while(parent != null) { + parent.setEndDate(null); + parent.initializeEndDateIfDoesntExist(); + taskDAO.save(parent); + parent = parent.getParent(); + } + } } private Task getAssociatedTask(LimitingResourceQueueElement element) {