diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/TaskElementDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/TaskElementDAO.java index e52905dc3..f905e3aea 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/TaskElementDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/TaskElementDAO.java @@ -103,12 +103,35 @@ public class TaskElementDAO extends GenericDAOHibernate List result = new ArrayList(); final List tasks = getTasksByOrderAndDate(order, deadline); - for (Task task: tasks) { + final List sortTasks = sortTasks(order, tasks); + for (Task task : sortTasks) { result.add(new WorkingProgressPerTaskDTO(task, deadline)); } return result; } + private List sortTasks(Order order, List tasks) { + List sortTasks = new ArrayList(); + final List orderElements = order.getAllChildren(); + for (OrderElement orderElement : orderElements) { + Task task = findOrderElementInTasks(orderElement, tasks); + if (task != null) { + sortTasks.add(task); + } + } + return sortTasks; + } + + private Task findOrderElementInTasks(OrderElement orderElement, + List tasks) { + for (Task task : tasks) { + if (task.getOrderElement().getId().equals(orderElement.getId())) { + return task; + } + } + return null; + } + private List getTasksByOrderAndDate(Order order, LocalDate deadline) { final List orders = (order != null) ? order diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingProgressPerTaskModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingProgressPerTaskModel.java index 1a1cbc255..70d006bd2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingProgressPerTaskModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/WorkingProgressPerTaskModel.java @@ -76,7 +76,7 @@ public class WorkingProgressPerTaskModel implements IWorkingProgressPerTaskModel Date referenceDate) { orderDAO.reattachUnmodifiedEntity(order); - initializeOrderElements(order.getAllOrderElements()); + initializeOrderElements(order.getAllChildren()); final List workingHoursPerWorkerList = taskDAO.getWorkingProgressPerTaskReport(order, new LocalDate(referenceDate));