From ad871fb4509b171d2ceb5d9bc2f26215fd8e27a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 20 Jan 2010 13:24:48 +0100 Subject: [PATCH] ItEr44S10CUGravacionModelosUnidadesTraballoItEr43S12: Adding prepareCreationFrom method template to model. --- .../navalplanner/web/orders/IOrderModel.java | 3 ++ .../navalplanner/web/orders/OrderModel.java | 37 +++++++++++++++---- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java index d0dffe255..3dd2620ee 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderModel.java @@ -33,6 +33,7 @@ import org.navalplanner.business.orders.entities.OrderLineGroup; import org.navalplanner.business.qualityforms.entities.QualityForm; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.CriterionType; +import org.navalplanner.business.templates.entities.OrderTemplate; /** * Contract for {@link OrderModel}
@@ -102,4 +103,6 @@ public interface IOrderModel { void setCodeAutogenerated(boolean codeAutogenerated) throws ConcurrentModificationException; + void prepareCreationFrom(OrderTemplate template); + } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java index bde4efbbe..2352e8905 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java @@ -63,6 +63,8 @@ import org.navalplanner.business.resources.daos.ICriterionDAO; import org.navalplanner.business.resources.daos.ICriterionTypeDAO; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.CriterionType; +import org.navalplanner.business.templates.daos.IOrderElementTemplateDAO; +import org.navalplanner.business.templates.entities.OrderTemplate; import org.navalplanner.web.orders.labels.LabelsOnConversation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; @@ -107,6 +109,9 @@ public class OrderModel implements IOrderModel { @Autowired private IOrderElementDAO orderElementDAO; + @Autowired + private IOrderElementTemplateDAO templateDAO; + @Autowired private ITaskSourceDAO taskSourceDAO; @@ -188,9 +193,7 @@ public class OrderModel implements IOrderModel { @Transactional(readOnly = true) public void initEdit(Order order) { Validate.notNull(order); - initializeCacheLabels(); - getQualityFormsOnConversation().initialize(); - loadCriterions(); + loadNeededDataForConversation(); this.order = getFromDB(order); this.orderElementTreeModel = new OrderElementTreeModel(this.order); forceLoadAdvanceAssignmentsAndMeasurements(this.order); @@ -198,6 +201,12 @@ public class OrderModel implements IOrderModel { forceLoadCalendar(this.getCalendar()); } + private void loadNeededDataForConversation() { + loadCriterions(); + initializeCacheLabels(); + getQualityFormsOnConversation().initialize(); + } + private void initializeCacheLabels() { getLabelsOnConversation().initializeLabels(); } @@ -270,18 +279,32 @@ public class OrderModel implements IOrderModel { @Override @Transactional(readOnly = true) public void prepareForCreate() throws ConcurrentModificationException { - loadCriterions(); - initializeCacheLabels(); - getQualityFormsOnConversation().initialize(); + loadNeededDataForConversation(); this.order = Order.create(); + initializeOrder(); + } + + private void initializeOrder() { this.orderElementTreeModel = new OrderElementTreeModel(this.order); this.order.setInitDate(new Date()); this.order.setCalendar(getDefaultCalendar()); - setDefaultOrderCode(); this.order.setCodeAutogenerated(true); } + @Override + @Transactional(readOnly = true) + public void prepareCreationFrom(OrderTemplate template) { + loadNeededDataForConversation(); + this.order = createOrderFrom((OrderTemplate) templateDAO + .findExistingEntity(template.getId())); + initializeOrder(); + } + + private Order createOrderFrom(OrderTemplate template) { + return template.createElement(); + } + private void setDefaultOrderCode() throws ConcurrentModificationException { String code = orderSequenceDAO.getNextOrderCode(); if (code == null) {