Difference between revisions of "FS02 Cash Flow"

From ADempiere ERP Wiki
Jump to navigationJump to search
(change statement by projection as suggested by Adaxa)
(links)
Line 2: Line 2:


'''Development Status''': Developed by GlobalQSS, tested by customer, integration work in progress
'''Development Status''': Developed by GlobalQSS, tested by customer, integration work in progress
'''SourceForge Forum''' [http://sourceforge.net/projects/adempiere/forums/forum/611163/topic/3937875 thread] to discuss.


== Cash Flow - Functional Specifications ==
== Cash Flow - Functional Specifications ==
Line 22: Line 24:
* [http://en.wikipedia.org/wiki/Cash_flow_projection Cash_flow_projection]
* [http://en.wikipedia.org/wiki/Cash_flow_projection Cash_flow_projection]
* [http://en.wikipedia.org/wiki/Cash_flow_statement Cash_flow_statement]
* [http://en.wikipedia.org/wiki/Cash_flow_statement Cash_flow_statement]
* [http://sourceforge.net/tracker/?func=detail&aid=3132797&group_id=176962&atid=879335 Tracker: Feature Requests 3132797]


=== Design Considerations ===
=== Design Considerations ===

Revision as of 01:57, 9 December 2010

Status: Approved to be integrated in branch 361 by Functional Team

Development Status: Developed by GlobalQSS, tested by customer, integration work in progress

SourceForge Forum thread to discuss.

Cash Flow - Functional Specifications

Author: Carlos Ruiz

Overview

Purpose

The cash flow projection functionality is highly required on an ERP.

Scope

Implement a cash flow projection to be exported to a spreadsheet including information from plans (forecast), commitments (orders) and actuals (invoices)

References

Design Considerations

The cash flow projection will be issued starting from the actual date (today), and it will not include the planned records before today. It's user's responsibility to keep up to date the plans to show accurate results.

It's important also to implement a join between the commitments (orders) or actuals (invoices) and the plans in order to allow the user to mark that a specific order or invoice is related to a plan or forecast and allow the report to subtract the amount from the plan.

Assumptions

All components of the development must be translated to spanish.

Dependencies

The development of this requirement depends on Functional Specification for Commitment AR AP

Constraints

... empty ...

Glossary

... empty ...

Functional Requirements

User roles & profiles

Cash Planner: There must be a skilled person to fill the cash plans

Sales Order: People filling sales orders must take into account to relate the corresponding cash plan when necessary

Purchase Order: People filling purchase orders must take into account to relate the corresponding cash plan when necessary

Sales Invoice: People filling sales invoices must take into account to relate the corresponding cash plan when necessary

Purchase Invoice: People filling purchase invoices must take into account to relate the corresponding cash plan when necessary

Cash Flow Manager: This is the person that issue the cash flow projection, export it to excel and play with the numbers.

Business process definition

See http://en.wikipedia.org/wiki/Cash_flow

User stories

  • How does this fit with a standard cash flow statement and budget?
    • Most important is that if a sales/purchase order/invoice has a schedule of payments, accounting just show the balance on the invoice date, meanwhile the cash flow must show all the installments on each corresponding date
    • In some way cash plan document is a budget, but is not entered like a GL journal with accounts, instead of, it can be entered using charges and products as usual orders/invoices - or you can use just names if product/charge cannot be used, we also provide a "Generate Periodic" button to create periodic lines, for example for public services invoices, or a planned credit with a bank. And additional to budget, we made also a provision to let the user mark which order/invoice correspond to which line of the plan (to subtract the order/invoice from the planned amount).


Functional requirements based on business processes

  • Create a new window (with its corresponding tables) to allow entering cash flow plan documents
  • Create a link between sales/purchase orders/invoices with this new plan document
  • Create a cash flow report that includes forecasts (plans), commitments (orders) and actuals (invoices)
    • Parameters:
      • Date To: The max date of documents to be shown in the report
      • Accounting Schema and Account Element: the account element to calculate the initial balance (first line) of the cash flow report
    • Technical Info: there will be a new temporary table called T_CashFlow that will be filled by a process and reported in the usual Adempiere way
    • The process to fill the temporary table add records to the T_CashFlow table this way:
      • Firstly calculates an "initial balance" record based on the balance of the account (parameter) as of today
      • Secondly add "plan" records based on cash flow plan documents (subtracting the planned lines that are already linked to actual orders or invoices)
      • Thirdly add "commitment" records based on sales and purchase orders - just the not invoiced part, the dates are calculated according to the order schedule
      • Fourthly add "actual debt" records based on sales and purchase invoices - just the unpaid part, the dates are calculated according to the invoice schedule

Example of questions the Cash Flow projections could answer (the report doesn't answer these questions directly but provides the necessary data and a tool for planning):

  • Am I going to meet payroll next week? Next month?
  • Will I have enough cash to meet my commitments? Can I take on other commitments with payment schedule Y? When?
  • Can I accept a contract for products with payment schedule X? Will I be able to afford the necessary parts & supplies?
  • How much risk do I have of running out of cash? How much credit should I secure? When will I likely need the money?
  • Do I need to factor my AR or sell some other source of value - like inventory? What rate or loss should I accept?
  • Can I undertake a capital project with payment terms of wxy?
  • What amount of equity investment will I require? What terms can afford to offer?

User Interface Mockups

Sample of the Cash Plan document header

CashPlanHeader.png

Sample of the Cash Plan document lines

CashPlanLines.png

Cash Flow Report Parameters

CashFlowReportParameters.png

Cash Flow Report

This is a sample of the generated cash flow in Adempiere.

CashFlowReport.png

Cash Flow Report exported to spreadsheet

This is a sample of the report exported to spreadsheet

CashFlowReportXLS.png

Technical Requirements

Non-Functional Requirements

Open Discussion Items

During the community discussion week there were several comments that are worthy to document here:

  • Suggestion to take into account all aspects of working capital changes, capital investment and financing: At this moment the user must maintain the cash plan documents, no provision to manage such aspects. We have thought maybe in future to add a cash plan importer (but is not in current scope)
  • Suggestion to answer the question "Where did my cash go?": At this moment the report doesn't show historic data, but a future extension of this concept could.


Closed Discussion Items