ItEr56S10CUConsolidacionDeAvancesItEr55S12: The advance consolidation.
Adds changes to the business entities for the advances consolidation functionality.
This commit is contained in:
parent
3ac418c1d5
commit
a2b23de923
11 changed files with 160 additions and 42 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 <smontes@wirelessgalicia.com>
|
||||
|
|
@ -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<CalculatedConsolidatedValue> 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<CalculatedConsolidatedValue> 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<ConsolidatedValue>(consolidatedValues);
|
||||
}
|
||||
|
||||
public SortedSet<CalculatedConsolidatedValue> getCalculatedConsolidatedValues() {
|
||||
return consolidatedValues;
|
||||
}
|
||||
|
||||
public void setConsolidatedValues(
|
||||
SortedSet<CalculatedConsolidatedValue> 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -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 <smontes@wirelessgalicia.com>
|
||||
*/
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 <smontes@wirelessgalicia.com>
|
||||
*/
|
||||
public abstract class Consolidation extends BaseEntity {
|
||||
|
||||
public abstract SortedSet<ConsolidatedValue> getConsolidatedValues();
|
||||
public abstract SortedSet<? extends ConsolidatedValue> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<NonCalculatedConsolidatedValue> 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<NonCalculatedConsolidatedValue> 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<ConsolidatedValue>(consolidatedValues);
|
||||
}
|
||||
|
||||
public SortedSet<NonCalculatedConsolidatedValue> getNonCalculatedConsolidatedValues() {
|
||||
return consolidatedValues;
|
||||
}
|
||||
|
||||
public void setConsolidatedValues(
|
||||
SortedSet<NonCalculatedConsolidatedValue> 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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,9 +54,8 @@
|
|||
<set name="nonCalculatedConsolidations"
|
||||
cascade="none"
|
||||
inverse="true"
|
||||
access="field"
|
||||
>
|
||||
<key column="ADVANCE_ASSIGNMENT_ID" />
|
||||
access="field">
|
||||
<key column="DIR_ADVANCE_ASSIGNMENT_ID" />
|
||||
<one-to-many class="org.navalplanner.business.planner.entities.consolidations.NonCalculatedConsolidation" />
|
||||
</set>
|
||||
|
||||
|
|
@ -71,7 +70,7 @@
|
|||
cascade="none"
|
||||
inverse="true"
|
||||
access="field">
|
||||
<key column="ADVANCE_ASSIGNMENT_ID" />
|
||||
<key column="IND_ADVANCE_ASSIGNMENT_ID" />
|
||||
<one-to-many class="org.navalplanner.business.planner.entities.consolidations.CalculatedConsolidation" />
|
||||
</set>
|
||||
|
||||
|
|
|
|||
|
|
@ -15,30 +15,37 @@
|
|||
<property name="value" scale="2" access="field" />
|
||||
|
||||
<subclass name="NonCalculatedConsolidatedValue" discriminator-value="NonCalculated">
|
||||
<many-to-one name="consolidation" class="NonCalculatedConsolidation" column="CONSOLIDATION_ID" access="field" />
|
||||
<many-to-one name="advanceMeasurement" class="org.navalplanner.business.advance.entities.AdvanceMeasurement" column="ADVANCE_MEASUREMENT_ID" access="field" />
|
||||
</subclass>
|
||||
|
||||
<subclass name="CalculatedConsolidatedValue" discriminator-value="Calculated">
|
||||
<many-to-one name="consolidation" class="CalculatedConsolidation" column="CONSOLIDATION_ID" access="field" />
|
||||
</subclass>
|
||||
|
||||
</class>
|
||||
|
||||
<class name="Consolidation">
|
||||
<id name="id" column="id" type="long" access="property">
|
||||
<generator class="hilo">
|
||||
<param name="max_lo">100</param>
|
||||
<generator class="foreign">
|
||||
<param name="property">task</param>
|
||||
</generator>
|
||||
</id>
|
||||
<discriminator column="CONSOLIDATION_TYPE" type="string"/>
|
||||
<version name="version" access="property" type="long" />
|
||||
|
||||
<one-to-one name="task" class="org.navalplanner.business.planner.entities.Task" constrained="true"/>
|
||||
|
||||
<subclass name="NonCalculatedConsolidation" discriminator-value="NonCalculated">
|
||||
|
||||
<many-to-one name="directAdvanceAssignment" column="ADVANCE_ASSIGNMENT_ID" access="field"
|
||||
<many-to-one name="directAdvanceAssignment" column="DIR_ADVANCE_ASSIGNMENT_ID" access="field"
|
||||
class="org.navalplanner.business.advance.entities.DirectAdvanceAssignment" />
|
||||
|
||||
<set name="consolidatedValues" access="field" cascade="all,delete-orphan"
|
||||
sort="org.navalplanner.business.planner.entities.consolidations.ConsolidatedValueComparator">
|
||||
<set name="consolidatedValues"
|
||||
access="field"
|
||||
cascade="all,delete-orphan"
|
||||
inverse="true"
|
||||
sort="org.navalplanner.business.planner.entities.consolidations.ConsolidatedValueComparator">
|
||||
<key column="CONSOLIDATION_ID" />
|
||||
<one-to-many class="org.navalplanner.business.planner.entities.consolidations.NonCalculatedConsolidatedValue" />
|
||||
</set>
|
||||
|
|
@ -47,9 +54,13 @@
|
|||
|
||||
<subclass name="CalculatedConsolidation" discriminator-value="Calculated">
|
||||
|
||||
<many-to-one name="indirectAdvanceAssignment" class="org.navalplanner.business.advance.entities.IndirectAdvanceAssignment" column="INADVANCE_ASSIGNMENT_ID" access="field" />
|
||||
<many-to-one name="indirectAdvanceAssignment" column="IND_ADVANCE_ASSIGNMENT_ID" access="field"
|
||||
class="org.navalplanner.business.advance.entities.IndirectAdvanceAssignment"/>
|
||||
|
||||
<set name="consolidatedValues" access="field" cascade="all,delete-orphan"
|
||||
<set name="consolidatedValues"
|
||||
access="field"
|
||||
cascade="all,delete-orphan"
|
||||
inverse="true"
|
||||
sort="org.navalplanner.business.planner.entities.consolidations.ConsolidatedValueComparator">
|
||||
<key column="CONSOLIDATION_ID" />
|
||||
<one-to-many class="org.navalplanner.business.planner.entities.consolidations.CalculatedConsolidatedValue" />
|
||||
|
|
|
|||
|
|
@ -108,7 +108,6 @@
|
|||
|
||||
<property name="day" type="org.joda.time.contrib.hibernate.PersistentLocalDate" not-null="true"/>
|
||||
|
||||
|
||||
<many-to-one name="resource" class="org.navalplanner.business.resources.entities.Resource"
|
||||
column="RESOURCE_ID" not-null="true">
|
||||
</many-to-one>
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
</component>
|
||||
|
||||
<one-to-one name="consolidation" class="org.navalplanner.business.planner.entities.consolidations.Consolidation"
|
||||
cascade="all" access="field"/>
|
||||
cascade="all"/>
|
||||
|
||||
<set name="resourceAllocations" cascade="all-delete-orphan">
|
||||
<key column="TASK" />
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue