r117 - in trunk/chorem-web/src/main: java/org/chorem/bonzoms/action resources webapp/WEB-INF/jsp/bonzoms
Author: vbriand Date: 2011-04-29 16:02:10 +0200 (Fri, 29 Apr 2011) New Revision: 117 Url: http://chorem.org/repositories/revision/chorem/117 Log: Added the possibility to add and update the employment contracts of a person Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmployeeAction.java trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmploymentContractAction.java trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/PersonAction.java trunk/chorem-web/src/main/resources/struts.xml trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmployeeAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmployeeAction.java 2011-04-29 10:18:43 UTC (rev 116) +++ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmployeeAction.java 2011-04-29 14:02:10 UTC (rev 117) @@ -48,6 +48,9 @@ employee.setDiploma(diploma); try { employee.setPaidLeave(Float.parseFloat(paidLeave)); + if (employee.getPaidLeave() < 0) { + throw new NumberFormatException(); + } } catch (NumberFormatException e) { result = INPUT; addActionError( @@ -55,6 +58,9 @@ } try { employee.setRtt(Float.parseFloat(rtt)); + if (employee.getRtt() < 0) { + throw new NumberFormatException(); + } } catch (NumberFormatException e) { result = INPUT; addActionError( @@ -67,8 +73,26 @@ employee.setPerson(personId); employee.setDiploma(diploma); - employee.setPaidLeave(Float.parseFloat(paidLeave)); - employee.setRtt(Float.parseFloat(rtt)); + try { + employee.setPaidLeave(Float.parseFloat(paidLeave)); + if (employee.getPaidLeave() < 0) { + throw new NumberFormatException(); + } + } catch (NumberFormatException e) { + result = INPUT; + addActionError( + getText(n_("chorem.bonzoms.employee.paidLeave.wrongFormat"))); + } + try { + employee.setRtt(Float.parseFloat(rtt)); + if (employee.getRtt() < 0) { + throw new NumberFormatException(); + } + } catch (NumberFormatException e) { + result = INPUT; + addActionError( + getText(n_("chorem.bonzoms.employee.rtt.wrongFormat"))); + } proxy.store(employee); } else { result = ERROR; Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmploymentContractAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmploymentContractAction.java 2011-04-29 10:18:43 UTC (rev 116) +++ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/EmploymentContractAction.java 2011-04-29 14:02:10 UTC (rev 117) @@ -111,6 +111,7 @@ protected String beginDate; protected String endDate; protected String personId; + protected String employeeId; protected String employmentContractId; /** @@ -144,6 +145,26 @@ } /** + * Retrieves the employment contract linked with the id + * + * @return the employment contract + */ + public EmploymentContractFull getEmploymentContract() { + EmployeeFull employee; + ChoremProxy proxy = getChoremProxy(); + EmploymentContract employmentContract; + EmploymentContractFull employmentContractFull = new EmploymentContractFull(); + + employmentContract = proxy.restore(EmploymentContract.class, + employmentContractId); + employmentContractFull.setEmploymentContract(employmentContract); + employee = EmployeeFull.initEmployee(employmentContract.getEmployee(), + proxy); + employmentContractFull.setEmployee(employee); + return employmentContractFull; + } + + /** * Stores the new employment contract through the proxy * * @return true if the employment contract has been stored properly, @@ -151,7 +172,7 @@ */ protected boolean addEmploymentContract() { boolean result = true; - + try { ChoremProxy proxy = getChoremProxy(); EmploymentContractImpl newEmploymentContract = new EmploymentContractImpl(); @@ -191,7 +212,8 @@ newEmploymentContract.setSalary(Float.parseFloat(salary)); newEmploymentContract.setType(type); newEmploymentContract.setWorkingTime(Integer.parseInt(workingTime)); - + newEmploymentContract.setEmployee(employeeId); + //If everything went smoothly if (result) { proxy.store(newEmploymentContract); @@ -315,4 +337,18 @@ public void setEmploymentContractId(String employmentContractId) { this.employmentContractId = employmentContractId; } + + /** + * @return the employeeId + */ + public String getEmployeeId() { + return employeeId; + } + + /** + * @param employeeId the employeeId to set + */ + public void setEmployeeId(String employeeId) { + this.employeeId = employeeId; + } } Modified: trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/PersonAction.java =================================================================== --- trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/PersonAction.java 2011-04-29 10:18:43 UTC (rev 116) +++ trunk/chorem-web/src/main/java/org/chorem/bonzoms/action/PersonAction.java 2011-04-29 14:02:10 UTC (rev 117) @@ -203,6 +203,8 @@ if (result) { result = storeEmployee(newPerson, result, proxy); if (result) { + //Useful to redirect the user directly to the person's page + setPersonId(newPerson.getWikittyId()); proxy.store(newPerson); } } Modified: trunk/chorem-web/src/main/resources/struts.xml =================================================================== --- trunk/chorem-web/src/main/resources/struts.xml 2011-04-29 10:18:43 UTC (rev 116) +++ trunk/chorem-web/src/main/resources/struts.xml 2011-04-29 14:02:10 UTC (rev 117) @@ -44,7 +44,11 @@ <action name="addPerson" class="org.chorem.bonzoms.action.PersonAction" method="add"> <result name="input">/WEB-INF/jsp/bonzoms/addPerson.jsp</result> <result name="error">/WEB-INF/jsp/bonzoms/addPerson.jsp</result> - <result type="redirectAction">home</result> + <result type="redirectAction"> + <param name="actionName">personDetails</param> + <param name="namespace">/bonzoms</param> + <param name="personId">${personId}</param> + </result> </action> <action name="personDetails" class="org.chorem.bonzoms.action.PersonAction" method="personDetails"> <result name="error" type="redirectAction">home</result> @@ -69,13 +73,17 @@ <result name="error">/WEB-INF/jsp/bonzoms/addContactDetails.jsp</result> <result type="redirectAction">home</result> </action> - <action name="addEmploymentContractInput"> + <action name="addEmploymentContractInput" class="org.chorem.bonzoms.action.EmploymentContractAction"> <result>/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp</result> </action> <action name="addEmploymentContract" class="org.chorem.bonzoms.action.EmploymentContractAction" method="add"> <result name="input">/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp</result> <result name="error">/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp</result> - <result type="redirectAction">home</result> + <result type="redirectAction"> + <param name="actionName">personDetails</param> + <param name="namespace">/bonzoms</param> + <param name="personId">${personId}</param> + </result> </action> <action name="modifyEmploymentContract" class="org.chorem.bonzoms.action.EmploymentContractAction" method="modify"> <result name="input">/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp</result> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp 2011-04-29 10:18:43 UTC (rev 116) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/addEmploymentContract.jsp 2011-04-29 14:02:10 UTC (rev 117) @@ -1,4 +1,5 @@ <%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="org.chorem.bonzoms.action.EmploymentContractAction" %> <%@taglib prefix="s" uri="/struts-tags" %> <html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" @@ -10,7 +11,11 @@ <body> <h2><s:text name="chorem.bonzoms.employmentContract.add" /></h2> <s:actionerror /> - <s:form action="addEmploymentContract" method="post"> + <s:url action="addEmploymentContract" var="addEmploymentContract"> + <s:param name="personId"><%= EmploymentContractAction.getAction().getPersonId() %></s:param> + <s:param name="employeeId"><%= EmploymentContractAction.getAction().getEmployeeId() %></s:param> + </s:url> + <form action="${addEmploymentContract}" method="post"> <fieldset> <legend><s:text name="chorem.bonzoms.employmentContract" /></legend> <s:textfield key="chorem.bonzoms.employmentContract.type" name="type" labelSeparator=": " /> @@ -29,6 +34,6 @@ <br /> <s:submit key="chorem.bonzoms.person.add" name="submit" /> </fieldset> - </s:form> + </form> </body> </html> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp 2011-04-29 10:18:43 UTC (rev 116) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetails.jsp 2011-04-29 14:02:10 UTC (rev 117) @@ -82,31 +82,40 @@ </s:url> <form action="${modifyEmploymentContract}" method="post"> <p> - <s:text name="chorem.bonzoms.employee.company" />: <%= employmentContractFull.getEmployee().getCompany().getName() %> - <br /> - <label for="type"><s:text name="chorem.bonzoms.employmentContract.type" /></label>: - <input type="text" name="type" id="type" value="<%= employmentContract.getType() %>" /> + <% if (employmentContractFull.getEmployee().getCompany() != null) { %> + <s:text name="chorem.bonzoms.employee.company" />: <%= employmentContractFull.getEmployee().getCompany().getName() %> + <br /> + <% } %> + <label for="type<%= employmentContract.getWikittyId() %>"><s:text name="chorem.bonzoms.employmentContract.type" /></label>: + <input type="text" name="type" id="type<%= employmentContract.getWikittyId() %>" value="<%= employmentContract.getType() %>" /> <br /> <br /> - <label for="description"><s:text name="chorem.bonzoms.employmentContract.description" /></label>: + <label for="description<%= employmentContract.getWikittyId() %>"><s:text name="chorem.bonzoms.employmentContract.description" /></label>: <br /> - <textarea name="description" id="description"><%= employmentContract.getDescription() %></textarea> + <textarea name="description" id="description<%= employmentContract.getWikittyId() %>"><%= employmentContract.getDescription() %></textarea> <br /> - <label for="salary"><s:text name="chorem.bonzoms.employmentContract.salary" /></label>: - <input type="text" name="salary" id="salary" value="<%= employmentContract.getSalary() %>" size="6" /> + <label for="salary<%= employmentContract.getWikittyId() %>"><s:text name="chorem.bonzoms.employmentContract.salary" /></label>: + <input type="text" name="salary" id="salary<%= employmentContract.getWikittyId() %>" value="<%= employmentContract.getSalary() %>" size="6" /> <br /> - <label for="workingTime"><s:text name="chorem.bonzoms.employmentContract.workingTime" /></label>: - <input type="text" name="workingTime" id="workingTime" value="<%= employmentContract.getWorkingTime() %>" size="2" /> + <label for="workingTime<%= employmentContract.getWikittyId() %>"><s:text name="chorem.bonzoms.employmentContract.workingTime" /></label>: + <input type="text" name="workingTime" id="workingTime<%= employmentContract.getWikittyId() %>" value="<%= employmentContract.getWorkingTime() %>" size="2" /> <br /> <s:submit key="chorem.misc.modify" name="modify" /> + <br /> + <br /> </p> </form> - <% } %> + <% + } + if (employee != null) { + %> <p> <s:url action="addEmploymentContractInput" var="addEmploymentContract"> <s:param name="personId"><%= person.getPersonId() %></s:param> + <s:param name="employeeId"><%= employee.getWikittyId() %></s:param> </s:url> <a href="${addEmploymentContract}"><s:text name="chorem.bonzoms.employmentContract.add" /></a> </p> + <% } %> </body> </html> Modified: trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp =================================================================== --- trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp 2011-04-29 10:18:43 UTC (rev 116) +++ trunk/chorem-web/src/main/webapp/WEB-INF/jsp/bonzoms/personDetailsEmploymentContract.jsp 2011-04-29 14:02:10 UTC (rev 117) @@ -17,39 +17,38 @@ <s:text name="chorem.bonzoms.person.employmentContracts" /> <br /> <% - List<EmploymentContractFull> employmentContractsFull = EmploymentContractAction.getAction().getEmploymentContracts(); + EmploymentContractFull employmentContractFull = EmploymentContractAction.getAction().getEmploymentContract(); EmploymentContract employmentContract; - for (EmploymentContractFull employmentContractFull : employmentContractsFull) { - %> - <% employmentContract = employmentContractFull.getEmploymentContract(); %> - <s:url action="modifyEmploymentContract" var="modifyEmploymentContract"> - <s:param name="employmentContractId"><%= employmentContract.getWikittyId() %></s:param> - <s:param name="personId"><%= employmentContractFull.getEmployee().getPerson().getWikittyId() %></s:param> - </s:url> - <s:actionerror /> - <form action="${modifyEmploymentContract}" method="post"> - <p> - <s:text name="chorem.bonzoms.employee.company" />: <%= employmentContractFull.getEmployee().getCompany().getName() %> - <br /> - <label for="type"><s:text name="chorem.bonzoms.employmentContract.type" /></label>: - <input type="text" name="type" id="type" value="<%= employmentContract.getType() %>" /> - <br /> - <br /> - <label for="description"><s:text name="chorem.bonzoms.employmentContract.description" /></label>: - <br /> - <textarea name="description" id="description"><%= employmentContract.getDescription() %></textarea> - <br /> - <label for="salary"><s:text name="chorem.bonzoms.employmentContract.salary" /></label>: - <input type="text" name="salary" id="salary" value="<%= employmentContract.getSalary() %>" size="6" /> - <br /> - <label for="workingTime"><s:text name="chorem.bonzoms.employmentContract.workingTime" /></label>: - <input type="text" name="workingTime" id="workingTime" value="<%= employmentContract.getWorkingTime() %>" size="2" /> - <br /> - <s:submit key="chorem.misc.modify" name="modify" /> - </p> - </form> - <% } %> + employmentContract = employmentContractFull.getEmploymentContract(); %> + <s:url action="modifyEmploymentContract" var="modifyEmploymentContract"> + <s:param name="employmentContractId"><%= employmentContract.getWikittyId() %></s:param> + <s:param name="personId"><%= employmentContractFull.getEmployee().getPerson().getWikittyId() %></s:param> + </s:url> + <s:actionerror /> + <form action="${modifyEmploymentContract}" method="post"> + <p> + <% if (employmentContractFull.getEmployee().getCompany() != null) { %> + <s:text name="chorem.bonzoms.employee.company" />: <%= employmentContractFull.getEmployee().getCompany().getName() %> + <br /> + <% } %> + <label for="type"><s:text name="chorem.bonzoms.employmentContract.type" /></label>: + <input type="text" name="type" id="type" value="<%= employmentContract.getType() %>" /> + <br /> + <br /> + <label for="description"><s:text name="chorem.bonzoms.employmentContract.description" /></label>: + <br /> + <textarea name="description" id="description"><%= employmentContract.getDescription() %></textarea> + <br /> + <label for="salary"><s:text name="chorem.bonzoms.employmentContract.salary" /></label>: + <input type="text" name="salary" id="salary" value="<%= employmentContract.getSalary() %>" size="6" /> + <br /> + <label for="workingTime"><s:text name="chorem.bonzoms.employmentContract.workingTime" /></label>: + <input type="text" name="workingTime" id="workingTime" value="<%= employmentContract.getWorkingTime() %>" size="2" /> + <br /> + <s:submit key="chorem.misc.modify" name="modify" /> + </p> + </form> </p> </body> </html>
participants (1)
-
vbriand@users.chorem.org