Author: vbriand Date: 2011-04-08 14:40:37 +0200 (Fri, 08 Apr 2011) New Revision: 70 Url: http://chorem.org/repositories/revision/chorem/70 Log: A company can now be linked with a project order Added: trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java Modified: trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.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/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.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 09:34:00 UTC (rev 69) +++ trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-08 12:40:37 UTC (rev 70) @@ -8,10 +8,12 @@ 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; @@ -129,13 +131,25 @@ * @return the project order if it exists * @return null if it doesn't exist */ - public ProjectOrder getProjectOrder() { + public ProjectOrderFull getProjectOrder() { ChoremProxy proxy = getChoremProxy(); Search search = Search.query(); Criteria criteria = search.eq(ProjectOrder.FQ_FIELD_PROJECTORDER_QUOTATION, quotationId).criteria(); - ProjectOrder result = proxy.findByCriteria(ProjectOrder.class, criteria); - return result; + 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; } /** Added: trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java (rev 0) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java 2011-04-08 12:40:37 UTC (rev 70) @@ -0,0 +1,43 @@ +package org.chorem.gepeto; + +import org.chorem.entities.Company; +import org.chorem.entities.ProjectOrder; + +/** + * Simple class used to return both ProjectOrder and Company instead of using + * the proxy on the jsp page to retrieve the company details + * + * @author vbriand + */ +public class ProjectOrderFull { + protected ProjectOrder projectOrder; + protected Company company; + + /** + * @return the projectOrder + */ + public ProjectOrder getProjectOrder() { + return projectOrder; + } + + /** + * @param projectOrder the projectOrder to set + */ + public void setProjectOrder(ProjectOrder projectOrder) { + this.projectOrder = projectOrder; + } + + /** + * @return the company + */ + public Company getCompany() { + return company; + } + + /** + * @param company the company to set + */ + public void setCompany(Company company) { + this.company = company; + } +} Property changes on: trunk/chorem-web/src/main/java/org/chorem/gepeto/ProjectOrderFull.java ___________________________________________________________________ Added: svn:mime-type + text/plain 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 09:34:00 UTC (rev 69) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-08 12:40:37 UTC (rev 70) @@ -9,6 +9,7 @@ import org.apache.commons.logging.LogFactory; import org.chorem.ChoremProxy; import org.chorem.action.BaseAction; +import org.chorem.entities.CompanyImpl; import org.chorem.entities.ProjectOrder; import org.chorem.entities.ProjectOrderImpl; import org.chorem.entities.Quotation; @@ -59,14 +60,13 @@ } else { quotationReference = quotation.getReference(); if (type != null && description != null && - beginDate != null && estimatedEndDate != null) { - if (!type.isEmpty() && !description.isEmpty()) { - //If the project order has been added successfully - if (addProjectOrder()) { - result = SUCCESS; - } else { - result = ERROR; - } + beginDate != null && estimatedEndDate != null && + companyName != null && companyType != null) { + //If the project order has been added successfully + if (addProjectOrder()) { + result = SUCCESS; + } else { + result = ERROR; } } } @@ -79,10 +79,13 @@ protected String type; protected String description; + protected String status; protected String beginDate; protected String estimatedEndDate; protected String quotationId; protected String quotationReference; + protected String companyName; + protected String companyType; /** * Stores the new project order through the proxy @@ -96,12 +99,19 @@ try { ChoremProxy proxy = getChoremProxy(); ProjectOrderImpl newProjectOrder = new ProjectOrderImpl(); + CompanyImpl newCompany = new CompanyImpl(); SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); newProjectOrder.setType(type); newProjectOrder.setDescription(description); newProjectOrder.setQuotation(quotationId); + newProjectOrder.setStatus(status); + newCompany.setName(companyName); + newCompany.setType(companyType); + newProjectOrder.setCompany(newCompany.getWikittyId()); + + //Lenient mode disabled because results may be very odd formatter.setLenient(false); try { @@ -133,6 +143,7 @@ //If everything went smoothly if (result) { + proxy.store(newCompany); proxy.store(newProjectOrder); } } catch (Exception e) { @@ -189,6 +200,20 @@ } /** + * @return the status + */ + public String getStatus() { + return status; + } + + /** + * @param status the status to set + */ + public void setStatus(String status) { + this.status = status; + } + + /** * @return the beginDate */ public String getBeginDate() { @@ -243,4 +268,32 @@ public void setQuotationReference(String quotationReference) { this.quotationReference = quotationReference; } + + /** + * @return the companyName + */ + public String getCompanyName() { + return companyName; + } + + /** + * @param companyName the companyName to set + */ + public void setCompanyName(String companyName) { + this.companyName = companyName; + } + + /** + * @return the companyType + */ + public String getCompanyType() { + return companyType; + } + + /** + * @param companyType the companyType to set + */ + public void setCompanyType(String companyType) { + this.companyType = companyType; + } } \ 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 09:34:00 UTC (rev 69) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-08 12:40:37 UTC (rev 70) @@ -107,11 +107,14 @@ chorem.gepeto.projectOrder.backToQuotationDetails=Get back to the quotation chorem.gepeto.projectOrder.beginDate=Begin date (dd/mm/yyyy) chorem.gepeto.projectOrder.beginDate.required=You must provide a begin date for this project order +chorem.gepeto.projectOrder.company.name= +chorem.gepeto.projectOrder.company.type= chorem.gepeto.projectOrder.create.error=An error occurred while creating your new project order, please try again. If the problem persists, please contact an administrator chorem.gepeto.projectOrder.description=Description chorem.gepeto.projectOrder.description.required=You must describe the project order chorem.gepeto.projectOrder.estimatedEndDate=Estimated end date (dd/mm/yyyy) chorem.gepeto.projectOrder.estimatedEndDate.required=You must enter the estimated end date for this project order +chorem.gepeto.projectOrder.status= chorem.gepeto.projectOrder.type=Type chorem.gepeto.projectOrder.type.required=You must specify the project order''s type chorem.gepeto.projects=Get the projects list 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 09:34:00 UTC (rev 69) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-08 12:40:37 UTC (rev 70) @@ -102,11 +102,14 @@ chorem.gepeto.projectOrder.backToQuotationDetails=Retourner sur le devis chorem.gepeto.projectOrder.beginDate=Date de d\u00E9but chorem.gepeto.projectOrder.beginDate.required=Vous devez renseigner une date de d\u00E9but pour le contrat +chorem.gepeto.projectOrder.company.name= +chorem.gepeto.projectOrder.company.type= chorem.gepeto.projectOrder.create.error=Une erreur s''est produite lors de la cr\u00E9ation de votre nouveau contrat de projet, merci d''essayer \u00E0 nouveau. Si le probl\u00E8me se reproduit, merci de contacter un administrateur chorem.gepeto.projectOrder.description=Description chorem.gepeto.projectOrder.description.required=Vous devez d\u00E9crire le contrat chorem.gepeto.projectOrder.estimatedEndDate=Date de fin estim\u00E9e chorem.gepeto.projectOrder.estimatedEndDate.required=Vous devez renseigner la date de fin estim\u00E9e du contrat +chorem.gepeto.projectOrder.status= chorem.gepeto.projectOrder.type=Type chorem.gepeto.projectOrder.type.required=Vous devez sp\u00E9cifier le type du contrat chorem.gepeto.projects=Obtenir la liste des projets Modified: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml =================================================================== --- trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml 2011-04-08 09:34:00 UTC (rev 69) +++ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml 2011-04-08 12:40:37 UTC (rev 70) @@ -13,6 +13,11 @@ <message key="chorem.gepeto.projectOrder.description.required" /> </field-validator> </field> + <field name="status"> + <field-validator type="requiredstring"> + <message key="chorem.gepeto.projectOrder.status.required" /> + </field-validator> + </field> <field name="beginDate"> <field-validator type="requiredstring"> <message key="chorem.gepeto.projectOrder.beginDate.required" /> @@ -31,4 +36,14 @@ <message key="chorem.date.wrongFormat" /> </field-validator> </field> + <field name="companyName"> + <field-validator type="requiredstring"> + <message key="chorem.gepeto.projectOrder.companyName.required" /> + </field-validator> + </field> + <field name="companyType"> + <field-validator type="requiredstring"> + <message key="chorem.gepeto.projectOrder.companyType.required" /> + </field-validator> + </field> </validators> 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 09:34:00 UTC (rev 69) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-08 12:40:37 UTC (rev 70) @@ -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.entities.ProjectOrder" %> +<%@page import="org.chorem.gepeto.ProjectOrderFull" %> <%@taglib prefix="s" uri="/struts-tags" %> <html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" @@ -31,26 +31,26 @@ <br /> <br /> <% - ProjectOrder projectOrder = QuotationAction.getAction().getProjectOrder(); + ProjectOrderFull 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.getBeginDate() %></s:param> + <s:param><%= projectOrder.getProjectOrder().getBeginDate() %></s:param> </s:text> <br /> <s:text name="chorem.billy.quotation.projectOrder.endDate"> - <s:param><%= projectOrder.getEndDate() %></s:param> + <s:param><%= projectOrder.getProjectOrder().getEndDate() %></s:param> </s:text> <br /> <s:text name="chorem.billy.quotation.projectOrder.type"> - <s:param><%= projectOrder.getType() %></s:param> + <s:param><%= projectOrder.getProjectOrder().getType() %></s:param> </s:text> <br /> <s:text name="chorem.billy.quotation.projectOrder.company"> - <s:param><%= projectOrder.getCompany() %></s:param> + <s:param><%= projectOrder.getCompany().getName() %></s:param> </s:text> <br /> <% } else { %> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp 2011-04-08 09:34:00 UTC (rev 69) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp 2011-04-08 12:40:37 UTC (rev 70) @@ -27,10 +27,16 @@ <s:textarea key="chorem.gepeto.projectOrder.description" name="description" cols="50" rows="10" labelposition="top" /> <br /> <br /> + <s:textfield key="chorem.gepeto.projectOrder.status" name="status" labelSeparator=": " /> + <br /> <s:textfield key="chorem.gepeto.projectOrder.beginDate" name="beginDate" labelSeparator=": " /> <br /> <s:textfield key="chorem.gepeto.projectOrder.estimatedEndDate" name="estimatedEndDate" labelSeparator=": " /> <br /> + <s:textfield key="chorem.gepeto.projectOrder.company.name" name="companyName" labelSeparator=": " /> + <br /> + <s:textfield key="chorem.gepeto.projectOrder.company.type" name="companyType" labelSeparator=": " /> + <br /> <s:submit key="chorem.gepeto.projectOrder.add" name="submit" /> </fieldset> </form>