diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java index 7051d4652..99273d252 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java @@ -233,7 +233,7 @@ public abstract class OrderElement extends BaseEntity implements return getSchedulingState().isSomewhatScheduled(); } - private boolean isSchedulingPoint() { + public boolean isSchedulingPoint() { return getSchedulingState().getType() == Type.SCHEDULING_POINT; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/ITaskSourceDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/ITaskSourceDAO.java index b3ac75713..eb909e624 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/ITaskSourceDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/ITaskSourceDAO.java @@ -20,21 +20,11 @@ package org.navalplanner.business.planner.daos; import org.navalplanner.business.common.daos.IGenericDAO; -import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.orders.entities.TaskSource; -import org.navalplanner.business.planner.entities.TaskElement; /** * @author Óscar González Fernández * */ public interface ITaskSourceDAO extends IGenericDAO { - - /** - * Returns the unique {@link taskElement} assigned to the current - * {@link OrderElement} - * @param - * @return {@link TaskElement} - */ - TaskElement findUniqueByOrderElement(OrderElement orderElement); } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/TaskSourceDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/TaskSourceDAO.java index f0157de94..9881f0261 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/TaskSourceDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/TaskSourceDAO.java @@ -19,12 +19,8 @@ */ package org.navalplanner.business.planner.daos; -import org.hibernate.HibernateException; -import org.hibernate.Query; import org.navalplanner.business.common.daos.GenericDAOHibernate; -import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.orders.entities.TaskSource; -import org.navalplanner.business.planner.entities.TaskElement; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Repository; @@ -38,23 +34,4 @@ import org.springframework.stereotype.Repository; public class TaskSourceDAO extends GenericDAOHibernate implements ITaskSourceDAO { - public TaskElement findUniqueByOrderElement(OrderElement orderElement) { - String strQuery = "SELECT task " + "FROM TaskSource taskSource " - + "LEFT OUTER JOIN taskSource.task task " - + "LEFT OUTER JOIN taskSource.orderElement orderElement " - + "WHERE task IN (SELECT task FROM Task task) "; - - if (orderElement != null) { - strQuery += "AND orderElement = :orderElement "; - } - try { - Query query = getSession().createQuery(strQuery); - query.setParameter("orderElement", orderElement); - query.setMaxResults(1); - return (TaskElement) query.uniqueResult(); - } catch (HibernateException e) { - return null; - } - } - } diff --git a/navalplanner-webapp/src/main/jasper/timeLineRequiredMaterial.jrxml b/navalplanner-webapp/src/main/jasper/timeLineRequiredMaterial.jrxml index d1a5bbe68..52a27e1dd 100644 --- a/navalplanner-webapp/src/main/jasper/timeLineRequiredMaterial.jrxml +++ b/navalplanner-webapp/src/main/jasper/timeLineRequiredMaterial.jrxml @@ -309,13 +309,25 @@ - + + + - + - + + + + + + + + + + + diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/TimeLineRequiredMaterialModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/TimeLineRequiredMaterialModel.java index 801f9b429..2485a4af1 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/TimeLineRequiredMaterialModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/reports/TimeLineRequiredMaterialModel.java @@ -203,12 +203,11 @@ public class TimeLineRequiredMaterialModel implements OrderElement current = material.getOrderElement(); OrderElement result = current; while (current != null) { - TaskElement task = taskSourceDAO.findUniqueByOrderElement(current); - if (task != null) { - return task; + if (current.isSchedulingPoint()) { + return current.getAssociatedTaskElement(); } result = current; - current = orderElementDAO.findParent(current); + current = current.getParent(); } return null; } @@ -218,9 +217,11 @@ public class TimeLineRequiredMaterialModel implements Date lessDate = null; TaskElement resultTask = null; for (OrderElement child : current.getAllChildren()) { - TaskElement task = taskSourceDAO.findUniqueByOrderElement(child); - if (task != null) { - if ((lessDate == null) || (lessDate.after(task.getStartDate()))) { + if (child.isSchedulingPoint()) { + TaskElement task = child.getAssociatedTaskElement(); + if ((task != null) + && ((lessDate == null) || (lessDate.after(task + .getStartDate())))) { lessDate = task.getStartDate(); resultTask = task; }