diff --git a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/Order.java b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/Order.java index 5fa6f66fa..7a5c69fe2 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/orders/entities/Order.java +++ b/libreplan-business/src/main/java/org/libreplan/business/orders/entities/Order.java @@ -421,32 +421,35 @@ public class Order extends OrderLineGroup implements Comparable { } public void generateOrderElementCodes(int numberOfDigits) { - for (OrderElement orderElement : this.getAllOrderElements()) { - if ((orderElement.getCode() == null) - || (orderElement.getCode().isEmpty()) - || (!orderElement.getCode().startsWith(this.getCode()))) { - this.incrementLastOrderElementSequenceCode(); - String orderElementCode = EntitySequence.formatValue( - numberOfDigits, this.getLastOrderElementSequenceCode()); - orderElement.setCode(this.getCode() - + EntitySequence.CODE_SEPARATOR_CHILDREN - + orderElementCode); - } + if (isCodeAutogenerated()) { + for (OrderElement orderElement : this.getAllOrderElements()) { + if ((orderElement.getCode() == null) + || (orderElement.getCode().isEmpty()) + || (!orderElement.getCode().startsWith(this.getCode()))) { + this.incrementLastOrderElementSequenceCode(); + String orderElementCode = EntitySequence.formatValue( + numberOfDigits, + this.getLastOrderElementSequenceCode()); + orderElement.setCode(this.getCode() + + EntitySequence.CODE_SEPARATOR_CHILDREN + + orderElementCode); + } - if (orderElement instanceof OrderLine) { - for (HoursGroup hoursGroup : orderElement.getHoursGroups()) { - if ((hoursGroup.getCode() == null) - || (hoursGroup.getCode().isEmpty()) - || (!hoursGroup.getCode().startsWith( - orderElement.getCode()))) { - ((OrderLine) orderElement) - .incrementLastHoursGroupSequenceCode(); - String hoursGroupCode = EntitySequence.formatValue( - numberOfDigits, ((OrderLine) orderElement) - .getLastHoursGroupSequenceCode()); - hoursGroup.setCode(orderElement.getCode() - + EntitySequence.CODE_SEPARATOR_CHILDREN - + hoursGroupCode); + if (orderElement instanceof OrderLine) { + for (HoursGroup hoursGroup : orderElement.getHoursGroups()) { + if ((hoursGroup.getCode() == null) + || (hoursGroup.getCode().isEmpty()) + || (!hoursGroup.getCode().startsWith( + orderElement.getCode()))) { + ((OrderLine) orderElement) + .incrementLastHoursGroupSequenceCode(); + String hoursGroupCode = EntitySequence.formatValue( + numberOfDigits, ((OrderLine) orderElement) + .getLastHoursGroupSequenceCode()); + hoursGroup.setCode(orderElement.getCode() + + EntitySequence.CODE_SEPARATOR_CHILDREN + + hoursGroupCode); + } } } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java index 70d00331b..64c73aa6f 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/SaveCommandBuilder.java @@ -332,9 +332,7 @@ public class SaveCommandBuilder { private void doTheSaving() { Order order = state.getOrder(); - if (order.isCodeAutogenerated()) { - generateOrderElementCodes(order); - } + generateOrderElementCodes(order); createAdvancePercentagesIfRequired(order); calculateAndSetTotalHours(order); checkConstraintOrderUniqueCode(order);