Change the way to update advances in parent elements.

Before this where managed when saving the order in one case
(OrderModel) and when a progress was modified in another case
(AdvanceAssignmentPlanningModel).

Now, it's directly done in the entity OrderElement and the method is
called when a progress is modified (from AdvanceAssignmentPlanningModel,
ManageOrderElementAdvancesModel and ReportAdvancesServiceREST).

FEA: ItEr75S04BugFixing
This commit is contained in:
Manuel Rego Casasnovas 2011-07-22 08:53:13 +02:00
parent adf65e08bf
commit a91f9108ca
5 changed files with 6 additions and 24 deletions

View file

@ -1333,6 +1333,9 @@ public abstract class OrderElement extends IntegrationEntity implements
advancePercentage);
}
}
if (parent != null) {
parent.updateAdvancePercentageTaskElement();
}
}
public static void checkConstraintOrderUniqueCode(OrderElement order) {

View file

@ -472,6 +472,7 @@ public class ManageOrderElementAdvancesModel implements
DuplicateValueTrueReportGlobalAdvanceException {
orderElementDAO.checkVersion(orderElement);
reattachmentOrderElement();
orderElement.updateAdvancePercentageTaskElement();
validateBasicData();
cancelOperation.clear();
}

View file

@ -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

View file

@ -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();
}
}

View file

@ -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();
}
}