Fixed issues in advances related to previous tests.

FEA: ItEr74S07WBSTreeRefactoring
This commit is contained in:
Manuel Rego Casasnovas 2011-05-04 09:09:05 +02:00
parent 96f2dc841f
commit ceb76cf283
2 changed files with 19 additions and 17 deletions

View file

@ -1376,4 +1376,16 @@ public abstract class OrderElement extends IntegrationEntity implements
return true;
}
public void removeDirectAdvancesInList(
Set<DirectAdvanceAssignment> directAdvanceAssignments) {
for (DirectAdvanceAssignment each : directAdvanceAssignments) {
removeAdvanceAssignment(getAdvanceAssignmentByType(each
.getAdvanceType()));
}
for (OrderElement each : getChildren()) {
each.removeDirectAdvancesInList(directAdvanceAssignments);
}
}
}

View file

@ -244,25 +244,15 @@ public class OrderLineGroup extends OrderElement implements
}
private void addIndirectAdvanceAssignments(OrderElement orderElement) {
Set<AdvanceAssignment> toRemove = new HashSet<AdvanceAssignment>();
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) {