From a3a237b9aa4311ecdd19b224b6e69148c0367839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lorenzo=20Tilve=20=C3=81lvaro?= Date: Fri, 7 Jun 2013 10:39:41 +0200 Subject: [PATCH] Added new column to WBS with the data from the task criteria FEA: ItEr77S17AutomaticBudgeting --- .../web/orders/IOrderElementModel.java | 2 ++ .../web/orders/OrderElementModel.java | 29 +++++++++++++++++++ .../orders/OrderElementTreeController.java | 26 +++++++++++------ .../web/orders/OrdersTreeComponent.java | 12 ++++++++ 4 files changed, 60 insertions(+), 9 deletions(-) diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/IOrderElementModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/IOrderElementModel.java index 600af693a..39cba6b28 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/IOrderElementModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/IOrderElementModel.java @@ -53,4 +53,6 @@ public interface IOrderElementModel { boolean isCodeAutogenerated(); + String getTotalBudget(); + } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementModel.java index f6f75e41c..15a0eaec1 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementModel.java @@ -27,10 +27,14 @@ import java.util.List; import java.util.Map; import java.util.Set; +import org.libreplan.business.common.daos.IConfigurationDAO; +import org.libreplan.business.common.exceptions.InstanceNotFoundException; +import org.libreplan.business.costcategories.entities.TypeOfWorkHours; import org.libreplan.business.orders.daos.IOrderDAO; import org.libreplan.business.orders.daos.IOrderElementDAO; import org.libreplan.business.orders.entities.HoursGroup; import org.libreplan.business.orders.entities.OrderElement; +import org.libreplan.business.requirements.entities.CriterionRequirement; import org.libreplan.business.resources.daos.ICriterionTypeDAO; import org.libreplan.business.resources.entities.Criterion; import org.libreplan.business.resources.entities.CriterionType; @@ -48,6 +52,9 @@ public class OrderElementModel implements IOrderElementModel { private OrderModel order; + @Autowired + private IConfigurationDAO configurationDAO; + @Autowired private IOrderElementDAO orderElementDAO; @@ -156,4 +163,26 @@ public class OrderElementModel implements IOrderElementModel { return order.isCodeAutogenerated(); } + @Override + @Transactional(readOnly = true) + public String getTotalBudget() { + String autobudget = ""; + + TypeOfWorkHours typeofWorkHours = configurationDAO.getConfiguration() + .getBudgetDefaultTypeOfWorkHours(); + for (CriterionRequirement criterionRequirement : getOrderElement() + .getCriterionRequirements()) { + try { + autobudget += criterionRequirement.getCriterion() + .getCostCategory().getName(); + autobudget += typeofWorkHours.getName(); + // getHourCostByCode(defaultCode) + // .getPriceCost().toBigInteger(); + } catch (Exception e) { + e.printStackTrace(); + } + } + return autobudget; + } + } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java index faeddc4d9..37ce8c8f3 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrderElementTreeController.java @@ -37,17 +37,22 @@ import java.util.logging.Filter; import javax.annotation.Resource; import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.LogFactory; +import org.aspectj.weaver.ICrossReferenceHandler; +import org.libreplan.business.common.daos.IConfigurationDAO; import org.libreplan.business.common.daos.IConnectorDAO; import org.libreplan.business.common.entities.Connector; import org.libreplan.business.common.entities.EntitySequence; import org.libreplan.business.common.entities.PredefinedConnectorProperties; import org.libreplan.business.common.entities.PredefinedConnectors; +import org.libreplan.business.orders.entities.HoursGroup; import org.libreplan.business.orders.entities.Order; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.orders.entities.OrderLine; import org.libreplan.business.orders.entities.OrderLineGroup; import org.libreplan.business.orders.entities.SchedulingState; import org.libreplan.business.requirements.entities.CriterionRequirement; +import org.libreplan.business.resources.daos.ICriterionDAO; import org.libreplan.business.templates.entities.OrderElementTemplate; import org.libreplan.business.users.entities.UserRole; import org.libreplan.web.common.FilterUtils; @@ -59,12 +64,14 @@ import org.libreplan.web.common.components.bandboxsearch.BandboxSearch; import org.libreplan.web.common.components.finders.FilterPair; import org.libreplan.web.common.components.finders.OrderElementFilterEnum; import org.libreplan.web.common.components.finders.TaskElementFilterEnum; +import org.libreplan.web.materials.UnitTypeModel; import org.libreplan.web.orders.assigntemplates.TemplateFinderPopup; import org.libreplan.web.orders.assigntemplates.TemplateFinderPopup.IOnResult; import org.libreplan.web.security.SecurityUtils; import org.libreplan.web.templates.IOrderTemplatesControllerEntryPoints; import org.libreplan.web.tree.TreeController; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.zkoss.ganttz.IPredicate; import org.zkoss.ganttz.util.ComponentsFinder; import org.zkoss.zk.ui.Component; @@ -128,7 +135,13 @@ public class OrderElementTreeController extends TreeController { private Popup filterOptionsPopup; @Autowired - private IConnectorDAO connectorDAO; + private IConnectorDAO connectorDAO; + + @Autowired + private ICriterionDAO criterionDAO; + + private static final org.apache.commons.logging.Log LOG = LogFactory + .getLog(OrderElementTreeController.class); public List getLabels() { return orderModel.getLabels(); @@ -609,14 +622,9 @@ public class OrderElementTreeController extends TreeController { } public void addAutoBudgetCell(OrderElement currentElement) { - String autobudget = " autobudget"; - for (CriterionRequirement criterionRequirement : currentElement - .getCriterionRequirements()) { - autobudget += criterionRequirement.getCriterion() - .getCostCategory(); - autobudget += currentElement.getHoursGroups().toString(); - } - addCell(new Textbox(autobudget)); + IOrderElementModel model = orderModel + .getOrderElementModel(currentElement); + addCell(new Textbox(model.getTotalBudget())); } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrdersTreeComponent.java b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrdersTreeComponent.java index 2fb847f97..1de028990 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrdersTreeComponent.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/orders/OrdersTreeComponent.java @@ -25,11 +25,17 @@ import static org.libreplan.web.I18nHelper._; import java.util.ArrayList; import java.util.List; +import org.libreplan.business.common.daos.IConfigurationDAO; +import org.libreplan.business.common.entities.Configuration; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.trees.ITreeNode; import org.libreplan.web.orders.OrderElementTreeController.OrderElementTreeitemRenderer; import org.libreplan.web.tree.TreeComponent; import org.libreplan.web.tree.TreeController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Component; import org.zkoss.zul.Treeitem; /** @@ -38,6 +44,9 @@ import org.zkoss.zul.Treeitem; */ public class OrdersTreeComponent extends TreeComponent { + @Autowired + private IConfigurationDAO configurationDAO; + abstract class OrdersTreeColumn extends Column { OrdersTreeColumn(String label, String cssClass, String tooltip) { super(label, cssClass, tooltip); @@ -87,6 +96,8 @@ public class OrdersTreeComponent extends TreeComponent { } }); + + // Pending to add condition with configuration.isEnabledAutomaticBudget columns.add(new OrdersTreeColumn(_("autobudget"), "autobudget", _("autobudget")) { @@ -97,6 +108,7 @@ public class OrdersTreeComponent extends TreeComponent { } }); + columns.add(new OrdersTreeColumn(_("Must start after"), "estimated_init", _("Estimated start date for the task (press enter in textbox to open calendar popup or type in date directly)")) {