r61 - in trunk/chorem-web/src/main: java/org/chorem/gepeto/action resources resources/i18n resources/org/chorem/gepeto/action webapp/WEB-INF/jsp/billy webapp/WEB-INF/jsp/bonzoms webapp/WEB-INF/jsp/gepeto
Author: vbriand Date: 2011-04-07 11:26:48 +0200 (Thu, 07 Apr 2011) New Revision: 61 Url: http://chorem.org/repositories/revision/chorem/61 Log: A project order can now be linked with a quotation Added: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml Removed: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-validation.xml Modified: 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/home.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/home.jsp 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-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/java/org/chorem/gepeto/action/ProjectOrderAction.java 2011-04-07 09:26:48 UTC (rev 61) @@ -3,13 +3,16 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.UUID; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.ChoremProxy; import org.chorem.action.BaseAction; import org.chorem.entities.ProjectOrderImpl; +import org.chorem.entities.Quotation; +import com.opensymphony.xwork2.ActionContext; import static org.nuiton.i18n.I18n.n_; /** @@ -22,7 +25,11 @@ private static final long serialVersionUID = -5469320345746533520L; private static final Log log = LogFactory.getLog(ProjectOrderAction.class); - + + static public ProjectOrderAction getAction() { + return (ProjectOrderAction)ActionContext.getContext().get(CONTEXT_ACTION_KEY); + } + /** * Adds a new project order * @@ -32,17 +39,64 @@ */ public String add() { String result = INPUT; - - 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; + ChoremProxy proxy = getChoremProxy(); + System.out.println("WTF???"); + try { + if (quotationId == null) { + result = ERROR; + } else { + //If quotationId isn't a valid UUID, an exception is thrown + UUID.fromString(quotationId); + + Quotation quotation = proxy.restore(Quotation.class, quotationId); + + if (quotation == null) { //If the quotationId doesn't exist + result = ERROR; } 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; + } + } + } + } + } + } catch (IllegalArgumentException e) { + result = ERROR; + } + return result; + } + public String execute() { + System.out.println("YAAAAAAAAAAAAAAAAAAAAA"); + return SUCCESS; + } + + public String input() { + String result = INPUT; + ChoremProxy proxy = getChoremProxy(); + System.out.println("GRRRRRRRRRRRRRRRRRRRRRRR"); + try { + if (quotationId == null) { + result = ERROR; + } else { + UUID.fromString(quotationId); + + Quotation quotation = proxy.restore(Quotation.class, quotationId); + + if (quotation == null) { result = ERROR; + } else { + quotationReference = quotation.getReference(); } } + } catch (IllegalArgumentException e) { + result = ERROR; } return result; } @@ -51,6 +105,8 @@ protected String description; protected String beginDate; protected String estimatedEndDate; + protected String quotationId; + protected String quotationReference; /** * Stores the new project order through the proxy @@ -68,6 +124,7 @@ newProjectOrder.setType(type); newProjectOrder.setDescription(description); + newProjectOrder.setQuotation(quotationId); //Lenient mode disabled because results may be very odd formatter.setLenient(false); @@ -165,4 +222,32 @@ public void setEstimatedEndDate(String estimatedEndDate) { this.estimatedEndDate = estimatedEndDate; } -} + + /** + * @return the quotationId + */ + public String getQuotationId() { + return quotationId; + } + + /** + * @param quotationId the quotationId to set + */ + public void setQuotationId(String quotationId) { + this.quotationId = quotationId; + } + + /** + * @return the quotationReference + */ + public String getQuotationReference() { + return quotationReference; + } + + /** + * @param quotationReference the quotationReference to set + */ + public void setQuotationReference(String quotationReference) { + this.quotationReference = quotationReference; + } +} \ 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-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_en_GB.properties 2011-04-07 09:26:48 UTC (rev 61) @@ -1,9 +1,9 @@ chorem.beginDate.beforeToday=The date cannot be set before today''s date chorem.billy.home=Home -chorem.billy.quotation=Quotation +chorem.billy.quotation=Quotation \#{0} chorem.billy.quotation.add=Add a new quotation +chorem.billy.quotation.addProjectOrder= chorem.billy.quotation.addToProject=Add a new quotation to the project "{0}" -chorem.billy.quotation.amound= chorem.billy.quotation.amount=Amount chorem.billy.quotation.backToProjectDetails=Get back to project chorem.billy.quotation.create.error=An error occurred while creating your new quotation, please try again. If the problem persists, please contact an administrator @@ -95,6 +95,7 @@ chorem.gepeto.projectDetails.title=Details of project "{0}" chorem.gepeto.projectOrder=Project order chorem.gepeto.projectOrder.add=Add a new project order +chorem.gepeto.projectOrder.addToQuotation=Add a new project order to the quotation \#{0} 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.create.error=An error occurred while creating your new project order, please try again. If the problem persists, please contact an administrator @@ -104,6 +105,7 @@ chorem.gepeto.projectOrder.estimatedEndDate.required=You must enter the estimated end date for this project order 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 chorem.gepeto.projectsByYear.thead.company=Company chorem.gepeto.projectsByYear.thead.end=End chorem.gepeto.projectsByYear.thead.name=Name 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-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/resources/i18n/chorem-web_fr_FR.properties 2011-04-07 09:26:48 UTC (rev 61) @@ -1,9 +1,9 @@ chorem.beginDate.beforeToday=La date entr\u00E9e ne peut \u00EAtre ant\u00E9rieure \u00E0 la date du jour chorem.billy.home=Accueil -chorem.billy.quotation=Devis +chorem.billy.quotation=Devis \#{0} chorem.billy.quotation.add=Ajouter un nouveau devis +chorem.billy.quotation.addProjectOrder= chorem.billy.quotation.addToProject=Ajouter un nouveau devis au projet "{0}" -chorem.billy.quotation.amound= chorem.billy.quotation.amount=Montant chorem.billy.quotation.backToProjectDetails=Retourner sur le projet chorem.billy.quotation.create.error=Une erreur s''est produite lors de la cr\u00E9ation de votre nouveau devis, merci d''essayer \u00E0 nouveau. Si le probl\u00E8me se reproduit, merci de contacter un administrateur @@ -91,6 +91,7 @@ chorem.gepeto.projectDetails.title=D\u00E9tails du projet "{0}" chorem.gepeto.projectOrder=Contrat de commande d''un projet chorem.gepeto.projectOrder.add=Ajouter le contrat d''un projet +chorem.gepeto.projectOrder.addToQuotation=Lier un nouveau contrat au devis \#{0} 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.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 @@ -100,6 +101,7 @@ chorem.gepeto.projectOrder.estimatedEndDate.required=Vous devez renseigner la date de fin estim\u00E9e du contrat 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 chorem.gepeto.projectsByYear.thead.company=Demandeur chorem.gepeto.projectsByYear.thead.end=Fin chorem.gepeto.projectsByYear.thead.name=Nom Copied: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml (from rev 60, trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-validation.xml) =================================================================== --- trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml (rev 0) +++ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml 2011-04-07 09:26:48 UTC (rev 61) @@ -0,0 +1,34 @@ +<!DOCTYPE validators PUBLIC + "-//OpenSymphony Group//XWork Validator 1.0.2//EN" + "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> + +<validators> + <field name="type"> + <field-validator type="requiredstring"> + <message key="chorem.gepeto.projectOrder.type.required" /> + </field-validator> + </field> + <field name="description"> + <field-validator type="requiredstring"> + <message key="chorem.gepeto.projectOrder.description.required" /> + </field-validator> + </field> + <field name="beginDate"> + <field-validator type="requiredstring"> + <message key="chorem.gepeto.projectOrder.beginDate.required" /> + </field-validator> + <field-validator type="regex"> + <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param> + <message key="chorem.date.wrongFormat" /> + </field-validator> + </field> + <field name="estimatedEndDate"> + <field-validator type="requiredstring"> + <message key="chorem.gepeto.projectOrder.estimatedEndDate.required" /> + </field-validator> + <field-validator type="regex"> + <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param> + <message key="chorem.date.wrongFormat" /> + </field-validator> + </field> +</validators> Property changes on: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-addProjectOrder-validation.xml ___________________________________________________________________ Added: svn:mime-type + text/plain Deleted: trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-validation.xml =================================================================== --- trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-validation.xml 2011-04-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/resources/org/chorem/gepeto/action/ProjectOrderAction-validation.xml 2011-04-07 09:26:48 UTC (rev 61) @@ -1,34 +0,0 @@ -<!DOCTYPE validators PUBLIC - "-//OpenSymphony Group//XWork Validator 1.0.2//EN" - "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> - -<validators> - <field name="type"> - <field-validator type="requiredstring"> - <message key="chorem.gepeto.projectOrder.type.required" /> - </field-validator> - </field> - <field name="description"> - <field-validator type="requiredstring"> - <message key="chorem.gepeto.projectOrder.description.required" /> - </field-validator> - </field> - <field name="beginDate"> - <field-validator type="requiredstring"> - <message key="chorem.gepeto.projectOrder.beginDate.required" /> - </field-validator> - <field-validator type="regex"> - <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param> - <message key="chorem.date.wrongFormat" /> - </field-validator> - </field> - <field name="estimatedEndDate"> - <field-validator type="requiredstring"> - <message key="chorem.gepeto.projectOrder.estimatedEndDate.required" /> - </field-validator> - <field-validator type="regex"> - <param name="expression"><![CDATA[([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})]]></param> - <message key="chorem.date.wrongFormat" /> - </field-validator> - </field> -</validators> Modified: trunk/chorem-web/src/main/resources/struts.xml =================================================================== --- trunk/chorem-web/src/main/resources/struts.xml 2011-04-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/resources/struts.xml 2011-04-07 09:26:48 UTC (rev 61) @@ -18,7 +18,7 @@ <action name="home"> <result>/WEB-INF/jsp/bonzoms/home.jsp</result> </action> - <action name="addCompany_input"> + <action name="addCompanyInput"> <result>/WEB-INF/jsp/bonzoms/addCompany.jsp</result> </action> <action name="addCompany" class="org.chorem.bonzoms.action.CompanyAction" method="add"> @@ -26,7 +26,7 @@ <result name="error">/WEB-INF/jsp/bonzoms/addCompany.jsp</result> <result type="redirectAction">home</result> </action> - <action name="addPerson_input"> + <action name="addPersonInput"> <result>/WEB-INF/jsp/bonzoms/addPerson.jsp</result> </action> <action name="addPerson" class="org.chorem.bonzoms.action.PersonAction" method="add"> @@ -34,7 +34,7 @@ <result name="error">/WEB-INF/jsp/bonzoms/addPerson.jsp</result> <result type="redirectAction">home</result> </action> - <action name="addContactDetails_input"> + <action name="addContactDetailsInput"> <result>/WEB-INF/jsp/bonzoms/addContactDetails.jsp</result> </action> <action name="addContactDetails" class="org.chorem.bonzoms.action.ContactDetailsAction" method="add"> @@ -42,7 +42,7 @@ <result name="error">/WEB-INF/jsp/bonzoms/addContactDetails.jsp</result> <result type="redirectAction">home</result> </action> - <action name="addEmploymentContract_input"> + <action name="addEmploymentContractInput"> <result>/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp</result> </action> <action name="addEmploymentContract" class="org.chorem.bonzoms.action.EmploymentContractAction" method="add"> @@ -57,7 +57,7 @@ <action name="home"> <result>/WEB-INF/jsp/gepeto/home.jsp</result> </action> - <action name="addProject_input"> + <action name="addProjectInput"> <result>/WEB-INF/jsp/gepeto/addProject.jsp</result> </action> <action name="addProject" class="org.chorem.gepeto.action.ProjectAction" method="add"> @@ -68,7 +68,7 @@ <action name="removeProject" class="org.chorem.gepeto.action.ProjectAction" method="delete"> <result type="redirectAction">home</result> </action> - <action name="addTask_input"> + <action name="addTaskInput"> <result>/WEB-INF/jsp/gepeto/addTask.jsp</result> </action> <action name="addTask" class="org.chorem.gepeto.action.TaskAction" method="add"> @@ -76,12 +76,13 @@ <result name="error">/WEB-INF/jsp/gepeto/addTask.jsp</result> <result type="redirectAction">home</result> </action> - <action name="addProjectOrder_input"> - <result>/WEB-INF/jsp/gepeto/addProjectOrder.jsp</result> + <action name="addProjectOrderInput" class="org.chorem.gepeto.action.ProjectOrderAction" method="add"> + <result name="input">/WEB-INF/jsp/gepeto/addProjectOrder.jsp</result> + <result name="error" type="redirectAction">home</result> </action> <action name="addProjectOrder" class="org.chorem.gepeto.action.ProjectOrderAction" method="add"> <result name="input">/WEB-INF/jsp/gepeto/addProjectOrder.jsp</result> - <result name="error">/WEB-INF/jsp/gepeto/addProjectOrder.jsp</result> + <result name="error" type="redirectAction">home</result> <result type="redirectAction">home</result> </action> <action name="getProjectsByYear" class="org.chorem.gepeto.action.ProjectAction"> @@ -100,6 +101,7 @@ </action> <action name="addQuotationInput" class="org.chorem.billy.action.QuotationAction" method="add"> <result name="input">/WEB-INF/jsp/billy/addQuotation.jsp</result> + <result name="error" type="redirectAction">home</result> </action> <action name="addQuotation" class="org.chorem.billy.action.QuotationAction" method="add"> <result name="input">/WEB-INF/jsp/billy/addQuotation.jsp</result> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/home.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/home.jsp 2011-04-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/home.jsp 2011-04-07 09:26:48 UTC (rev 61) @@ -8,6 +8,6 @@ <s:head /> </head> <body> - <s:a action="addQuotation_input"><s:text name="chorem.billy.quotation.add" /></s:a><br /> + <s:a action="addQuotationInput"><s:text name="chorem.billy.quotation.add" /></s:a><br /> </body> </html> 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-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/billy/quotationDetails.jsp 2011-04-07 09:26:48 UTC (rev 61) @@ -29,9 +29,14 @@ <s:textfield readonly="true" name="postedDate" key="chorem.billy.quotation.postedDate" labelSeparator=": " /> <br /> <br /> + <s:url namespace="/gepeto" action="addProjectOrderInput" var="addProjectOrder"> + <s:param name="quotationId"><%= QuotationAction.getAction().getQuotationId() %></s:param> + </s:url> <s:url namespace="/gepeto" action="projectDetails" var="projectDetails"> <s:param name="projectId"><%= QuotationAction.getAction().getProjectId() %></s:param> </s:url> + <a href="${addProjectOrder}"><s:text name="chorem.billy.quotation.addProjectOrder" /></a> + <br /> <a href="${projectDetails}"><s:text name="chorem.billy.quotation.backToProjectDetails" /></a> </p> </body> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp 2011-04-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/home.jsp 2011-04-07 09:26:48 UTC (rev 61) @@ -8,8 +8,8 @@ <s:head /> </head> <body> - <s:a action="addCompany_input"><s:text name="chorem.bonzoms.company.add" /></s:a><br /> - <s:a action="addEmploymentContract_input"><s:text name="chorem.bonzoms.employmentContract.add" /></s:a><br /> - <s:a action="addPerson_input"><s:text name="chorem.bonzoms.person.add" /></s:a> + <s:a action="addCompanyInput"><s:text name="chorem.bonzoms.company.add" /></s:a><br /> + <s:a action="addEmploymentContractInput"><s:text name="chorem.bonzoms.employmentContract.add" /></s:a><br /> + <s:a action="addPersonInput"><s:text name="chorem.bonzoms.person.add" /></s:a> </body> </html> 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-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/addProjectOrder.jsp 2011-04-07 09:26:48 UTC (rev 61) @@ -1,4 +1,5 @@ <%@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" @@ -8,9 +9,16 @@ <s:head /> </head> <body> - <h2><s:text name="chorem.gepeto.projectOrder.add" /></h2> + <h2> + <s:text name="chorem.gepeto.projectOrder.addToQuotation"> + <s:param><%= ProjectOrderAction.getAction().getQuotationReference() %></s:param> + </s:text> + </h2> <s:actionerror /> - <s:form action="addProjectOrder" method="post"> + <s:url action="addProjectOrder" var="addProjectOrder"> + <s:param name="quotationId"><%= ProjectOrderAction.getAction().getQuotationId() %></s:param> + </s:url> + <form action="${addProjectOrder}" method="post"> <fieldset> <legend><s:text name="chorem.gepeto.projectOrder" /></legend> <s:textfield key="chorem.gepeto.projectOrder.type" name="type" labelSeparator=": " /> @@ -25,6 +33,6 @@ <br /> <s:submit key="chorem.gepeto.projectOrder.add" name="submit" /> </fieldset> - </s:form> + </form> </body> </html> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/home.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/home.jsp 2011-04-06 16:43:43 UTC (rev 60) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/gepeto/home.jsp 2011-04-07 09:26:48 UTC (rev 61) @@ -8,9 +8,9 @@ <s:head /> </head> <body> - <s:a action="addProject_input"><s:text name="chorem.gepeto.project.add" /></s:a><br /> - <s:a action="addProjectOrder_input"><s:text name="chorem.gepeto.projectOrder.add" /></s:a><br /> - <s:a action="addTask_input"><s:text name="chorem.gepeto.task.add" /></s:a><br /> + <s:a action="addProjectInput"><s:text name="chorem.gepeto.project.add" /></s:a><br /> + <s:a action="addProjectOrderInput"><s:text name="chorem.gepeto.projectOrder.add" /></s:a><br /> + <s:a action="addTaskInput"><s:text name="chorem.gepeto.task.add" /></s:a><br /> <s:a action="getProjectsByYear"><s:text name="chorem.gepeto.projects" /></s:a><br /> </body> </html>
participants (1)
-
vbriand@users.chorem.org