Author: vbriand Date: 2011-04-22 17:00:28 +0200 (Fri, 22 Apr 2011) New Revision: 108 Url: http://chorem.org/repositories/revision/chorem/108 Log: The project order can now be modified Modified: trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.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_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/projectOrderDetails.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-22 13:20:52 UTC (rev 107) +++ trunk/chorem-web/src/main/java/org/chorem/billy/action/QuotationAction.java 2011-04-22 15:00:28 UTC (rev 108) @@ -139,6 +139,7 @@ quotation.setAmount(Double.parseDouble(amount)); quotation.setVTA(Double.parseDouble(vta)); + //Lenient mode disabled because results may be very odd formatter.setLenient(false); try { quotation.setPostedDate(formatter.parse(postedDate)); Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java 2011-04-22 13:20:52 UTC (rev 107) +++ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/CompanyAction.java 2011-04-22 15:00:28 UTC (rev 108) @@ -159,7 +159,6 @@ newContactDetails.setValue(phoneNb); newContactDetails.setTarget(company.getWikittyId()); proxy.store(newContactDetails); - System.out.println(newContactDetails); } //Website added 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-22 13:20:52 UTC (rev 107) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectAction.java 2011-04-22 15:00:28 UTC (rev 108) @@ -251,7 +251,6 @@ projectFull.setQuotation(quotation); project = proxy.restore(Project.class, quotation.getProject()); projectFull.setProject(project); - System.out.println(project.getName()+"]]]"+project.getWikittyId()); projects.add(projectFull); } } 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-22 13:20:52 UTC (rev 107) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-22 15:00:28 UTC (rev 108) @@ -104,14 +104,16 @@ projectOrderId); if (projectOrder != null) { //If the projectOrderId exists - setBeginDate(projectOrder.getBeginDate().toString()); + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); + setBeginDate(formatter.format(projectOrder.getBeginDate())); + Company company = proxy.restore(Company.class, projectOrder.getCompany()); setCompany(company); setDescription(projectOrder.getDescription()); - setEstimatedEndDate(projectOrder.getEndDate().toString()); + setEstimatedEndDate(formatter.format(projectOrder.getEndDate())); setStatus(projectOrder.getStatus()); setType(projectOrder.getType()); @@ -132,6 +134,68 @@ return result; } + /** + * Modifies the project order's information + * + * @return SUCCESS if the project has been modified successfully, + * INPUT if the date format is incorrect, + * ERROR if the id is invalid + */ + public String modify() { + String result = SUCCESS; + ProjectOrder projectOrder; + ChoremProxy proxy = getChoremProxy(); + + projectOrder = proxy.restore(ProjectOrder.class, projectOrderId); + if (projectOrder != null) { //If the id exists + SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); + + //This is tested manually instead of using a validator because + //otherwise the company is not set (the validator returns INPUT and + //does not launch any method) and it leads to a null pointer + //exception + if (type.isEmpty()) { + result = INPUT; + addFieldError("type", getText(n_("chorem.field.required"))); + } + if (beginDate.isEmpty()) { + result = INPUT; + addFieldError("beginDate", getText(n_("chorem.field.required"))); + } + if (estimatedEndDate.isEmpty()) { + result = INPUT; + addFieldError("endDate", getText(n_("chorem.field.required"))); + } + + //Lenient mode disabled because results may be very odd + formatter.setLenient(false); + try { + projectOrder.setBeginDate(formatter.parse(beginDate)); + } catch (ParseException e) { + result = INPUT; + addFieldError("beginDate", getText(n_("chorem.date.wrongFormat"))); + } + try { + projectOrder.setEndDate(formatter.parse(estimatedEndDate)); + } catch (ParseException e) { + result = INPUT; + addFieldError("estimatedEndDate", getText(n_("chorem.date.wrongFormat"))); + } + projectOrder.setType(type); + if (result.equals(SUCCESS)) { + proxy.store(projectOrder); + } else if (result.equals(INPUT)) { + Company company = proxy.restore(Company.class, + projectOrder.getCompany()); + + setCompany(company); + } + } else { + result = ERROR; + } + return result; + } + protected String type; protected String description; protected String status; 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-22 13:20:52 UTC (rev 107) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-22 15:00:28 UTC (rev 108) @@ -106,9 +106,9 @@ chorem.gepeto.projectOrder.invalidCompany= chorem.gepeto.projectOrder.status=Statut chorem.gepeto.projectOrder.type=Type -chorem.gepeto.projectOrderDetails.beginDate=Date de d\u00E9but \: {0} +chorem.gepeto.projectOrderDetails.beginDate=Date de d\u00E9but chorem.gepeto.projectOrderDetails.companyName=Nom de la soci\u00E9t\u00E9 \: {0} -chorem.gepeto.projectOrderDetails.endDate=Date de fin \: {0} +chorem.gepeto.projectOrderDetails.endDate=Date de fin chorem.gepeto.projectOrderDetails.quotation=Contrat r\u00E9alis\u00E9 sur la base du devis \#{0} chorem.gepeto.projectOrderDetails.task.beginDate=D\u00E9but de la t\u00E2che \: {0} chorem.gepeto.projectOrderDetails.task.endDate=Fin de la t\u00E2che \: {0} @@ -117,7 +117,7 @@ chorem.gepeto.projectOrderDetails.task.status=Statut de la t\u00E2che \: {0} chorem.gepeto.projectOrderDetails.tasks=T\u00E2ches li\u00E9es au contrat chorem.gepeto.projectOrderDetails.title=D\u00E9tails du contrat -chorem.gepeto.projectOrderDetails.type=Type de contrat \: {0} +chorem.gepeto.projectOrderDetails.type=Type de contrat chorem.gepeto.projects=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-22 13:20:52 UTC (rev 107) +++ trunk/chorem-web/src/main/resources/struts.xml 2011-04-22 15:00:28 UTC (rev 108) @@ -124,12 +124,22 @@ </action> <action name="modifyProject" class="org.chorem.gepeto.action.ProjectAction" method="modify"> <result name="input">/WEB-INF/jsp/gepeto/projectDetails.jsp</result> + <result name="error" type="redirectAction">home</result> <result type="redirectAction"> <param name="actionName">projectDetails</param> <param name="namespace">/gepeto</param> <param name="projectId">${projectId}</param> </result> </action> + <action name="modifyProjectOrder" class="org.chorem.gepeto.action.ProjectOrderAction" method="modify"> + <result name="input">/WEB-INF/jsp/gepeto/projectOrderDetails.jsp</result> + <result name="error" type="redirectAction">home</result> + <result type="redirectAction"> + <param name="actionName">projectOrderDetails</param> + <param name="namespace">/gepeto</param> + <param name="projectOrderId">${projectOrderId}</param> + </result> + </action> </package> <package name="billy" namespace="/billy" extends="struts-default"> 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-22 13:20:52 UTC (rev 107) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-22 15:00:28 UTC (rev 108) @@ -31,7 +31,7 @@ <br /> <s:textfield name="vta" key="chorem.billy.quotation.vta" labelSeparator=": " size="2" />% <br /> - <s:textfield name="postedDate" key="chorem.billy.quotation.postedDate" labelSeparator=": " /> + <s:textfield name="postedDate" key="chorem.billy.quotation.postedDate" labelSeparator=": " size="7" /> <br /> <s:submit key="chorem.misc.modify" name="modify" /> </p> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-22 13:20:52 UTC (rev 107) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/projectOrderDetails.jsp 2011-04-22 15:00:28 UTC (rev 108) @@ -14,19 +14,7 @@ </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:url namespace="/bonzoms" action="companyDetails" var="companyDetails"> + <s:url namespace="/bonzoms" action="companyDetails" var="companyDetails"> <s:param name="companyId"><%= ProjectOrderAction.getAction().getCompany().getWikittyId() %></s:param> </s:url> <s:text name="chorem.gepeto.projectOrderDetails.companyName"> @@ -43,11 +31,23 @@ <a href="${quotationDetails}"><%= ProjectOrderAction.getAction().getQuotationReference() %></a> </s:param> </s:text> + <s:url action="modifyProjectOrder" var="modifyProjectOrder"> + <s:param name="projectOrderId"><%= ProjectOrderAction.getAction().getProjectOrderId() %></s:param> + </s:url> + <form action="${modifyProjectOrder}" method="post"> + <p> + <s:textfield name="beginDate" key="chorem.gepeto.projectOrderDetails.beginDate" labelSeparator=": " size="7" /> + <br /> + <s:textfield name="estimatedEndDate" key="chorem.gepeto.projectOrderDetails.endDate" labelSeparator=": " size="7" /> + <br /> + <s:textfield name="type" key="chorem.gepeto.projectOrderDetails.type" labelSeparator=": " size="4" /> + <br /> + <s:submit key="chorem.misc.modify" name="modify" /> + </p> + </form> <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>