From efa5cafb82124a623e1061ec46184c30eaeee180 Mon Sep 17 00:00:00 2001 From: Diego Pino Garcia Date: Sat, 7 May 2011 22:27:05 +0200 Subject: [PATCH] Added method isConsolidated() Advance function (stretches, interpolated) cannot be applied on consolidated intervals. FEA: ItEr74S04BugFixing --- .../business/planner/entities/Stretch.java | 15 +++++++++++++-- .../planner/entities/StretchesFunction.java | 18 +++++++++--------- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Stretch.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Stretch.java index b7771c398..3dafe63e2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Stretch.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Stretch.java @@ -107,10 +107,12 @@ public class Stretch { @NotNull private BigDecimal amountWorkPercentage = BigDecimal.ZERO; - // Trasient value, a stretch is readOnly if it's a consolidated stretch - // or if it is a stretch user cannot edit + // Transient value, a stretch is readOnly if it is a stretch user cannot edit private boolean readOnly = false; + // Transient value, a stretch is consolidated if it's a consolidated stretch + private boolean consolidated = false; + private Stretch(LocalDate date, BigDecimal lengthPercent, BigDecimal progressPercent) { this.date = date; this.lengthPercentage = lengthPercent; @@ -181,6 +183,14 @@ public class Stretch { readOnly = value; } + public boolean isConsolidated() { + return consolidated; + } + + public void consolidated(boolean value) { + consolidated = value; + } + } /** @@ -210,6 +220,7 @@ class ConsolidatedStretch { Task task) { Stretch result = Stretch.create(date, task, advancePercentage); result.readOnly(true); + result.consolidated(true); return result; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunction.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunction.java index f4cf31e28..ecf317430 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunction.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/StretchesFunction.java @@ -56,12 +56,12 @@ public class StretchesFunction extends AssignmentFunction { private final BigDecimal loadProportion; - private boolean readOnly = false; + private boolean consolidated = false; public static Interval create(BigDecimal loadProportion, LocalDate start, - LocalDate end, boolean readOnly) { + LocalDate end, boolean consolidated) { Interval result = create(loadProportion, start, end); - result.readOnly(readOnly); + result.consolidated(consolidated); return result; } @@ -133,7 +133,7 @@ public class StretchesFunction extends AssignmentFunction { private void apply(ResourceAllocation resourceAllocation, LocalDate startInclusive, LocalDate taskEnd, int intervalHours) { - Validate.isTrue(!isReadOnly()); + Validate.isTrue(!isConsolidated()); // End has to be exclusive on last Stretch LocalDate endDate = getEnd(); @@ -187,12 +187,12 @@ public class StretchesFunction extends AssignmentFunction { return String.format("[%s, %s]: %s ", start, end, loadProportion); } - public boolean isReadOnly() { - return readOnly; + public void consolidated(boolean value) { + consolidated = value; } - public void readOnly(boolean value) { - readOnly = value; + public boolean isConsolidated() { + return consolidated; } } @@ -232,7 +232,7 @@ public class StretchesFunction extends AssignmentFunction { loadedProportion = BigDecimal.ZERO; } result.add(Interval.create(loadedProportion, previous, - stretchDate, each.isReadOnly())); + stretchDate, each.isConsolidated())); sumOfProportions = each.getAmountWorkPercentage(); previous = stretchDate; }