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 f6ca81920..05092d6f8 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 @@ -1333,6 +1333,9 @@ public abstract class OrderElement extends IntegrationEntity implements advancePercentage); } } + if (parent != null) { + parent.updateAdvancePercentageTaskElement(); + } } public static void checkConstraintOrderUniqueCode(OrderElement order) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesModel.java index 492b2e584..41cf87c63 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/ManageOrderElementAdvancesModel.java @@ -472,6 +472,7 @@ public class ManageOrderElementAdvancesModel implements DuplicateValueTrueReportGlobalAdvanceException { orderElementDAO.checkVersion(orderElement); reattachmentOrderElement(); + orderElement.updateAdvancePercentageTaskElement(); validateBasicData(); cancelOperation.clear(); } 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 f94f2bd1a..32602c80a 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 @@ -574,21 +574,9 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel { order.writeSchedulingDataChanges(); } saveDerivedScenarios(); - calculateAdvancePercentageIncludingChildren(order); deleteOrderElementWithoutParent(); } - private void calculateAdvancePercentageIncludingChildren(OrderElement order) { - calculateAdvancePercentage(order); - for (OrderElement orderElement : order.getAllChildren()) { - calculateAdvancePercentage(orderElement); - } - } - - private void calculateAdvancePercentage(OrderElement orderElement) { - orderElement.updateAdvancePercentageTaskElement(); - } - private void createAndSaveNewOrderVersion(Scenario currentScenario, OrderVersion newOrderVersion) { OrderVersion previousOrderVersion = currentScenario diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/advances/AdvanceAssignmentPlanningModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/advances/AdvanceAssignmentPlanningModel.java index a77093273..14b778fae 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/advances/AdvanceAssignmentPlanningModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/advances/AdvanceAssignmentPlanningModel.java @@ -70,12 +70,7 @@ public class AdvanceAssignmentPlanningModel implements @Override public void accept() { - calculateAdvancePercentage(getOrderElement()); - OrderElement parent = getOrderElement().getParent(); - while (parent != null) { - calculateAdvancePercentage(parent); - parent = parent.getParent(); - } + getOrderElement().updateAdvancePercentageTaskElement(); } @Override @@ -154,8 +149,4 @@ public class AdvanceAssignmentPlanningModel implements return orderElement; } - private void calculateAdvancePercentage(OrderElement orderElement) { - orderElement.updateAdvancePercentageTaskElement(); - } - } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/ws/subcontract/impl/ReportAdvancesServiceREST.java b/navalplanner-webapp/src/main/java/org/navalplanner/ws/subcontract/impl/ReportAdvancesServiceREST.java index d0e6ca90e..d056c020f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/ws/subcontract/impl/ReportAdvancesServiceREST.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/ws/subcontract/impl/ReportAdvancesServiceREST.java @@ -214,12 +214,11 @@ public class ReportAdvancesServiceREST implements IReportAdvancesService { private void updateAdvancePercentage(OrderVersion orderVersion, OrderElement orderElement) { orderElement.useSchedulingDataFor(orderVersion); - orderElement.updateAdvancePercentageTaskElement(); OrderElement parent = orderElement.getParent(); while (parent != null) { parent.useSchedulingDataFor(orderVersion); - parent.updateAdvancePercentageTaskElement(); parent = parent.getParent(); } + orderElement.updateAdvancePercentageTaskElement(); } }