From 13389197d9b2d9ef8a665ce7e638db71e026224c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacobo=20Aragunde=20P=C3=A9rez?= Date: Thu, 29 Dec 2011 15:53:56 +0100 Subject: [PATCH] [Bug #1242] Return end date directly when calculating advance and percentage is 100%. In that case, no calculations are needed, and since the algorithm has some defects we avoid them. FEA: ItEr75S04BugFixing --- .../java/org/libreplan/web/planner/TaskElementAdapter.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java index 903d961ba..10e57bff5 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/TaskElementAdapter.java @@ -568,6 +568,9 @@ public class TaskElementAdapter { BigDecimal percentage = new BigDecimal(assignedEffort .divivedBy(effort).doubleValue()).setScale(2, RoundingMode.HALF_UP); + if (percentage.compareTo(BigDecimal.ONE) == 0) { + return getEndDate(); + } result = calculateLimitDateByPercentage(percentage); @@ -637,6 +640,10 @@ public class TaskElementAdapter { } private GanttDate getAdvanceEndDate(BigDecimal advancePercentage) { + if (advancePercentage.compareTo(BigDecimal.ONE) == 0) { + return getEndDate(); + } + BigDecimal hours = BigDecimal.ZERO; if (taskElement instanceof TaskGroup) {