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