r71 - in trunk/chorem-web/src/main: java/org/chorem/billy/action java/org/chorem/gepeto/action resources resources/i18n webapp/WEB-INF/jsp/billy webapp/WEB-INF/jsp/gepeto
Author: vbriand Date: 2011-04-08 16:03:55 +0200 (Fri, 08 Apr 2011) New Revision: 71 Url: http://chorem.org/repositories/revision/chorem/71 Log: Added a page to detail a project order and modified consequently the quotation's page Added: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp Modified: trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties trunk/chorem-web/src/main/resources/struts.xml trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectDetails.jsp Modified: trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-08 12:40:37 UTC (rev 70) +++ trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-08 14:03:55 UTC (rev 71) @@ -8,12 +8,10 @@ import org.apache.commons.logging.LogFactory; import org.chorem.ChoremProxy; import org.chorem.action.BaseAction; -import org.chorem.entities.Company; import org.chorem.entities.Project; import org.chorem.entities.ProjectOrder; import org.chorem.entities.Quotation; import org.chorem.entities.QuotationImpl; -import org.chorem.gepeto.ProjectOrderFull; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.Search; @@ -131,25 +129,14 @@ * @return the project order if it exists * @return null if it doesn't exist */ - public ProjectOrderFull getProjectOrder() { + public ProjectOrder getProjectOrder() { ChoremProxy proxy = getChoremProxy(); Search search = Search.query(); Criteria criteria = search.eq(ProjectOrder.FQ_FIELD_PROJECTORDER_QUOTATION, quotationId).criteria(); ProjectOrder projectOrder = proxy.findByCriteria(ProjectOrder.class, criteria); - ProjectOrderFull projectOrderFull = new ProjectOrderFull(); - - if (projectOrder != null) { - projectOrderFull.setProjectOrder(projectOrder); - - Company company; - - company = proxy.restore(Company.class, projectOrder.getCompany()); - projectOrderFull.setCompany(company); - } else { - projectOrderFull = null; - } - return projectOrderFull; + + return projectOrder; } /** Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-04-08 12:40:37 UTC (rev 70) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-04-08 14:03:55 UTC (rev 71) @@ -164,13 +164,7 @@ */ public List<Quotation> getAttachedQuotationsWithProjectOrder() { ChoremProxy proxy = getChoremProxy(); - Search search = Search.query(); - Criteria criteria = search.exteq(ProjectOrder.EXT_PROJECTORDER). - associated(ProjectOrder.FQ_FIELD_PROJECTORDER_QUOTATION). - eq(Quotation.FQ_FIELD_QUOTATION_PROJECT, projectId).criteria(); - PagedResult<ProjectOrder> result = proxy.findAllByCriteria(ProjectOrder.class, - criteria); - List<ProjectOrder> projectOrders = result.getAll(); + List<ProjectOrder> projectOrders = getProjectOrders(); List<Quotation> quotations = new ArrayList<Quotation>(); for (ProjectOrder projectOrder : projectOrders) { @@ -196,6 +190,24 @@ } /** + * Gets the project orders + * + * @return the project orders + */ + public List<ProjectOrder> getProjectOrders() { + ChoremProxy proxy = getChoremProxy(); + Search search = Search.query(); + Criteria criteria = search.exteq(ProjectOrder.EXT_PROJECTORDER). + associated(ProjectOrder.FQ_FIELD_PROJECTORDER_QUOTATION). + eq(Quotation.FQ_FIELD_QUOTATION_PROJECT, projectId).criteria(); + PagedResult<ProjectOrder> result = proxy.findAllByCriteria(ProjectOrder.class, + criteria); + List<ProjectOrder> projectOrders = result.getAll(); + + return projectOrders; + } + + /** * @return the name */ public String getName() { Modified: trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-08 12:40:37 UTC (rev 70) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-08 14:03:55 UTC (rev 71) @@ -9,6 +9,7 @@ import org.apache.commons.logging.LogFactory; import org.chorem.ChoremProxy; import org.chorem.action.BaseAction; +import org.chorem.entities.Company; import org.chorem.entities.CompanyImpl; import org.chorem.entities.ProjectOrder; import org.chorem.entities.ProjectOrderImpl; @@ -77,6 +78,59 @@ return result; } + /** + * Retrieves the information of the projectOrder referenced by the + * projectOrderId + * + * @return SUCCESS if the information have been retrieved + * @return ERROR either if the UUID is invalid or the projectOrderId doesn't + * exist + */ + public String projectOrderDetails() { + String result = SUCCESS; + ChoremProxy proxy = getChoremProxy(); + + try { + if (projectOrderId == null) { + result = ERROR; + } else { + //If projectOrderId isn't a valid UUID, an exception is thrown + UUID.fromString(projectOrderId); + + ProjectOrder projectOrder = proxy.restore(ProjectOrder.class, + projectOrderId); + + if (projectOrder != null) { //If the projectOrderId exists + setBeginDate(projectOrder.getBeginDate().toString()); + + Company company; + + company = proxy.restore(Company.class, + projectOrder.getCompany()); + setCompanyName(company.getName()); + setCompanyType(company.getType()); + setDescription(projectOrder.getDescription()); + setEstimatedEndDate(projectOrder.getEndDate().toString()); + setStatus(projectOrder.getStatus()); + setType(projectOrder.getType()); + + Quotation quotation; + + quotation = proxy.restore(Quotation.class, + projectOrder.getQuotation()); + setQuotationId(quotation.getWikittyId()); + setQuotationReference(quotation.getReference()); + } else { + result = ERROR; + } + } + } catch (IllegalArgumentException e) { + //projectOrderId is invalid + result = ERROR; + } + return result; + } + protected String type; protected String description; protected String status; @@ -86,6 +140,7 @@ protected String quotationReference; protected String companyName; protected String companyType; + protected String projectOrderId; /** * Stores the new project order through the proxy @@ -296,4 +351,18 @@ public void setCompanyType(String companyType) { this.companyType = companyType; } + + /** + * @return the projectOrderId + */ + public String getProjectOrderId() { + return projectOrderId; + } + + /** + * @param projectOrderId the projectOrderId to set + */ + public void setProjectOrderId(String projectOrderId) { + this.projectOrderId = projectOrderId; + } } \ No newline at end of file Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties =================================================================== --- trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 12:40:37 UTC (rev 70) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 14:03:55 UTC (rev 71) @@ -96,7 +96,10 @@ chorem.gepeto.project.description.required=You must describe the project chorem.gepeto.project.name=Project''s name chorem.gepeto.project.name.required=You must enter the project''s name +chorem.gepeto.projectDetails.noProjectOrder= chorem.gepeto.projectDetails.noQuotations=No quotations +chorem.gepeto.projectDetails.projectOrder= +chorem.gepeto.projectDetails.projectOrders= chorem.gepeto.projectDetails.quotation=Quotation of {0} (ref. {1}) chorem.gepeto.projectDetails.quotationWithProjectOrder=Project''s quotation with project order chorem.gepeto.projectDetails.quotationsWithoutProjectOrder=Project''s quotations without project order @@ -117,6 +120,12 @@ chorem.gepeto.projectOrder.status= chorem.gepeto.projectOrder.type=Type chorem.gepeto.projectOrder.type.required=You must specify the project order''s type +chorem.gepeto.projectOrderDetails.beginDate= +chorem.gepeto.projectOrderDetails.companyName= +chorem.gepeto.projectOrderDetails.endDate= +chorem.gepeto.projectOrderDetails.quotation= +chorem.gepeto.projectOrderDetails.title= +chorem.gepeto.projectOrderDetails.type= chorem.gepeto.projects=Get the projects list chorem.gepeto.projectsByYear.thead.company=Company chorem.gepeto.projectsByYear.thead.end=End Modified: trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties =================================================================== --- trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 12:40:37 UTC (rev 70) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 14:03:55 UTC (rev 71) @@ -91,7 +91,10 @@ chorem.gepeto.project.description.required=Vous devez d\u00E9crire le projet chorem.gepeto.project.name=Nom du projet chorem.gepeto.project.name.required=Vous devez renseigner un nom pour le projet +chorem.gepeto.projectDetails.noProjectOrder= chorem.gepeto.projectDetails.noQuotations=Pas de devis +chorem.gepeto.projectDetails.projectOrder=Contrat du {0} au {1} +chorem.gepeto.projectDetails.projectOrders=Contrats du projet chorem.gepeto.projectDetails.quotation=Devis du {0} (r\u00E9f. {1}) chorem.gepeto.projectDetails.quotationWithProjectOrder=Devis du projet avec un contrat chorem.gepeto.projectDetails.quotationsWithoutProjectOrder=Devis du projet sans contrat @@ -112,6 +115,12 @@ chorem.gepeto.projectOrder.status= chorem.gepeto.projectOrder.type=Type chorem.gepeto.projectOrder.type.required=Vous devez sp\u00E9cifier le type du contrat +chorem.gepeto.projectOrderDetails.beginDate=Date de d\u00E9but \: {0} +chorem.gepeto.projectOrderDetails.companyName=Nom de la soci\u00E9t\u00E9 \: {0} +chorem.gepeto.projectOrderDetails.endDate=Date de fin \: {0} +chorem.gepeto.projectOrderDetails.quotation=Contrat r\u00E9alis\u00E9 sur la base du devis \#{0} +chorem.gepeto.projectOrderDetails.title=D\u00E9tails du contrat +chorem.gepeto.projectOrderDetails.type=Type de contrat \: {0} chorem.gepeto.projects=Obtenir la liste des projets chorem.gepeto.projectsByYear.thead.company=Demandeur chorem.gepeto.projectsByYear.thead.end=Fin Modified: trunk/chorem-web/src/main/resources/struts.xml =================================================================== --- trunk/chorem-web/src/main/resources/struts.xml 2011-04-08 12:40:37 UTC (rev 70) +++ trunk/chorem-web/src/main/resources/struts.xml 2011-04-08 14:03:55 UTC (rev 71) @@ -93,6 +93,10 @@ <param name="quotationId">${quotationId}</param> </result> </action> + <action name="projectOrderDetails" class="org.chorem.gepeto.action.ProjectOrderAction" method="projectOrderDetails"> + <result name="error" type="redirectAction">home</result> + <result>/WEB-INF/jsp/gepeto/projectOrderDetails.jsp</result> + </action> <action name="getProjectsByYear" class="org.chorem.gepeto.action.ProjectAction"> <result>/WEB-INF/jsp/gepeto/projectsByYear.jsp</result> </action> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-08 12:40:37 UTC (rev 70) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-08 14:03:55 UTC (rev 71) @@ -1,6 +1,6 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@page import="org.chorem.billy.action.QuotationAction" %> -<%@page import="org.chorem.gepeto.ProjectOrderFull" %> +<%@page import="org.chorem.entities.ProjectOrder" %> <%@taglib prefix="s" uri="/struts-tags" %> <html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" @@ -31,28 +31,26 @@ <br /> <br /> <% - ProjectOrderFull projectOrder = QuotationAction.getAction().getProjectOrder(); + ProjectOrder projectOrder = QuotationAction.getAction().getProjectOrder(); if (projectOrder != null) { %> <s:text name="chorem.billy.quotation.projectOrder" /> <br /> - <s:text name="chorem.billy.quotation.projectOrder.beginDate"> - <s:param><%= projectOrder.getProjectOrder().getBeginDate() %></s:param> - </s:text> - <br /> - <s:text name="chorem.billy.quotation.projectOrder.endDate"> - <s:param><%= projectOrder.getProjectOrder().getEndDate() %></s:param> - </s:text> - <br /> - <s:text name="chorem.billy.quotation.projectOrder.type"> - <s:param><%= projectOrder.getProjectOrder().getType() %></s:param> - </s:text> - <br /> - <s:text name="chorem.billy.quotation.projectOrder.company"> - <s:param><%= projectOrder.getCompany().getName() %></s:param> - </s:text> - <br /> + <s:url namespace="/gepeto" action="projectOrderDetails" var="projectOrderDetails"> + <s:param name="projectOrderId"><%= projectOrder.getWikittyId() %></s:param> + </s:url> + <a href="${projectOrderDetails}"> + <s:text name="chorem.gepeto.projectDetails.projectOrder"> + <s:param> + <%= projectOrder.getBeginDate() %> + </s:param> + <s:param> + <%= projectOrder.getEndDate() %> + </s:param> + </s:text> + </a> + <br /> <% } else { %> <s:url namespace="/gepeto" action="addProjectOrderInput" var="addProjectOrder"> <s:param name="quotationId"><%= QuotationAction.getAction().getQuotationId() %></s:param> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectDetails.jsp 2011-04-08 12:40:37 UTC (rev 70) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectDetails.jsp 2011-04-08 14:03:55 UTC (rev 71) @@ -1,5 +1,6 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.util.List" %> +<%@page import="org.chorem.entities.ProjectOrder" %> <%@page import="org.chorem.entities.Quotation" %> <%@page import="org.chorem.gepeto.action.ProjectAction" %> <%@taglib prefix="s" uri="/struts-tags" %> @@ -30,6 +31,35 @@ <a href="${addQuotation}"><s:text name="chorem.billy.quotation.add" /></a> </p> <p> + <s:text name="chorem.gepeto.projectDetails.projectOrders" /> + <br /> + <br /> + <% + List<ProjectOrder> projectOrders = ProjectAction.getAction().getProjectOrders(); + + if (projectOrders.isEmpty()) { + %> + <s:text name="chorem.gepeto.projectDetails.noProjectOrder" /> + <% + } + for (ProjectOrder projectOrder : projectOrders) { + %> + <s:url namespace="/gepeto" action="projectOrderDetails" var="projectOrderDetails"> + <s:param name="projectOrderId"><%= projectOrder.getWikittyId() %></s:param> + </s:url> + <a href="${projectOrderDetails}"> + <s:text name="chorem.gepeto.projectDetails.projectOrder"> + <s:param> + <%= projectOrder.getBeginDate() %> + </s:param> + <s:param> + <%= projectOrder.getEndDate() %> + </s:param> + </s:text> + </a> + <br /> + <% } %> + <br /> <s:text name="chorem.gepeto.projectDetails.quotationWithProjectOrder" /> <br /> <br /> Added: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp (rev 0) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-08 14:03:55 UTC (rev 71) @@ -0,0 +1,51 @@ +<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@page import="org.chorem.gepeto.action.ProjectOrderAction" %> +<%@taglib prefix="s" uri="/struts-tags" %> + +<html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" + xmlns:jsp="http://java.sun.com/JSP/Page"> + <head> + <title> + <s:text name="chorem.gepeto.projectOrderDetails.title" /> + </title> + <s:head /> + </head> + <body> + <p> + <s:text name="chorem.gepeto.projectOrderDetails.beginDate"> + <s:param><%= ProjectOrderAction.getAction().getBeginDate() %></s:param> + </s:text> + <br /> + <s:text name="chorem.gepeto.projectOrderDetails.endDate"> + <s:param><%= ProjectOrderAction.getAction().getEstimatedEndDate() %></s:param> + </s:text> + <br /> + <s:text name="chorem.gepeto.projectOrderDetails.type"> + <s:param><%= ProjectOrderAction.getAction().getType() %></s:param> + </s:text> + <br /> + <s:text name="chorem.gepeto.projectOrderDetails.companyName"> + <s:param><%= ProjectOrderAction.getAction().getCompanyName() %></s:param> + </s:text> + <br /> + <s:text name="chorem.gepeto.projectOrderDetails.quotation"> + <s:param> + <s:url namespace="/billy" action="quotationDetails" var="quotationDetails"> + <s:param name="quotationId"> + <%= ProjectOrderAction.getAction().getQuotationId() %> + </s:param> + </s:url> + <a href="${quotationDetails}"><%= ProjectOrderAction.getAction().getQuotationReference() %></a> + </s:param> + </s:text> + <s:url namespace="/gepeto" action="addTaskInput" var="addTask"> + <s:param name="projectOrderId"><%= ProjectOrderAction.getAction().getProjectOrderId() %></s:param> + </s:url> + <br /> + <br /> + <a href="${addTask}"> + <s:text name="chorem.gepeto.task.add" /> + </a> + </p> + </body> +</html> Property changes on: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp ___________________________________________________________________ Added: svn:mime-type + text/plain
participants (1)
-
vbriand@users.chorem.org