Projects:Revenue Cognition/Technical Documentation
Contents |
Revenue recognition module - Technical Documentation
Overview
This document will explain the proposed technical solution to build the module for the revenue recognition.
Current status
Currently the 2.50 version does not support the revenue recognition, so the user is not able to enter revenue plans or view revenue report to analyze the status of the company. The customization done at OB@OB contains this functionality, as explained in the specifications, so the purpose of this technical documentation is to find out and describe which windows, PLSql's, Reports, tabs, fields etc were done to achieve this functionality once identified these fields all will take part of a module named "Revenue Recognition"
New Standard windows
To achieve the revenue recognition module a new standard window in needed
Revenues Plan
- One tab:Revenues Plan
- Fields
- Client
- Organization
- Name
- Description
- NÂș Revenues
- Revenues frequency
- Active
Related with this window a new table will be created the named of the table is going to be C_INCOME
- Table C_INCOME
- Columns
- AD_Client_ID
- Reference=tabledir
- Validation=AD_Client Security validation
- Stored in session
- Mandatory
- Default: @AD_CLIENT_ID@
- AD_Org_ID
- Reference=tabledir
- Validation=AD_Client Security validation
- Mandatory
- Updatable
- Stored in session Default: @AD_CLIENT_ID@)
- C_Income_ID
- Reference=ID
- KeyColumn
- Mandatory
- Created
- Reference=Datetime
- length=19
- Default=SYSDATE
- Mandatory
- Createdby
- Reference=table
- Reference= ad_user
- Mandatory
- Dayrecognition
- Reference=yes/no
- Length=1
- updatable
- Description
- Reference=String
- Length=255
- Updatable
- Exactday
- Reference=integer
- Length=12
- Updatable
- Isactive
- Reference=yes/no
- Length=1
- Updatable
- Mandatory
- Name
- Reference=String
- Length=60
- Mandatory
- Sequece number=90
- Updatable
- Identifier
- Norecognition
- Reference=integer
- Length=12
- Mandatory
- Updatable
- Recognitionfreq
- Reference=list
- Length=60
- Reference search key=C_RevenueRecognition Frequency
- Mandatory
- Updatable
- Startrecognition (
- Reference=yes/no
- Length=1
- Updatable
- Updated
- Reference=Datetime
- Length=19
- Default=SYSDATE
- Mandatory
- Updatedby
- Reference=table
- Reference Search key=AD_user
- Mandatory
- AD_Client_ID
Changes in existing Standard windows
Product
- New field named Revenues Plan in the Product window
- Also another column should be added to the M_PRODUCT table
- C_INCOME_ID
- Reference=tabledir
- Updatable
- C_INCOME_ID
Sales Order Line
- Three new fields will be added to the order line tab under sales order
- Income Date
- Delivery Org
- Delivery Resp
- This three new fields generates new columns in the C_ORDERLINE table.
- Daterevenue
- Reference=Date
- Length=19
- Updatable
- Orgdelivered
- Reference=table
- Reference search key= AD_org(all)
- Updatable
- Respdelivered
- Reference=table
- Reference Search key=AD_user_salesrep
- Updatable
- Daterevenue
New Process
To Allow the user to generate shipment selecting only sales order lines the process Generate Shipment from orders was created. You can find this process in: Sales management || Transactions || Generate Shipments from order lines
To manage this new process find the new files in the module folder org.openbravo.revenuerecognition.module/src/org/openbravo/revenuerecognition/module/ad_forms
- GenerateShipmentsmanual_data.xsql
- GenerateShipmentsmanual.html
- GenerateShipmentsmanual.java
- GenerateShipmentsmanual.xml
Also the same thing for the process named Generate invoices that is also included in the standard version but since it has some changes is also included in the module (find these file in the same path as Generate Shipments from order lines)
- GenerateInvoicesmanual_data.xsql
- GenerateInvoicesmanual.html
- GenerateInvoicesmanual.java
- GenerateInvoicesmanual.xml
New Reports
To allow the user to analyze all the data regarding with the revenue recognition three new reports were added to the standard application. All the reports were manual reports
Report Sales by Month
In application dictionary side a new menu entry will be added Report Sales by Month, also a new report is going to set up Report Sales by Month and the process class is the following org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNewJR Also there will be added all the files needed by the report to work for instance (to show the filter window, the sql to get the data, and also the jasper template)
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNewJR_data.xsql
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNewJR.jrxml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNewJR.java
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNewFilterJR.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNewFilterJR.html
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNew_ExcelPlane.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNew_ExcelPlane.html
org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNew_Excel.xml org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNew_Excel.html
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNew.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportSalesNew.html
Report Revenues by Month
In application dictionary side a new menu entry will be added Report Revenues by Month, also a new report is going to set up Report Revenues by Month and the process class is the following org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNewJR Also there will be added all the files needed by the report to work for instance (to show the filter window, the sql to get the data, and also the jasper template)
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNewJR_data.xsql
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNewJR.jrxml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNewJR.java
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNewFilterJR.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNewFilterJR.html
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNew_ExcelPlane.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNew_ExcelPlane.html
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNew_Excel.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNew_Excel.html
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNew.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNew.html
Report Invoicing by Month
In application dictionary side a new menu entry will be added Report Invoicing by Month, also a new report is going to set up Report Invoicing by Month and the process class is the following org.openbravo.openbravoatopenbravo.module.ad_reports.ReportInvoiceNewJR Also there will be added all the files needed by the report to work for instance (to show the filter window, the sql to get the data, and also the jasper template)
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNewJR_data.xsql
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNewJR.jrxml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNewJR.java
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNewJR.jasper
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNewFilterJR.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNewFilterJR.html
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNew_ExcelPlane.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNew_ExcelPlane.html
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNew_Excel.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNew_Excel.html
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNew.xml
- org.openbravo.openbravoatopenbravo.module.ad_reports.ReportIncomeNew.html
Modified Standard Processes
Naming exceptions within the module
Some of the Functions, tables and column that were used in the customization does not fit the 2.50 modularity naming conventions. So this resources should be included into the module definition naming exceptions.
Tables
- C_INCOME
Columns
- DATEREVENUE
- ORGDELIVERED
- RESPDELIVERED
Foring Keys
- INCOMEORG
- UINCOMECLIENT
Functions
- IMP_FACTURA
- C_ORDER_REVENUE1
- C_ORDER_REVENUE2
- IMP_INGRESOS_TOT
- IMP_INGRESOS_TOT_NEW
- C_INVOICE_CREATE3
- C_ORDER_REVENUE
- C_ORDER_REVENUE0
- C_INVOICE_CREATE2
- IMP_VENTAS
- BACK_LOG_ANTERIOR_NEW
- BACK_LOG_PROX_NEW
- M_INOUT_CREATE3
- IMP_FACTURA_TOT
- IMP_VENTAS_TOT
- IMP_INGRESOS_NEW
- M_INOUT_CREATE2
View
- M_INOUT_CANDIDATE2_V
- C_INVOICE_CANDIDATE2_V