Add new field budget to OrderLineTemplate

FEA: ItEr76S17MoneyCostMonitoringSystem
This commit is contained in:
Manuel Rego Casasnovas 2012-03-14 15:15:27 +01:00
parent a8c08b08eb
commit a85cb2dccb
5 changed files with 41 additions and 0 deletions

View file

@ -594,4 +594,6 @@ public abstract class OrderElementTemplate extends BaseEntity implements
this.origin = origin;
}
public abstract BigDecimal getBudget();
}

View file

@ -20,6 +20,7 @@
*/
package org.libreplan.business.templates.entities;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@ -261,4 +262,13 @@ public class OrderLineGroupTemplate extends OrderElementTemplate implements
return result;
}
@Override
public BigDecimal getBudget() {
BigDecimal budget = BigDecimal.ZERO.setScale(2);
for (OrderElementTemplate child : children) {
budget = budget.add(child.getBudget());
}
return budget;
}
}

View file

@ -22,6 +22,7 @@ package org.libreplan.business.templates.entities;
import static org.libreplan.business.i18n.I18nHelper._;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@ -29,6 +30,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Valid;
import org.libreplan.business.orders.entities.HoursGroup;
@ -67,6 +69,8 @@ public class OrderLineTemplate extends OrderElementTemplate {
return createNew(new OrderLineTemplate());
}
private BigDecimal budget = BigDecimal.ZERO.setScale(2);
protected <T extends OrderElement> T setupElementParts(T orderElement) {
super.setupElementParts(orderElement);
setupHoursGroups((OrderLine) orderElement);
@ -191,4 +195,16 @@ public class OrderLineTemplate extends OrderElementTemplate {
hoursGroupOrderLineTemplateHandler.recalculateHoursGroups(this);
}
public void setBudget(BigDecimal budget) {
Validate.isTrue(budget.compareTo(BigDecimal.ZERO) >= 0,
"budget cannot be negative");
this.budget = budget.setScale(2);
}
@Override
@NotNull(message = "budget not specified")
public BigDecimal getBudget() {
return budget;
}
}

View file

@ -74,4 +74,15 @@
columnName="budget" defaultValueNumeric="0" />
</changeSet>
<changeSet id="add-budget-column-to-order_line_template" author="mrego">
<comment>add budget column to order_line_template</comment>
<addColumn tableName="order_line_template">
<column name="budget" type="DECIMAL(19,2)" />
</addColumn>
<addNotNullConstraint tableName="order_line_template"
columnName="budget" defaultNullValue="0" />
<addDefaultValue tableName="order_line_template"
columnName="budget" defaultValueNumeric="0" />
</changeSet>
</databaseChangeLog>

View file

@ -87,6 +87,8 @@
<property name="lastHoursGroupSequenceCode" access="field"
column="last_hours_group_sequence_code" />
<property name="budget" scale="2" access="field" />
</joined-subclass>
</class>