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.
This commit is contained in:
Manuel Rego Casasnovas 2010-06-07 13:19:28 +02:00 committed by Javier Moran Rua
parent 988bdc55bb
commit 2db91e648c
2 changed files with 15 additions and 18 deletions

View file

@ -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() {

View file

@ -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() {