From ff3c4f0c04199b7d3bbb3023192ba0332322250c Mon Sep 17 00:00:00 2001 From: Susana Montes Pedreira Date: Fri, 30 Mar 2012 21:59:25 +0100 Subject: [PATCH] Include a column with the name of the project and other with the "Delivery date, and make the list sortable by the column "communication" or "company". FEA: ItEr75S32AnA15S04UpdateDeliveringDateInSubcontracting --- .../entities/SubcontractedTaskData.java | 9 ++++ .../subcontract/ISubcontractedTasksModel.java | 4 +- .../SubcontractedTasksController.java | 42 ++++++++++++------- .../subcontract/SubcontractedTasksModel.java | 11 +++-- .../webapp/subcontract/subcontractedTasks.zul | 12 +++--- 5 files changed, 54 insertions(+), 24 deletions(-) diff --git a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractedTaskData.java b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractedTaskData.java index 0794ab1f0..460b8d362 100644 --- a/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractedTaskData.java +++ b/libreplan-business/src/main/java/org/libreplan/business/planner/entities/SubcontractedTaskData.java @@ -288,4 +288,13 @@ public class SubcontractedTaskData extends BaseEntity { this.requiredDeliveringDates.first().setCommunicationDate(subcontractCommunicationDate); } } + + public Date getLastRequiredDeliverDate() { + if (this.requiredDeliveringDates != null + && !this.requiredDeliveringDates.isEmpty()) { + return this.requiredDeliveringDates.first() + .getSubcontractorDeliverDate(); + } + return null; + } } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ISubcontractedTasksModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ISubcontractedTasksModel.java index 50a45d576..cb258bb07 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ISubcontractedTasksModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/ISubcontractedTasksModel.java @@ -23,6 +23,7 @@ package org.libreplan.web.subcontract; import java.util.List; import org.libreplan.business.common.exceptions.ValidationException; +import org.libreplan.business.orders.entities.Order; import org.libreplan.business.planner.entities.SubcontractedTaskData; import org.libreplan.web.subcontract.exceptions.ConnectionProblemsException; import org.libreplan.web.subcontract.exceptions.UnrecoverableErrorServiceException; @@ -36,12 +37,11 @@ public interface ISubcontractedTasksModel { List getSubcontractedTasks(); - String getOrderCode(SubcontractedTaskData subcontractedTaskData); - void sendToSubcontractor(SubcontractedTaskData subcontractedTaskData) throws ValidationException, ConnectionProblemsException, UnrecoverableErrorServiceException; String exportXML(SubcontractedTaskData subcontractedTaskData); + Order getOrder(SubcontractedTaskData subcontractedTaskData); } \ No newline at end of file diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksController.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksController.java index cd5c18c93..75351df6d 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksController.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksController.java @@ -34,6 +34,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.libreplan.business.common.exceptions.ValidationException; +import org.libreplan.business.orders.entities.Order; import org.libreplan.business.planner.entities.SubcontractedTaskData; import org.libreplan.web.common.IMessagesForUser; import org.libreplan.web.common.Level; @@ -109,21 +110,39 @@ public class SubcontractedTasksController extends GenericForwardComposer { SubcontractedTaskData subcontractedTaskData = (SubcontractedTaskData) data; row.setValue(subcontractedTaskData); - appendLabel(row, toString(subcontractedTaskData - .getSubcontratationDate())); - appendLabel(row, toString(subcontractedTaskData - .getSubcontractCommunicationDate())); + Order order = getOrder(subcontractedTaskData); + + appendLabel(row, + toString(subcontractedTaskData.getSubcontratationDate(), "dd/MM/yyyy HH:mm")); + appendLabel( + row, + toString(subcontractedTaskData.getSubcontractCommunicationDate(), + "dd/MM/yyyy HH:mm")); appendLabel(row, getExternalCompany(subcontractedTaskData)); - appendLabel(row, getOrderCode(subcontractedTaskData)); + appendLabel(row, getOrderCode(order)); + appendLabel(row, getOrderName(order)); appendLabel(row, subcontractedTaskData.getSubcontractedCode()); appendLabel(row, getTaskName(subcontractedTaskData)); appendLabel(row, subcontractedTaskData.getWorkDescription()); - appendLabel(row, toString(subcontractedTaskData - .getSubcontractPrice())); + appendLabel(row, toString(subcontractedTaskData.getSubcontractPrice())); + appendLabel(row, + toString(subcontractedTaskData.getLastRequiredDeliverDate(), "dd/MM/yyyy")); appendLabel(row, _(toString(subcontractedTaskData.getState()))); appendOperations(row, subcontractedTaskData); } + private String getOrderCode(Order order) { + return (order != null) ? order.getCode() : ""; + } + + private String getOrderName(Order order) { + return (order != null) ? order.getName() : ""; + } + + private Order getOrder(SubcontractedTaskData subcontractedTaskData) { + return subcontractedTasksModel.getOrder(subcontractedTaskData); + } + private String toString(Object object) { if (object == null) { return ""; @@ -132,22 +151,17 @@ public class SubcontractedTasksController extends GenericForwardComposer { return object.toString(); } - private String toString(Date date) { + private String toString(Date date, String precision) { if (date == null) { return ""; } - - return new SimpleDateFormat("dd/MM/yyyy HH:mm").format(date); + return new SimpleDateFormat(precision).format(date); } private void appendLabel(Row row, String label) { row.appendChild(new Label(label)); } - private String getOrderCode(SubcontractedTaskData subcontractedTaskData) { - return subcontractedTasksModel.getOrderCode(subcontractedTaskData); - } - private String getTaskName(SubcontractedTaskData subcontractedTaskData) { return subcontractedTaskData.getTask().getName(); } diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksModel.java b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksModel.java index b29245212..c8c4ad983 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksModel.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/subcontract/SubcontractedTasksModel.java @@ -31,7 +31,6 @@ import java.util.List; import javax.ws.rs.WebApplicationException; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; -import javax.xml.datatype.XMLGregorianCalendar; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -42,6 +41,7 @@ import org.libreplan.business.common.exceptions.ValidationException; import org.libreplan.business.externalcompanies.entities.ExternalCompany; import org.libreplan.business.orders.daos.IOrderDAO; import org.libreplan.business.orders.daos.IOrderElementDAO; +import org.libreplan.business.orders.entities.Order; import org.libreplan.business.orders.entities.OrderElement; import org.libreplan.business.planner.daos.ISubcontractedTaskDataDAO; import org.libreplan.business.planner.entities.SubcontractState; @@ -99,10 +99,15 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel { .getAllForMasterScenario(); for (SubcontractedTaskData subcontractedTaskData : result) { forceLoadExternalCompany(subcontractedTaskData); + forceLastDeliveryDate(subcontractedTaskData); } return sortByState(result); } + private void forceLastDeliveryDate(SubcontractedTaskData subcontractedTaskData) { + subcontractedTaskData.getLastRequiredDeliverDate(); + } + private void forceLoadExternalCompany( SubcontractedTaskData subcontractedTaskData) { subcontractedTaskData.getExternalCompany().getName(); @@ -141,11 +146,11 @@ public class SubcontractedTasksModel implements ISubcontractedTasksModel { @Override @Transactional(readOnly = true) - public String getOrderCode(SubcontractedTaskData subcontractedTaskData) { + public Order getOrder(SubcontractedTaskData subcontractedTaskData) { Task task = subcontractedTaskData.getTask(); OrderElement orderElement = orderDAO.loadOrderAvoidingProxyFor(task .getOrderElement()); - return orderElement.getOrder().getCode(); + return orderElement.getOrder(); } @Override diff --git a/libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul b/libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul index ace0ba7de..e4a733286 100644 --- a/libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul +++ b/libreplan-webapp/src/main/webapp/subcontract/subcontractedTasks.zul @@ -42,15 +42,17 @@ onInitRender="controller.initRender();"> - - + tooltiptext="${i18n:_('Subcontracting date')}" sort="auto(subcontratationDate)" width="127px"/> + + - + + +