Implement new screen and Java event to create an account reconciliation -----------------------------------------------------------------------
Key: OFBIZ-1494 URL: https://issues.apache.org/jira/browse/OFBIZ-1494 Project: OFBiz Issue Type: Sub-task Components: accounting Affects Versions: SVN trunk Reporter: Jacopo Cappellato Implement new screen and Java event to create an account reconciliation (for example a bank reconciliation). For a general description about the process: http://en.wikipedia.org/wiki/Bank_reconciliation Task details: 1) add a new menu item "Account Reconciliation" to the Accounting>General Ledger>Accounting menu; the menu item will open the screen described at point #2 2) implement a new screen composed by a search form at the top and a multi form at the bottom 2.1) the (single) search form is composed by: 2.1.1) a drop down (allow-empty= false) with all the GL accounts associated to the organization 2.1.2) a search button 2.2) the multi form will only be visible when the first form has been submitted; the list will show all the AcctgTransEntry records associated to the selected account (sorted by ascending date) with reconcileStatusId field set to "not reconciled"; each row will have a checkbox; at the end of the list a submit button "Create Account Reconciliation" 2.3) (OPTIONAL) it would be cool to add some Javascript (or Ajax?) magic to display, at the bottom of the page the total of all the selected records (use the amount field where D counts as + and C as -) 3) create a Java event (not necessarily a service, a controller event is probably easier) and that will receive data from the multi form at point 2.2 and: 3.1) for each row selected it will retrieve the corresponding AcctgTransEntry and add it to a List (NOTE/HINTS: there are some utils methods to easily retrieve/parse fields submitted by a multi form... let me know if you don't find them) 3.2) compute the total of all the AcctgTransEntry.amount of the entries in the list (where D counts as + and C as -) 3.3) call the service "createGlReconciliation" with the following input fields: glReconciliationName="the 'now' timestamp", glAccountId, organizationPartyId, reconciledDate=now, reconciledBalance=the number computed in #3.2; save the output parameter glReconciliationId 3.4) iterate the list of entries created in #3.1 and for each one call the service "createGlReconciliationEntry" with the following input fields: glReconciliationId= the value returned at #3.3, acctgTransId, acctgTransEntrySeqId, reconciledAmount=AcctgTransEntry.amount 3.5) put in the context/parameters the glReconciliationId 4) set the controller entries so that, after the event described at #3 is successfully executed, redirect to a new screen "Edit GL Reconciliation" (described in #5); on error return at the screen described in #2 5) implement a new screen "Edit GL Reconciliation" that takes as input a glReconciliationId and is composed by: 5.1) an editable form that display the content of the GlReconciliation entry; the only editable fields will be: glReconciliationName, description, reconciledDate; all the other fields will be visible only; once submitted, the three fields will be updated ("updateGlReconciliation") 5.2) a list (non editable) of all the GlReconciliationEntry records associated with the glReconciliationId 6) add a new menu item "Account Reconciliations" to the Accounting>General Ledger>Accounting menu; the menu item will open the screen described at point #7 7) implement a new screen composed by a search form at the top and a multi form at the bottom 7.1) the (single) search form is composed by: 7.1.1) a drop down (allow-empty= false) with all the GL accounts associated to the organization 7.1.2) from/thru dates 7.1.3) a search button 7.2) a list form (visible when the first form has been submitted) that lists all the GlReconciliation records that match the search parameters; the glReconciliationId field will be an hyperlink to open the "Edit Gl Reconciliation" screen (implemented in #5; the highlighted menu should not change) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.