From 2db91e648c0415b37db3435729f7b5ea47c53a66 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 7 Jun 2010 13:19:28 +0200 Subject: [PATCH] ItEr59S04ValidacionEProbasFuncionaisItEr58S04: Fixed bug with advance calculations. When you have just created and order and set advances before save it, advances were not calculated. Moved advance calculation to model at it should be at the beginning. --- .../web/orders/OrderCRUDController.java | 18 ------------------ .../navalplanner/web/orders/OrderModel.java | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java index f27ca4a18..03d5ce8c8 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderCRUDController.java @@ -22,7 +22,6 @@ package org.navalplanner.web.orders; import static org.navalplanner.web.I18nHelper._; -import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ConcurrentModificationException; import java.util.Date; @@ -42,7 +41,6 @@ import org.navalplanner.business.externalcompanies.entities.ExternalCompany; import org.navalplanner.business.orders.entities.HoursGroup; import org.navalplanner.business.orders.entities.Order; import org.navalplanner.business.orders.entities.OrderElement; -import org.navalplanner.business.orders.entities.OrderLineGroup; import org.navalplanner.business.orders.entities.OrderStatusEnum; import org.navalplanner.business.templates.entities.OrderTemplate; import org.navalplanner.business.users.entities.UserRole; @@ -570,12 +568,6 @@ public class OrderCRUDController extends GenericForwardComposer { createPercentageAdvances(); - OrderLineGroup order = orderModel.getOrder(); - calculateAdvancePercentage(order); - for (OrderElement orderElement : order.getAllChildren()) { - calculateAdvancePercentage(orderElement); - } - // come back to the default tab. if (getCurrentTab() != null) { selectTab(getCurrentTab().getId()); @@ -599,16 +591,6 @@ public class OrderCRUDController extends GenericForwardComposer { return false; } - private void calculateAdvancePercentage(OrderElement orderElement) { - BigDecimal advancePercentage = orderElement.getAdvancePercentage(); - if (orderElement.getTaskSource() != null) { - if (orderElement.getTaskSource().getTask() != null) { - orderElement.getTaskSource().getTask().setAdvancePercentage( - advancePercentage); - } - } - } - Tab tabGeneralData; private void createPercentageAdvances() { 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 1eaf0bf73..cec083f0f 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 @@ -430,6 +430,21 @@ public class OrderModel implements IOrderModel { reattachCurrentTaskSources(); deleteOrderElementWithoutParent(); synchronizeWithSchedule(order); + + calculateAdvancePercentage(order); + for (OrderElement orderElement : order.getAllChildren()) { + calculateAdvancePercentage(orderElement); + } + } + + private void calculateAdvancePercentage(OrderElement orderElement) { + BigDecimal advancePercentage = orderElement.getAdvancePercentage(); + if (orderElement.getTaskSource() != null) { + if (orderElement.getTaskSource().getTask() != null) { + orderElement.getTaskSource().getTask().setAdvancePercentage( + advancePercentage); + } + } } private void calculateAndSetTotalHours() {