From a98a26295d24a7a5ca5f5fea1a812245f65984ba Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Fri, 22 Jan 2010 18:06:36 +0100 Subject: [PATCH] ItEr44S19CUExportacionUnidadePlanificacion: Fixing problem exporting a subcontracted task. --- .../business/orders/daos/IOrderElementDAO.java | 3 ++- .../business/orders/daos/OrderElementDAO.java | 8 ++++++-- .../web/subcontract/SubcontractedTasksModel.java | 11 ++++++++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/daos/IOrderElementDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/daos/IOrderElementDAO.java index 54dae5383..6363ab7e2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/daos/IOrderElementDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/daos/IOrderElementDAO.java @@ -25,6 +25,7 @@ import java.util.List; import org.navalplanner.business.common.daos.IGenericDAO; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; +import org.navalplanner.business.orders.entities.Order; import org.navalplanner.business.orders.entities.OrderElement; /** @@ -64,7 +65,7 @@ public interface IOrderElementDAO extends IGenericDAO { */ public OrderElement findParent(OrderElement orderElement); - public OrderElement loadOrderAvoidingProxyFor(OrderElement orderElement); + public Order loadOrderAvoidingProxyFor(OrderElement orderElement); /** * Returns the number of assigned hours for an {@link OrderElement} diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/daos/OrderElementDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/daos/OrderElementDAO.java index 1c07a9986..8a9643d9e 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/daos/OrderElementDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/daos/OrderElementDAO.java @@ -32,6 +32,7 @@ import org.navalplanner.business.common.IAdHocTransactionService; import org.navalplanner.business.common.IOnTransaction; import org.navalplanner.business.common.daos.GenericDAOHibernate; import org.navalplanner.business.common.exceptions.InstanceNotFoundException; +import org.navalplanner.business.orders.entities.Order; import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.orders.entities.TaskSource; import org.navalplanner.business.planner.daos.ITaskSourceDAO; @@ -62,6 +63,9 @@ public class OrderElementDAO extends GenericDAOHibernate @Autowired private ITaskSourceDAO taskSourceDAO; + @Autowired + private IOrderDAO orderDAO; + @Autowired private IAdHocTransactionService transactionService; @@ -103,7 +107,7 @@ public class OrderElementDAO extends GenericDAOHibernate } @Override - public OrderElement loadOrderAvoidingProxyFor( + public Order loadOrderAvoidingProxyFor( final OrderElement orderElement) { OrderElement order = transactionService .runOnAnotherTransaction(new IOnTransaction() { @@ -119,7 +123,7 @@ public class OrderElementDAO extends GenericDAOHibernate return result; } }); - return (OrderElement) findExistingEntity(order.getId()); + return orderDAO.findExistingEntity(order.getId()); } @Override diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/subcontract/SubcontractedTasksModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/subcontract/SubcontractedTasksModel.java index fb2ea5cc7..c2c194a42 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/subcontract/SubcontractedTasksModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/subcontract/SubcontractedTasksModel.java @@ -30,6 +30,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.cxf.jaxrs.client.WebClient; import org.navalplanner.business.common.daos.IConfigurationDAO; +import org.navalplanner.business.common.exceptions.InstanceNotFoundException; import org.navalplanner.business.common.exceptions.ValidationException; import org.navalplanner.business.externalcompanies.entities.ExternalCompany; import org.navalplanner.business.orders.daos.IOrderElementDAO; @@ -181,9 +182,13 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel { private OrderElementDTO getOrderElement( SubcontractedTaskData subcontractedTaskData) { - OrderElement orderElement = orderElementDAO - .loadOrderAvoidingProxyFor(subcontractedTaskData.getTask() - .getOrderElement()); + OrderElement orderElement; + try { + orderElement = orderElementDAO.find(subcontractedTaskData.getTask() + .getOrderElement().getId()); + } catch (InstanceNotFoundException e) { + throw new RuntimeException(e); + } if (subcontractedTaskData.isNodeWithoutChildrenExported()) { orderElement = orderElement.calculateOrderLineForSubcontract();