From ceb76cf283befd5ac89a31d11a2109bb9d40439d Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 4 May 2011 09:09:05 +0200 Subject: [PATCH] Fixed issues in advances related to previous tests. FEA: ItEr74S07WBSTreeRefactoring --- .../orders/entities/OrderElement.java | 12 ++++++++++ .../orders/entities/OrderLineGroup.java | 24 ++++++------------- 2 files changed, 19 insertions(+), 17 deletions(-) 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 f03ce6971..f6d22011c 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 @@ -1376,4 +1376,16 @@ public abstract class OrderElement extends IntegrationEntity implements return true; } + public void removeDirectAdvancesInList( + Set directAdvanceAssignments) { + for (DirectAdvanceAssignment each : directAdvanceAssignments) { + removeAdvanceAssignment(getAdvanceAssignmentByType(each + .getAdvanceType())); + } + + for (OrderElement each : getChildren()) { + each.removeDirectAdvancesInList(directAdvanceAssignments); + } + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java index 288e3f97c..f9a684611 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java @@ -244,25 +244,15 @@ public class OrderLineGroup extends OrderElement implements } private void addIndirectAdvanceAssignments(OrderElement orderElement) { - Set toRemove = new HashSet(); + orderElement.removeDirectAdvancesInList(directAdvanceAssignments); for (DirectAdvanceAssignment directAdvanceAssignment : orderElement.directAdvanceAssignments) { - if (getDirectAdvanceAssignmentByType(directAdvanceAssignment - .getAdvanceType()) != null) { - toRemove.add(directAdvanceAssignment); - } else { - IndirectAdvanceAssignment indirectAdvanceAssignment = IndirectAdvanceAssignment - .create(); - indirectAdvanceAssignment - .setAdvanceType(directAdvanceAssignment - .getAdvanceType()); - indirectAdvanceAssignment.setOrderElement(this); - this.addIndirectAdvanceAssignment(indirectAdvanceAssignment); - } - } - - for (AdvanceAssignment each : toRemove) { - orderElement.removeAdvanceAssignment(each); + IndirectAdvanceAssignment indirectAdvanceAssignment = IndirectAdvanceAssignment + .create(); + indirectAdvanceAssignment.setAdvanceType(directAdvanceAssignment + .getAdvanceType()); + indirectAdvanceAssignment.setOrderElement(this); + this.addIndirectAdvanceAssignment(indirectAdvanceAssignment); } if (orderElement instanceof OrderLineGroup) {