From 7c24830ef6d0e0fc3d6f4901622f3a89bf820ab6 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 5 Nov 2012 15:53:35 +0100 Subject: [PATCH] Convert parent in leaf if the element removed was the only child FEA: ItEr77S13AllowDeleteOrderElements --- .../orders/impl/OrderElementServiceREST.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/libreplan-webapp/src/main/java/org/libreplan/ws/orders/impl/OrderElementServiceREST.java b/libreplan-webapp/src/main/java/org/libreplan/ws/orders/impl/OrderElementServiceREST.java index 65aa42c3b..aaf1d487c 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/ws/orders/impl/OrderElementServiceREST.java +++ b/libreplan-webapp/src/main/java/org/libreplan/ws/orders/impl/OrderElementServiceREST.java @@ -21,6 +21,8 @@ package org.libreplan.ws.orders.impl; +import java.util.UUID; + import javax.ws.rs.Consumes; import javax.ws.rs.DELETE; import javax.ws.rs.GET; @@ -31,7 +33,9 @@ import javax.ws.rs.Produces; import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; +import org.libreplan.business.common.daos.IEntitySequenceDAO; import org.libreplan.business.common.daos.IIntegrationEntityDAO; +import org.libreplan.business.common.entities.EntityNameEnum; import org.libreplan.business.common.exceptions.InstanceNotFoundException; import org.libreplan.business.common.exceptions.ValidationException; import org.libreplan.business.orders.daos.IOrderDAO; @@ -73,6 +77,9 @@ public class OrderElementServiceREST extends @Autowired private IScenarioManager scenarioManager; + @Autowired + private IEntitySequenceDAO entitySequenceDAO; + @Override @GET @Transactional(readOnly = true) @@ -139,6 +146,18 @@ public class OrderElementServiceREST extends OrderLineGroup parent = orderElement.getParent(); parent.remove(orderElement); + if (!parent.isOrder() && parent.getChildren().isEmpty()) { + OrderElement newElement = parent.toLeaf(); + if (!order.isCodeAutogenerated()) { + newElement.setCode(UUID.randomUUID().toString()); + } + parent.getParent().replace(parent, newElement); + if (order.isCodeAutogenerated()) { + order.generateOrderElementCodes(entitySequenceDAO + .getNumberOfDigitsCode(EntityNameEnum.ORDER)); + } + } + orderDAO.save(order); }