Projects:Contract Management/Functional Specification
Contents |
Introduction
This document contains the functional specifications for the Contract Management functionality, which is intended to deliver capabilities to systematically and efficiently manage contract creation, execution and analysis for the purpose of maximizing financial and operational performance.
Contract
A contract is an agreement entered into voluntarily by two parties or more with the intention of creating a legal obligation (each party acquires rights and duties).
A promise becomes an enforceable contract when there is an offer by one party, normally called an offeror that it accepted by the other party (offeree) with the exchange of legally sufficient consideration. It commits the offeree to pay or give other consideration in return for actual performance during a certain period of time.
The existence of a contract requires finding the following factual elements:
- an offer.
- an acceptance of that offer which results in a meeting of the minds.
- a promise to perform.
- a valuable consideration (which can be a promise or payment in some form).
- a time when performance must be made (meet commitments).
- terms and conditions for performance, including fulfilling promises.
- performance.
Contract in Openbravo
A contract describes the exchange of goods or services (it may be renewable) from vendor to buyer for an agreed upon value in money during a period of time.
In Openbravo a contract is a project subtype (c_project table). Not all the projects are contracts but a contract is always a project. The contract can be either a sales or purchase contract.
The legal document signed between parties will contain all the relevant information of the contract and it could be attached to the contract document inside Openbravo.
The renewal conditions/terms are configured on the contract. It is common for clients to ask a contractor to extend their existing contract and continue to supply goods/services for them. When a contract is extended there is the opportunity of renegotiating the contract (modify terms).
Contract header
- Organization: an organization is a unit of your client or legal entity - examples are store, department.
- Search key
- *Name
- *Currency
- Person in Charge: an employee that is responsible for the project.
- Sales Representative
- Description
- *Starting Date: starting date of the contract.
- *Planned End Date: estimated ending date of the contract.
- Service Revenue
- *Business Partner: the other party with whom you have signed the contract.
- *Partner Address: indicates the location of a Business Partner.
- User/Contact
- Price List: used to determine the pricing, margin and cost of items purchased or sold.
- Payment Method
- Payment Term: identify the method and timing of payment for this transaction.
* mandatory fields: only Organization, Name, Search Key, Business Partner, Partner Address and Start/End date fields are mandatory.
Contract Lines
The contract can be composed by lines providing information about the type of exchanged product or service, approximate quantities and amounts.
- Sequence: indicates the unique line for the contract. It will also control the display order of the lines.
- Product/Service
- Date From/To: define the duration of the invoicing plan and, whenever possible, are copied from the dates of the corresponding contract header. It can differ from the timing of the contract (header). The dates defined at line level will be used for invoicing. If there are no dates defined at line level they will be inherited from the header (at header level they are mandatory).
- Invoice Date: date when the invoice should
- Quantity: the number of a specific product/service.
- Net Amount: indicates the line net amount based on the quantity and the actual price
- Responsible: an employee that is responsible for the project.
- Payment Term: payment term used for invoicing. Identifies the method and timing of payment for this transaction.
- The payment term defined at line level will be used for invoicing.
- If there is no payment term defined at line level the payment term defined at contract header level will be inherited.
- If there is no payment term neither in lines nor header the default payment term defined for business partner will be used.
- In other case, an error will be thrown.
- Payment Method: payment method used for invoicing.
- The payment method defined at line level will be used for invoicing.
- If there is no payment method defined at line level the payment method defined at contract header level will be inherited.
- If there is no payment method neither in lines nor header the default payment method defined for business partner will be used.
- In other case, an error will be thrown.
- Status: OPEN, BLOCKED, CLOSED.
- Location
- Block Invoicing: boolean (Y or N) to indicate whether this contract line has been blocked to generate invoices.
Invoicing Plan
The invoicing plan permits extensive automation of the process of creating invoices for items covering materials or services independently of the actual receipt of the goods or actual performance of the services. It lists the dates on which you wish to create and then pay the invoices.
The invoicing plan is defined at contract line level. For each contract line you can configure the invoicing plan, it could be slightly different depending on the kind of business process you are carrying out. The application proposes two different types of invoicing:
- Periodic: The periodic invoicing plan can be used for regularly recurring transactions (rental, leasing, or subscriptions). A fixed amount on a fixed date will be paid on a regular basis. For example, if you are creating a rental contract, the system can propose a schedule of monthly rental payments, according to the length and conditions of the contract.
- Milestone: the invoice (payment) will be settled in stages, for example while some event occurs. As each milestone is successfully reached, the customer is billed either a percentage of the entire project cost or simply a pre-defined amount.
The user will generate the invoicing plan using a button available at line level.
- Line: unique sequence number for the invoicing plan item.
- Blocked: each item (date) in the invoice plan can be blocked. The block * prevents processing for a particular billing date but does not necessarily affect any of the other dates in the plan. This block remains in effect until the user manually unblocks it.
- Status: OPEN, BLOCKED, FULLY INVOICED.
- Invoice: reference to the invoice document.
- Invoice Date: the invoice will take this date when is generated.
- Invoice From/To: invoicing period range.
- Currency: currency of the invoice.
- Amount: total amount to be invoiced.
Invoicing Plan Configuration
- Start/End date: they will be taken from the start/end dates defined on the contract line or header if they are empty at line level.
- Invoice date: all the invoices will be generated using this date as invoice date.
- Amount: total amount to be invoiced.
- Invoice rule: monthly invoicing is only available. Depending on the start/end dates and the total amount the system will create invoicing items.
Revenue Recognition
As an accounting general rule the revenue should be recorded only when the revenue generation process has been substantially completed, and an exchange has taken place.
This rule in Openbravo can be restated as follows: the revenue always comes from invoices.
There is one exception, the other revenue source in Openbravo is handled using a new document (contracted, served and not invoiced). It represents performed services or delivered goods (the agreements for invoicing are meet) but not yet invoiced.
The revenue recognition is not included in the contract. You can either prepare a recognition plan at invoice level or attach it to the product.
Revenue recognition could happen at different stages:
- Revenue is recognised at the time of the invoice.
- Periodic revenue recognition: i.e. rentals.
- Revenue recognition is prior to the invoice.
User Stories
Service Contract
US1
Header
- Organization: F&B US, Inc.
- Search key: 100001 (automatically created)
- Name: Cleaning services for “The English Cut”
- Currency: EUR
- Person in Charge: John
- Sales Representative: Moncho
- Description: A contract for delivering cleaning services in for The English Cut centers in France.
- *Starting Date: 01-01-2013
- *Planned End Date: 31-12-2013
- Service Revenue: 0
- *Business Partner: The English Cut
- *Partner Address: 4-6 Boulevard du Palais
- User/Contact: Blank
- Price List: Cleaning services pricelist
- Payment Method: Wire Transfer
- Payment Term: 30 days
Line1
- Sequence: 10
- Product/Service: Hygienic Cleaning Service
- Date From/To: 01-01-2013 --- 31-01-2013
- Invoice Date: 31
- Quantity: 1
- Net Amount: 12.000
- Responsible: John
- Payment Term: 30 days
- Payment Method: Wire Transfer
- Status: OPEN
- Location: 4-6 Boulevard du Palais
- Block Invoicing: N
Line2
- Sequence: 20
- Product/Service: Hygienic Cleaning Service
- Date From/To: 01-02-2013 --- 31-01-2014
- Invoice Date: 31
- Quantity: 1
- Net Amount: 24.000
- Responsible: John
- Payment Term: 30 days
- Payment Method: Wire Transfer
- Status: OPEN
- Location: Voie Georges Pompidou, 34
- Block Invoicing: N
Invoice Plan
John, as RoadRunner service company’s financial officer, wants to create the invoice plan for a contract. John should push a button called Create Invoice Plan for this purpose. The parameters that John should have available, are:
- Starting date: contract start date by default.
- Ending date: contract end date by default.
- Periodicity: Monthly, Bi-weekly.
- Amount per month:
- Invoice date: (15-31, or 31)
US1
The contract John is editing has
- Net amount: 1.000€
- Start date: 01-01-2013
- End date: 31-10-2013 (10 months total)
When creating the invoice plan, John will select:
- Start date: 01-01-2013 (untouched)
- End date: 31-10-2013 (untouched)
- Periodicity (Monthly)
- Invoice date (31)
- Amount per period: 100€
Then, the process will create the 10 invoice plan items all with invoice date the ending date of the month. Note that if the total amount of the invoice plan items (summed) exceed from the contract net amount, the system should show a warning to John stating the fact.
US2
The contract John is editing has
- Net amount: 1.000€
- Start date: 01-01-2013
- End date: 31-10-2013 (10 months total)
When creating the invoice plan, John will select:
- Start date: 01-01-2013 (untouched)
- End date: 31-10-2013 (untouched)
- Periodicity (Bi-weekly)
- Invoice date (15 and 31)
- Amount per period: 50
Then, the process will create the 20 invoice plan items all with invoice dates the 15th and the ending date of the month.
Note that if the total amount of the invoice plan items (summed) exceed from the contract net amount, the system should show a warning to John stating the fact.
US3
The contract John is editing has
- Net amount: 933€
- Start date: 20-01-2013
- End date: 31-10-2013 (9+ months total)
When creating the invoice plan, John will select:
- Start date: 20-01-2013 (untouched)
- End date: 31-10-2013 (untouched)
- Periodicity (Monthly)
- Invoice date (31)
- Amount per period: 100
Then, the process will create the 10 invoice plan items all with invoice dates the 15th and the ending date of the month. The first invoice plan item, which goes from 20th of January to 31st of January, should have the amount of 33€ (100€ in 31 days, then 33€ in 10 days).
Note that if the total amount of the invoice plan items (summed) exceed from the contract net amount, the system should show a warning to John stating the fact.