From a2b23de923d1edb2f7cbff14a7a17f7ce2d8963b Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Sat, 1 May 2010 11:40:30 +0200 Subject: [PATCH] ItEr56S10CUConsolidacionDeAvancesItEr55S12: The advance consolidation. Adds changes to the business entities for the advances consolidation functionality. --- .../CalculatedConsolidatedValue.java | 21 ++++++++++-- .../CalculatedConsolidation.java | 33 ++++++++++++++---- .../consolidations/ConsolidatedValue.java | 14 +++++--- .../ConsolidatedValueComparator.java | 8 ++--- .../consolidations/Consolidation.java | 23 ++++++++++++- .../NonCalculatedConsolidatedValue.java | 34 +++++++++++++++++-- .../NonCalculatedConsolidation.java | 34 +++++++++++++++---- .../business/advance/entities/Advance.hbm.xml | 7 ++-- .../entities/AdvanceConsolidations.hbm.xml | 25 ++++++++++---- .../entities/ResourceAllocations.hbm.xml | 1 - .../business/planner/entities/Tasks.hbm.xml | 2 +- 11 files changed, 160 insertions(+), 42 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/CalculatedConsolidatedValue.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/CalculatedConsolidatedValue.java index 485062435..de01412b5 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/CalculatedConsolidatedValue.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/CalculatedConsolidatedValue.java @@ -20,6 +20,8 @@ package org.navalplanner.business.planner.entities.consolidations; +import java.math.BigDecimal; + import org.joda.time.LocalDate; /** @@ -28,19 +30,34 @@ import org.joda.time.LocalDate; public class CalculatedConsolidatedValue extends ConsolidatedValue { + private CalculatedConsolidation consolidation; + public static CalculatedConsolidatedValue create() { return create(new CalculatedConsolidatedValue()); } - public static CalculatedConsolidatedValue create(LocalDate date, int value) { + public static CalculatedConsolidatedValue create(LocalDate date, + BigDecimal value) { return create(new CalculatedConsolidatedValue(date, value)); } - protected CalculatedConsolidatedValue(LocalDate date, int value) { + protected CalculatedConsolidatedValue(LocalDate date, BigDecimal value) { super(date, value); } protected CalculatedConsolidatedValue() { } + public void setConsolidation(CalculatedConsolidation consolidation) { + this.consolidation = consolidation; + } + + public CalculatedConsolidation getConsolidation() { + return consolidation; + } + + @Override + public boolean isCalculated() { + return true; + } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/CalculatedConsolidation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/CalculatedConsolidation.java index 994a653b6..94bcc78f6 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/CalculatedConsolidation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/CalculatedConsolidation.java @@ -24,6 +24,7 @@ import java.util.SortedSet; import java.util.TreeSet; import org.navalplanner.business.advance.entities.IndirectAdvanceAssignment; +import org.navalplanner.business.planner.entities.Task; /** * @author Susana Montes Pedreira @@ -36,15 +37,17 @@ public class CalculatedConsolidation extends Consolidation { private IndirectAdvanceAssignment indirectAdvanceAssignment; - public static CalculatedConsolidation create( + public static CalculatedConsolidation create(Task task, IndirectAdvanceAssignment indirectAdvanceAssignment) { - return create(new CalculatedConsolidation(indirectAdvanceAssignment)); + return create(new CalculatedConsolidation(task, + indirectAdvanceAssignment)); } - public static CalculatedConsolidation create( + public static CalculatedConsolidation create(Task task, IndirectAdvanceAssignment indirectAdvanceAssignment, SortedSet consolidatedValues) { - return create(new CalculatedConsolidation(indirectAdvanceAssignment, + return create(new CalculatedConsolidation(task, + indirectAdvanceAssignment, consolidatedValues)); } @@ -52,15 +55,16 @@ public class CalculatedConsolidation extends Consolidation { } - protected CalculatedConsolidation( + protected CalculatedConsolidation(Task task, IndirectAdvanceAssignment indirectAdvanceAssignment, SortedSet consolidatedValues) { - this(indirectAdvanceAssignment); + this(task, indirectAdvanceAssignment); this.setConsolidatedValues(consolidatedValues); } - public CalculatedConsolidation( + public CalculatedConsolidation(Task task, IndirectAdvanceAssignment indirectAdvanceAssignment) { + super(task); this.indirectAdvanceAssignment = indirectAdvanceAssignment; } @@ -69,6 +73,10 @@ public class CalculatedConsolidation extends Consolidation { return new TreeSet(consolidatedValues); } + public SortedSet getCalculatedConsolidatedValues() { + return consolidatedValues; + } + public void setConsolidatedValues( SortedSet consolidatedValues) { this.consolidatedValues = consolidatedValues; @@ -83,4 +91,15 @@ public class CalculatedConsolidation extends Consolidation { return indirectAdvanceAssignment; } + public void addConsolidatedValue(CalculatedConsolidatedValue value) { + if (!consolidatedValues.contains(value)) { + value.setConsolidation(this); + this.consolidatedValues.add(value); + } + } + + @Override + public boolean isCalculated() { + return true; + } } \ No newline at end of file diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/ConsolidatedValue.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/ConsolidatedValue.java index 2bb2fcc04..9bb62a9ae 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/ConsolidatedValue.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/ConsolidatedValue.java @@ -20,6 +20,8 @@ package org.navalplanner.business.planner.entities.consolidations; +import java.math.BigDecimal; + import org.joda.time.LocalDate; import org.navalplanner.business.common.BaseEntity; @@ -27,25 +29,27 @@ import org.navalplanner.business.common.BaseEntity; * @author Susana Montes Pedreira */ -public class ConsolidatedValue extends BaseEntity { +public abstract class ConsolidatedValue extends BaseEntity { private LocalDate date; - private int value; + private BigDecimal value; + + public abstract boolean isCalculated(); protected ConsolidatedValue() { } - protected ConsolidatedValue(LocalDate date, int value) { + protected ConsolidatedValue(LocalDate date, BigDecimal value) { this.date = date; this.value = value; } - public void setValue(int value) { + public void setValue(BigDecimal value) { this.value = value; } - public int getValue() { + public BigDecimal getValue() { return value; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/ConsolidatedValueComparator.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/ConsolidatedValueComparator.java index a9bea31f1..f3fd4e057 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/ConsolidatedValueComparator.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/ConsolidatedValueComparator.java @@ -33,15 +33,15 @@ public class ConsolidatedValueComparator implements @Override public int compare(ConsolidatedValue arg0, ConsolidatedValue arg1) { - if (arg0.getDate() == arg1.getDate()) { + if (arg1.getDate() == arg0.getDate()) { return 0; } - if (arg0.getDate() == null) { + if (arg1.getDate() == null) { return -1; } - if (arg1.getDate() == null) { + if (arg0.getDate() == null) { return 1; } - return arg1.getDate().compareTo(arg0.getDate()); + return arg0.getDate().compareTo(arg1.getDate()); } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/Consolidation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/Consolidation.java index 328ff58b7..03c822d34 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/Consolidation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/Consolidation.java @@ -23,12 +23,33 @@ package org.navalplanner.business.planner.entities.consolidations; import java.util.SortedSet; import org.navalplanner.business.common.BaseEntity; +import org.navalplanner.business.planner.entities.Task; /** * @author Susana Montes Pedreira */ public abstract class Consolidation extends BaseEntity { - public abstract SortedSet getConsolidatedValues(); + public abstract SortedSet getConsolidatedValues(); + + public abstract boolean isCalculated(); + + private Task task; + + protected Consolidation() { + + } + + protected Consolidation(Task task) { + this.task = task; + } + + public void setTask(Task task) { + this.task = task; + } + + public Task getTask() { + return task; + } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/NonCalculatedConsolidatedValue.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/NonCalculatedConsolidatedValue.java index 4251e5eac..4ecfc7b71 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/NonCalculatedConsolidatedValue.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/NonCalculatedConsolidatedValue.java @@ -20,6 +20,8 @@ package org.navalplanner.business.planner.entities.consolidations; +import java.math.BigDecimal; + import org.joda.time.LocalDate; import org.navalplanner.business.advance.entities.AdvanceMeasurement; @@ -29,6 +31,8 @@ import org.navalplanner.business.advance.entities.AdvanceMeasurement; public class NonCalculatedConsolidatedValue extends ConsolidatedValue { + private NonCalculatedConsolidation consolidation; + private AdvanceMeasurement advanceMeasurement; public static NonCalculatedConsolidatedValue create() { @@ -36,15 +40,27 @@ public class NonCalculatedConsolidatedValue extends ConsolidatedValue { } public static NonCalculatedConsolidatedValue create(LocalDate date, - int value) { + BigDecimal value) { return create(new NonCalculatedConsolidatedValue(date, value)); } - protected NonCalculatedConsolidatedValue(LocalDate date, int value) { + public static NonCalculatedConsolidatedValue create(LocalDate date, + BigDecimal value, AdvanceMeasurement advanceMeasurement) { + return create(new NonCalculatedConsolidatedValue(date, value, + advanceMeasurement)); + } + + protected NonCalculatedConsolidatedValue(LocalDate date, BigDecimal value, + AdvanceMeasurement advanceMeasurement) { + this(date, value); + this.advanceMeasurement = advanceMeasurement; + } + + protected NonCalculatedConsolidatedValue(LocalDate date, BigDecimal value) { super(date, value); } - public NonCalculatedConsolidatedValue() { + protected NonCalculatedConsolidatedValue() { } public void setAdvanceMeasurement(AdvanceMeasurement advanceMeasurement) { @@ -55,4 +71,16 @@ public class NonCalculatedConsolidatedValue extends ConsolidatedValue { return advanceMeasurement; } + public void setConsolidation(NonCalculatedConsolidation consolidation) { + this.consolidation = consolidation; + } + + public NonCalculatedConsolidation getConsolidation() { + return consolidation; + } + + @Override + public boolean isCalculated() { + return false; + } } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/NonCalculatedConsolidation.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/NonCalculatedConsolidation.java index 35b3c7317..c143d6b3e 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/NonCalculatedConsolidation.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/consolidations/NonCalculatedConsolidation.java @@ -24,6 +24,7 @@ import java.util.SortedSet; import java.util.TreeSet; import org.navalplanner.business.advance.entities.DirectAdvanceAssignment; +import org.navalplanner.business.planner.entities.Task; /** @@ -37,15 +38,17 @@ public class NonCalculatedConsolidation extends Consolidation { private DirectAdvanceAssignment directAdvanceAssignment; - public static NonCalculatedConsolidation create( + public static NonCalculatedConsolidation create(Task task, DirectAdvanceAssignment directAdvanceAssignment) { - return create(new NonCalculatedConsolidation(directAdvanceAssignment)); + return create(new NonCalculatedConsolidation(task, + directAdvanceAssignment)); } - public static NonCalculatedConsolidation create( + public static NonCalculatedConsolidation create(Task task, DirectAdvanceAssignment directAdvanceAssignment, SortedSet consolidatedValues) { - return create(new NonCalculatedConsolidation(directAdvanceAssignment, + return create(new NonCalculatedConsolidation(task, + directAdvanceAssignment, consolidatedValues)); } @@ -53,15 +56,16 @@ public class NonCalculatedConsolidation extends Consolidation { } - protected NonCalculatedConsolidation( + protected NonCalculatedConsolidation(Task task, DirectAdvanceAssignment directAdvanceAssignment, SortedSet consolidatedValues) { - this(directAdvanceAssignment); + this(task, directAdvanceAssignment); this.setConsolidatedValues(consolidatedValues); } - public NonCalculatedConsolidation( + public NonCalculatedConsolidation(Task task, DirectAdvanceAssignment directAdvanceAssignment) { + super(task); this.directAdvanceAssignment = directAdvanceAssignment; } @@ -70,6 +74,10 @@ public class NonCalculatedConsolidation extends Consolidation { return new TreeSet(consolidatedValues); } + public SortedSet getNonCalculatedConsolidatedValues() { + return consolidatedValues; + } + public void setConsolidatedValues( SortedSet consolidatedValues) { this.consolidatedValues = consolidatedValues; @@ -84,4 +92,16 @@ public class NonCalculatedConsolidation extends Consolidation { return directAdvanceAssignment; } + public void addConsolidatedValue(NonCalculatedConsolidatedValue value) { + if (!consolidatedValues.contains(value)) { + value.setConsolidation(this); + this.consolidatedValues.add(value); + } + } + + @Override + public boolean isCalculated() { + return false; + } + } diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/advance/entities/Advance.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/advance/entities/Advance.hbm.xml index a9fd03e98..be7423354 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/advance/entities/Advance.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/advance/entities/Advance.hbm.xml @@ -54,9 +54,8 @@ - + access="field"> + @@ -71,7 +70,7 @@ cascade="none" inverse="true" access="field"> - + diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/AdvanceConsolidations.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/AdvanceConsolidations.hbm.xml index e32a485ad..488f2422e 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/AdvanceConsolidations.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/AdvanceConsolidations.hbm.xml @@ -15,30 +15,37 @@ + + - - 100 + + task + + - - + @@ -47,9 +54,13 @@ - + - diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml index 0eab67ee1..cae5cf815 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/ResourceAllocations.hbm.xml @@ -108,7 +108,6 @@ - diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/Tasks.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/Tasks.hbm.xml index 4d31c05b0..b9054c087 100644 --- a/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/Tasks.hbm.xml +++ b/navalplanner-business/src/main/resources/org/navalplanner/business/planner/entities/Tasks.hbm.xml @@ -49,7 +49,7 @@ + cascade="all"/>