From 54835bce695118d907aaec70b0d5bae89b923ad4 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 11 Jul 2012 11:21:19 +0200 Subject: [PATCH] Fix problem with EffortDuration in CalculateFinishedTasksEstimationDeviationVisitor FEA: ItEr76S04BugFixing --- ...teFinishedTasksEstimationDeviationVisitor.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/visitors/CalculateFinishedTasksEstimationDeviationVisitor.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/visitors/CalculateFinishedTasksEstimationDeviationVisitor.java index 9ae19116b..9e19ee7b5 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/visitors/CalculateFinishedTasksEstimationDeviationVisitor.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/visitors/CalculateFinishedTasksEstimationDeviationVisitor.java @@ -64,9 +64,18 @@ public class CalculateFinishedTasksEstimationDeviationVisitor extends TaskElemen EffortDuration spentEffort = sumChargedEffort == null ? EffortDuration .zero() : sumChargedEffort.getTotalChargedEffort(); if (!spentEffort.isZero()) { - deviations.add(spentEffort.minus(effort) - .dividedByAndResultAsBigDecimal(effort) - .doubleValue() * 100); + double deviation; + if (spentEffort.compareTo(effort) >= 0) { + deviation = spentEffort.minus(effort) + .dividedByAndResultAsBigDecimal(effort) + .doubleValue(); + } else { + deviation = -effort.minus(spentEffort) + .dividedByAndResultAsBigDecimal(effort) + .doubleValue(); + + } + deviations.add(deviation * 100); } } }