From 37b801ce12546dbb4c8819b0538284a4eac860f0 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 3 Mar 2010 16:12:49 +0100 Subject: [PATCH] ItEr49S04ValidacionEProbasFuncionaisItEr48S04: [Bug #351] Fixed bug. Using order element code for hours group instead of INITIAL_HOURS_GROUP_CODE. --- .../business/orders/entities/HoursGroup.java | 1 + .../orders/entities/HoursGroupHandler.java | 1 - .../business/orders/entities/OrderElement.java | 3 +++ .../business/orders/entities/OrderLine.java | 17 ++++++++++++++--- .../test/ws/orders/OrderElementServiceTest.java | 4 ++-- .../subcontract/ReportAdvancesServiceTest.java | 3 +-- 6 files changed, 21 insertions(+), 8 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java index bfa130344..bb28471bf 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroup.java @@ -157,6 +157,7 @@ public class HoursGroup extends BaseEntity implements Cloneable, private HoursGroup(OrderLine parentOrderLine) { this.parentOrderLine = parentOrderLine; + this.code = parentOrderLine.getCode(); this.setOrderLineTemplate(null); } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroupHandler.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroupHandler.java index b3efcb27e..aad57a77a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroupHandler.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/HoursGroupHandler.java @@ -263,7 +263,6 @@ public abstract class HoursGroupHandler implements IHoursGroupHandler { HoursGroup hoursGroup = createHoursGroup(orderLine); hoursGroup.setWorkingHours(workHours); hoursGroup.setPercentage((new BigDecimal(1).setScale(2))); - hoursGroup.setCode(OrderLine.INITIAL_HOURS_GROUP_CODE); addHoursGroup(orderLine, hoursGroup); } else { 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 b27e9305c..6b4373c97 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 @@ -707,6 +707,9 @@ public abstract class OrderElement extends BaseEntity implements } public Order getOrder() { + if (parent == null) { + return null; + } return parent.getOrder(); } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java index 029a098fa..189f99251 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java @@ -42,8 +42,6 @@ import org.navalplanner.business.templates.entities.OrderLineTemplate; public class OrderLine extends OrderElement { - public static final String INITIAL_HOURS_GROUP_CODE = "HOURS-GROUP-CODE"; - private HoursGroupOrderLineHandler hoursGroupOrderLineHandler = HoursGroupOrderLineHandler .getInstance(); @@ -57,7 +55,6 @@ public class OrderLine extends OrderElement { OrderLine result = create(); HoursGroup hoursGroup = HoursGroup.create(result); result.addHoursGroup(hoursGroup); - hoursGroup.setCode(INITIAL_HOURS_GROUP_CODE); hoursGroup.setFixedPercentage(false); hoursGroup.setPercentage(new BigDecimal(1)); hoursGroup.setWorkingHours(hours); @@ -335,4 +332,18 @@ public class OrderLine extends OrderElement { return getAllDirectAdvanceAssignments(advanceType); } + @Override + public void setCode(String code) { + super.setCode(code); + + Order order = getOrder(); + if ((order != null) && (!order.isCodeAutogenerated())) { + for (HoursGroup hoursGroup : getHoursGroups()) { + if (hoursGroup.getCode() == null) { + hoursGroup.setCode(code); + } + } + } + } + } diff --git a/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/orders/OrderElementServiceTest.java b/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/orders/OrderElementServiceTest.java index 3a43783e5..04f026248 100644 --- a/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/orders/OrderElementServiceTest.java +++ b/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/orders/OrderElementServiceTest.java @@ -271,8 +271,8 @@ public class OrderElementServiceTest { List constraintViolations = instanceConstraintViolationsList .get(0).constraintViolations; - // Mandatory fields: code, name. - assertThat(constraintViolations.size(), equalTo(2)); + // Mandatory fields: code, name, hours group code. + assertThat(constraintViolations.size(), equalTo(3)); assertThat(orderDAO.getOrders().size(), equalTo(previous)); } diff --git a/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/subcontract/ReportAdvancesServiceTest.java b/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/subcontract/ReportAdvancesServiceTest.java index fc87edc6e..26a795093 100644 --- a/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/subcontract/ReportAdvancesServiceTest.java +++ b/navalplanner-webapp/src/test/java/org/navalplanner/web/test/ws/subcontract/ReportAdvancesServiceTest.java @@ -176,11 +176,10 @@ public class ReportAdvancesServiceTest { OrderLine orderLine = OrderLine .createOrderLineWithUnfixedPercentage(1000); + order.add(orderLine); orderLine.setCode(UUID.randomUUID().toString()); orderLine.setName("Order line name"); - order.add(orderLine); - orderDAO.save(order); return order;