ItEr60S04ValidacionEProbasFuncionaisItEr59S04: [Bug #531] Update length of parent tasks when limiting resources tasks are assigned to a queue.

This commit is contained in:
Jacobo Aragunde Pérez 2010-07-08 14:02:11 +02:00 committed by Javier Moran Rua
parent cc56712d57
commit de9c2cd55f

View file

@ -124,6 +124,8 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
private Set<LimitingResourceQueueElement> toBeSaved = new HashSet<LimitingResourceQueueElement>();
private Set<TaskElement> parentElementsToBeUpdated = new HashSet<TaskElement>();
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<ResourceAllocation<?>> 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) {