From 6e680720e29615e4080cec46def5484813c9f75f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 20 Jan 2010 18:01:51 +0100 Subject: [PATCH] ItEr44S10CUGravacionModelosUnidadesTraballoItEr43S12: Copying template materials to order element --- .../business/materials/entities/MaterialAssignment.java | 8 ++++++++ .../materials/entities/MaterialAssignmentTemplate.java | 5 +++++ .../business/templates/entities/OrderElementTemplate.java | 8 ++++++++ 3 files changed, 21 insertions(+) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignment.java b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignment.java index e2eb42c14..d8ccb0b41 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignment.java @@ -67,6 +67,14 @@ public class MaterialAssignment extends BaseEntity implements Comparable { return result; } + public static MaterialAssignment createFrom(MaterialInfo materialInfo, + OrderElement element) { + MaterialAssignment result = create(); + result.materialInfo = materialInfo.copy(); + result.orderElement = element; + return result; + } + @Valid public MaterialInfo getMaterialInfo() { if (materialInfo == null) { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignmentTemplate.java b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignmentTemplate.java index ef5f88fdf..93f131523 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignmentTemplate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignmentTemplate.java @@ -22,6 +22,7 @@ package org.navalplanner.business.materials.entities; import java.math.BigDecimal; import org.navalplanner.business.common.BaseEntity; +import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.templates.entities.OrderElementTemplate; /** @@ -119,4 +120,8 @@ public class MaterialAssignmentTemplate extends BaseEntity implements return getMaterial().compareTo(o.getMaterial()); } + public MaterialAssignment createAssignment(OrderElement element) { + return MaterialAssignment.createFrom(materialInfo, element); + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/templates/entities/OrderElementTemplate.java b/navalplanner-business/src/main/java/org/navalplanner/business/templates/entities/OrderElementTemplate.java index 1fb4e0e27..eb03385a1 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/templates/entities/OrderElementTemplate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/templates/entities/OrderElementTemplate.java @@ -127,6 +127,7 @@ public abstract class OrderElementTemplate extends BaseEntity implements protected T setupElementParts(T orderElement) { setupInfoComponent(orderElement); setupDates(orderElement); + setupMaterialAssignments(orderElement); return orderElement; } @@ -153,6 +154,13 @@ public abstract class OrderElementTemplate extends BaseEntity implements return localDate.plusDays(days).toDateTimeAtStartOfDay().toDate(); } + private void setupMaterialAssignments(OrderElement orderElement) { + for (MaterialAssignmentTemplate each : materialAssignments) { + orderElement.addMaterialAssignment(each + .createAssignment(orderElement)); + } + } + public abstract OrderElement createElement(); public abstract OrderElement createElement(OrderLineGroup parent);