From a85cb2dccb8f7d390481044cfb3026c6e8c43ac4 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Wed, 14 Mar 2012 15:15:27 +0100 Subject: [PATCH] Add new field budget to OrderLineTemplate FEA: ItEr76S17MoneyCostMonitoringSystem --- .../templates/entities/OrderElementTemplate.java | 2 ++ .../entities/OrderLineGroupTemplate.java | 10 ++++++++++ .../templates/entities/OrderLineTemplate.java | 16 ++++++++++++++++ .../src/main/resources/db.changelog-1.2.xml | 11 +++++++++++ .../templates/entities/Templates.hbm.xml | 2 ++ 5 files changed, 41 insertions(+) diff --git a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderElementTemplate.java b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderElementTemplate.java index 384d14e43..c94d95535 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderElementTemplate.java +++ b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderElementTemplate.java @@ -594,4 +594,6 @@ public abstract class OrderElementTemplate extends BaseEntity implements this.origin = origin; } + public abstract BigDecimal getBudget(); + } diff --git a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineGroupTemplate.java b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineGroupTemplate.java index cef519900..ff48ca77d 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineGroupTemplate.java +++ b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineGroupTemplate.java @@ -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; + } + } diff --git a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineTemplate.java b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineTemplate.java index ab577b4ca..d26e480d0 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineTemplate.java +++ b/libreplan-business/src/main/java/org/libreplan/business/templates/entities/OrderLineTemplate.java @@ -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 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; + } + } diff --git a/libreplan-business/src/main/resources/db.changelog-1.2.xml b/libreplan-business/src/main/resources/db.changelog-1.2.xml index 85f7048ce..0f97efe19 100644 --- a/libreplan-business/src/main/resources/db.changelog-1.2.xml +++ b/libreplan-business/src/main/resources/db.changelog-1.2.xml @@ -74,4 +74,15 @@ columnName="budget" defaultValueNumeric="0" /> + + add budget column to order_line_template + + + + + + + diff --git a/libreplan-business/src/main/resources/org/libreplan/business/templates/entities/Templates.hbm.xml b/libreplan-business/src/main/resources/org/libreplan/business/templates/entities/Templates.hbm.xml index 9d51a4dbf..fa04bebde 100644 --- a/libreplan-business/src/main/resources/org/libreplan/business/templates/entities/Templates.hbm.xml +++ b/libreplan-business/src/main/resources/org/libreplan/business/templates/entities/Templates.hbm.xml @@ -87,6 +87,8 @@ + +