Projects:Accounting Report Review/Functional Documentation
Accounting Report Review
Every report in the financial management is going to be revised, checked and fixed, so:
A) Report name is correct (ie: balance sheet has been changed to trial balance. See 1884). This issue is going to be fixed by David Abragimov and Paul Ponomarev.
B) Sums are coherent (ie: currency conversions are correctly done where needed. See 4274).
C) Multiple languages are supported (ie: general accounting reports do not support it. See 2202, 2204, 3397).
D) The available filters are enough (ie: some reports have no Org filter. See 313, 2117, 3247, 3251, 3249 and 3256).
E) When deleting a conversion rate, display a message avoiding it if this conversion rate is in use.
F) When posting a document in a non-system currency, if no conversion is available, identify this error.
Reports involved in this review:
- Under Financial Management > Receivables & Payables > Analysis Tools
- Bank Report
- Cash Report
- Cashflow Forecast
- Payment Report
- Payment Aging Balance
- Invoice Taxes Report
- Payment Tracker
- Under Financial Management > Accounting > Analysis Tools
- Balance sheet and P&L structure
- Trial Balance Report
- General Ledger Report
- General Ledger Journal
- Not Posted Transaction Report
- User Defined Accounting Report
- Tax Report
- Withholding Report
- Cash Flow Statement
- Balance sheet and P&L structure Setup
- User Defined Accounting Report Setup
- Tax Report Setup
- Generate Cash Flow Statement
- Accounting Transaction Details
This project assumes that all the reports listed inside Scope section are working correctly. If this is not the case, see Constraints section.
Parts of this project will make use of the modifications performed in the currency management in the project Multi Currency Reports Review project.
Part of the technical documentation will be taken from Multi Currency Reports Review project.
A bug in any of the reports listed inside Scope section could stop this project. The procedure in this case will be:
- Report the bug in Openbravo's issues tracker.
- Correct the bug in the development trunk, not in the project branch.
- Merge the trunk (that will include the bug fix) to the project branch.
- Continue with the project development.
User roles & profiles
Financial controllers, accountants and managers of companies which have transactions in more than one currency: buying to providers, or selling to customers located in regions with a different currency.
Business process definition
Currency conversion rates:
- Define the conversion rate between euros and dollars, different from 1:1. Let's say, 2:1 (2€=$1).
- Create a sales price list in dollars with its price list version and its product prices (Master Data Management>Pricing>Price List).
- Create a sales price list in euros with its price list version and its product prices (Master Data Management>Pricing>Price List).
- Create a Sales Invoice in Sales Management>Transactions>Sales Invoice>Header, with dollars price list. Add some lines to it with a tax rate different to 0%. Save line, and complete document. '$D'(=[D/2]€) will be the tax amount obtained in the invoice.
- Create a Sales Invoice in Sales Management>Transactions>Sales Invoice>Header, with euros price list. Add some lines to it with a tax rate different to 0%. Save the line, and complete the document. 'E€'(=$2E) will be the tax amount obtained in the invoice.
- Create a Tax Report with one line in it, showing the sales taxes applied in the invoices.
- Show the tax report, choosing euros as currency: report must show a total of (E+D/2)€, and not a (E+D)€ amount.
- Show the tax report, choosing dollars as currency: report must show a total of $(D+2E), and not a $(E+D) amount.
User Story 1
The multinational company Conservas El Gordo & Co Ltd., located in London and trading in pounds, has been using Openbravo ERP for five years. The Jordan company Amman Ltd. becomes a new provider of this company, and sends purchase invoices in Jordan Dinars currency. This currency is created in the application, conversions created and updated periodically, and when obtaining financial reports, any of the existing currencies could be chosen to show the report.
User Story 2
The Italian company Il Bambino Ltd. is a prosperous family business using Openbravo ERP. The owners are interested in selling the company, and are receiving offers from different Italian competitors. Then a Russian multinational company wants to make an offer for Il Bambino Ltd, and need to have some financial reports in Russian Rubles, so company's administrator is able to understand reports obtained.
Russian translation is imported, and Rubles currency is activated. The actual currency conversion is set, and reports obtained and showed to Russian buyers.
Functional requirements based on business processes
A) Report names
Change the names and re-arrange accounting reports.
|A.1|| Change the following report names and re-arrange them:
Old Name => New Name
Final position in the menu:
In all the filter windows of the financial reports, apart from the existing filters (Start Date, Ending Date, Business Partner, etc...) add a new one named Currency.
|B.1||A drop-down list displaying all currency ISO codes (see General Setup >> Application >> Currency).||Must have||Not Started|
|B.2||User's accounting schema currency must appear selected by default.||Must have||Not Started|
|B.3||Currency drop-down list have to be mandatory.||Must have||Not Started|
In all the financial reports, add its currency symbol to current amounts, prices, prices/m2, etc... and a column with the amount converted to the selected currency.
|B.5||The currency symbol at the correct side of the amount, price, price/m2, etc... using C_Currency_Symbol function (see General Setup >> Application >> Currency). When it is not possible to form a string between the amount and the currency symbol (e.g., the amount is needed as a Big Decimal number for the calculation of totals), currency symbol will be placed at the right side of the amount.||Must have||Not Started|
|B.6||A column showing the converted amount. The header of this column will be labeled with the ISO code and the symbol of the selected currency in the form Amount (ISO-Symbol). This requirement only applies to Amount field (not to Price, Price/m2, etc... fields). If the report does not have amount field, this requirement does not apply. When there is no place enough for putting an extra column (e.g., in comparative reports), only converted amount column will be shown.||Must have||Not Started|
|B.7||A cell showing the total converted amount as the summation of converted amounts. Sometimes, the total is made at different levels: Project, Business Partner, Product, etc... If the report does not have amount field, this requirement does not apply. In many cases, this requirement means to change the current total cell by the converted total cell.||Must have||Not Started|
|B.8||Currency conversions must be done with the currency, the date, the client and the organization of the transaction. For instance, if an order line is dated on 27-01-2006, the currency conversion must be done using this date. In the case that the transaction line date is not mandatory, the date of the transaction header has to be taken (for instance, with expense sheet lines). Otherwise, the conversion date can be taken as today (now() function).||Must have||Not Started|
|B.9||Currency conversions must respect the price precision of the converted currency (see General Setup >> Application >> Currency).||Must have||Not Started|
|B.10|| If there is no conversion rate for the selected currency in any of the transactions, display a message in the filter window or in the pop-up window. For generated filter windows, display the message directly in the report, if possible.
||Must have||Not Started|
|B.11|| Function used for the currency conversion must be C_Currency_Convert(p_amount, p_curfrom_id, p_curto_id, p_convdate, p_ratetype, p_client_id, p_org_id) where:
To test the function:
|Must have||Not Started|
C) Multiple Languages Support
For each table that contains data to be shown in an accounting report, if the _TRL table does not exists, it will be created.
|C.1||Create _TRL tables when necesssary. The C_ELEMENTVALUE_TRL table exists, but is not referenced in the accounting reports (see 2377). Use the values within C_ELEMENTVALUE_TRL to translate accounting elements through reports.||Must have||Not Started|
|C.2||Fulfill the table when importing a translation||Must have||Not Started|
|C.3||Include the table in the exporting tables when exporting a translation.||Must have||Not Started|
|C.4||When a string of the translated table is requested, give the translated string, and not the original one.||Must have||Not Started|
D) Organization filters
|D.1|| Add an organization filter to:
||Must have||Not Started|
E) Delete conversion rate
|E.1||Avoid that a conversion rate in use in a posted transaction could be modified.||Must have||Not Started|
F) Posting document conversion
|F.1||When posting a transaction that does not have a conversion rate defined for the System currency, display a message informing about it and abort the posting.||Must have||Not Started|
Application Dictionary elements as well as all type of files involved in Model - View - Controller (MVC) stucture (*.html, *.xml, *.java and *.xsql files) will have to be modified. Besides, Jasper reports (*.jrxml files) will also be modified.
Some conversion rates can be taken from...
... and set into General Setup >> Application >> Conversion Rates.
Open Discussion Items
Closed Discussion Items
- If a document in a non-system currency has been posted, applying certain currency conversion rate, it will not be possible to modify or even remove that conversion rate (see E) Delete conversion rate section).
- Regarding the point B.10 of the section B) Currencies, if no rate is available to calculate currency conversion, report must display an advise pop-up window saying that for the given currency, date, client and organization there is no conversion rate defined.