ItEr59S04ValidacionEProbasFuncionaisItEr58S04: Fixing Bug.

fixes the division by zero in the method mergeAdvanceMeasurements().
This commit is contained in:
Susana Montes Pedreira 2010-06-14 13:11:47 +02:00 committed by Javier Moran Rua
parent 9547736896
commit 1dfd0c3963

View file

@ -539,8 +539,7 @@ public class OrderLineGroup extends OrderElement implements
BigDecimal orderElementHours = new BigDecimal(next1
.getAdvanceAssignment().getOrderElement()
.getWorkHours());
add = add.multiply(orderElementHours).divide(totalHours,
RoundingMode.DOWN);
add = addMeasure(add, totalHours, orderElementHours);
}
if (iterator1.hasNext()) {
@ -558,8 +557,7 @@ public class OrderLineGroup extends OrderElement implements
BigDecimal orderElementHours = new BigDecimal(next2
.getAdvanceAssignment().getOrderElement()
.getWorkHours());
add = add.multiply(orderElementHours).divide(totalHours,
RoundingMode.DOWN);
add = addMeasure(add, totalHours, orderElementHours);
}
if (iterator2.hasNext()) {
@ -581,15 +579,12 @@ public class OrderLineGroup extends OrderElement implements
BigDecimal orderElementHours1 = new BigDecimal(next1
.getAdvanceAssignment().getOrderElement()
.getWorkHours());
add1 = add1.multiply(orderElementHours1).divide(totalHours,
RoundingMode.DOWN);
add1 = addMeasure(add1, totalHours, orderElementHours1);
BigDecimal orderElementHours2 = new BigDecimal(next2
.getAdvanceAssignment().getOrderElement()
.getWorkHours());
add2 = add2.multiply(orderElementHours2).divide(totalHours,
RoundingMode.DOWN);
add2 = addMeasure(add2, totalHours, orderElementHours2);
add = add1.add(add2);
}
@ -624,8 +619,7 @@ public class OrderLineGroup extends OrderElement implements
BigDecimal orderElementHours = new BigDecimal(next1
.getAdvanceAssignment().getOrderElement()
.getWorkHours());
add = add.multiply(orderElementHours).divide(totalHours,
RoundingMode.DOWN);
add = addMeasure(add, totalHours, orderElementHours);
}
if (iterator1.hasNext()) {
@ -653,8 +647,7 @@ public class OrderLineGroup extends OrderElement implements
BigDecimal orderElementHours = new BigDecimal(next2
.getAdvanceAssignment().getOrderElement()
.getWorkHours());
add = add.multiply(orderElementHours).divide(totalHours,
RoundingMode.DOWN);
add = addMeasure(add, totalHours, orderElementHours);
}
if (iterator2.hasNext()) {
@ -674,6 +667,17 @@ public class OrderLineGroup extends OrderElement implements
}
private BigDecimal addMeasure(BigDecimal add, BigDecimal totalHours,
BigDecimal orderElementHours) {
if ((totalHours != null) && (totalHours.compareTo(BigDecimal.ZERO) > 0)) {
add = add.multiply(orderElementHours).divide(totalHours,
RoundingMode.DOWN);
} else {
add = add.multiply(orderElementHours);
}
return add;
}
private Date getGreatestDate(Date communicationDate, Date communicationDate2) {
if ((communicationDate == null) || (communicationDate2 == null)) {
return null;