[ADD] sales: How to invoice a support contract (prepaid hours)?
https://docs.google.com/document/d/1_zl7Hl3qh5_rIeA9jigfgQgpmGf8l0HLi2Rgl1p5H50/edit?usp=sharing
BIN
sales/invoicing/services/media/support01.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
sales/invoicing/services/media/support02.png
Normal file
After Width: | Height: | Size: 4.0 KiB |
BIN
sales/invoicing/services/media/support03.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
sales/invoicing/services/media/support04.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
sales/invoicing/services/media/support05.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
sales/invoicing/services/media/support06.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
sales/invoicing/services/media/support07.png
Normal file
After Width: | Height: | Size: 16 KiB |
@ -1,3 +1,160 @@
|
|||||||
==================================================
|
==================================================
|
||||||
How to invoice a support contract (prepaid hours)?
|
How to invoice a support contract (prepaid hours)?
|
||||||
==================================================
|
==================================================
|
||||||
|
|
||||||
|
There are different kinds of service sales: prepaid volume of hours/days
|
||||||
|
(e.g. support contract), billing based on time and material (e.g.
|
||||||
|
billing consulting hours) and a fixed price contract (e.g. a project).
|
||||||
|
|
||||||
|
In this section, we will have a look at how to sell and keep track of a
|
||||||
|
pre-paid support contract.
|
||||||
|
|
||||||
|
As an example, you may sell a pack of ``50 Hours`` of support at ``$25,000``.
|
||||||
|
The price is fixed and charged initially. But you want to keep track of
|
||||||
|
the support service you did for the customer.
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
=============
|
||||||
|
|
||||||
|
Install the Sales and Timesheet applications
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
In order to sell services, you need to install the **Sales** application,
|
||||||
|
from the **Apps** icon. Install also the **Timesheets** application if you want
|
||||||
|
to track support services you worked on every contract.
|
||||||
|
|
||||||
|
.. image:: media/support01.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. image:: media/support02.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Create Products
|
||||||
|
---------------
|
||||||
|
|
||||||
|
By default, products are sold by number of units. In order to sell
|
||||||
|
services ``per hour``, you must allow using multiple unit of measures.
|
||||||
|
From the **Sales** application, go to the menu
|
||||||
|
:menuselection:`Configuration --> Settings`.
|
||||||
|
From this screen, activate the multiple **Unit of Measures** option.
|
||||||
|
|
||||||
|
.. image:: media/support03.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
In order to sell a support contract, you must create a product for every
|
||||||
|
support contract you sell. From the **Sales** application, use the menu
|
||||||
|
:menuselection:`Sales --> Products`, create a new product with the following setup:
|
||||||
|
|
||||||
|
- **Name**: Technical Support
|
||||||
|
|
||||||
|
- **Product Type**: Service
|
||||||
|
|
||||||
|
- **Unit of Measure**: Hours
|
||||||
|
|
||||||
|
- **Invoicing Policy**: Ordered Quantities, since the service is
|
||||||
|
prepaid, we will invoice the service based on what has been
|
||||||
|
ordered, not based on delivered quantities.
|
||||||
|
|
||||||
|
- **Track Service**: Timesheet on contracts. An analytic account will
|
||||||
|
automatically be created for every order containing this service
|
||||||
|
so that you can track hours in the related account.
|
||||||
|
|
||||||
|
.. image:: media/support04.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
There are different ways to track the service related to a sale
|
||||||
|
order or product sold. With the above configuration, you can only
|
||||||
|
sell one support contract per order. If your customer orders
|
||||||
|
several service contracts on timesheet, you will have to split
|
||||||
|
the quotation into several orders.
|
||||||
|
|
||||||
|
Note that you can sell in different unit of measure than hours, example:
|
||||||
|
days, pack of 40h, etc. To do that, just create a new unit of measure in
|
||||||
|
the **Unit of Measure** category and set a conversion ratio compared to
|
||||||
|
**Hours** (example: ``1 day = 8 hours``).
|
||||||
|
|
||||||
|
Managing support contract
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Quotations and Sale Orders
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
Once the product is created, you can create a quotation or a sale order
|
||||||
|
with the related product. Once the quotation is confirmed and
|
||||||
|
transformed into a sale order, your users will be able to record
|
||||||
|
services related to this support contract using the timesheet
|
||||||
|
application.
|
||||||
|
|
||||||
|
.. image:: media/support05.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Timesheets
|
||||||
|
----------
|
||||||
|
|
||||||
|
To track the service you do on a specific contract, you should use the
|
||||||
|
timesheet application. An analytic account related to the sale order has
|
||||||
|
been automatically created (``SO009 - Agrolait`` on the screenshot here
|
||||||
|
above), so you can start tracking services as soon as it has been sold.
|
||||||
|
|
||||||
|
.. image:: media/support06.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Control delivered support on the sale order
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
From the **Sales** application, use the menu
|
||||||
|
:menuselection:`Sales --> Sales Orders` to control
|
||||||
|
the progress of every order. On the sales order line related to the
|
||||||
|
support contract, you should see the **Delivered Quantities** that are
|
||||||
|
updated automatically, based on the number of hours in the timesheet.
|
||||||
|
|
||||||
|
.. image:: media/support07.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Upselling and renewal
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
If the number of hours you performed on the support contract is bigger
|
||||||
|
or equal to the number of hours the customer purchased, the sale order
|
||||||
|
**Invoicing Status** is automatically set to **Upselling**. This means you
|
||||||
|
have an opportunity to sell an extra contract to the customer since he
|
||||||
|
used all his quota of service.
|
||||||
|
|
||||||
|
Periodically (ideally once every two weeks), you should check the sales
|
||||||
|
order that are in an upselling status. To do this, go to the
|
||||||
|
:menuselection:`Sales --> Sales Order` menu and use the **Upselling**
|
||||||
|
filter to get all orders that are in upselling.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
If you use Odoo CRM, a good practice is to create an opportunity for
|
||||||
|
every sale order in upselling invoice status so that you easily track
|
||||||
|
your upselling effort.
|
||||||
|
|
||||||
|
If you sell an extra support contract, you can either add a new line on
|
||||||
|
the existing sale order (thus, you continue to timesheet on the same
|
||||||
|
order) or create a new order (thus, people will timesheet their hours on
|
||||||
|
the new contract). To unmark the sale order as **Upselling**, you can set
|
||||||
|
the sale order as done and it will disappear from your upselling list.
|
||||||
|
|
||||||
|
Special Configuration
|
||||||
|
=====================
|
||||||
|
|
||||||
|
When creating the product form, you may set a different approach to
|
||||||
|
track the service:
|
||||||
|
|
||||||
|
- **Create task and track hours**: in this mode, a task is created for
|
||||||
|
every sale order line. Then when you do the timesheet, you don't
|
||||||
|
record hours on a sale order/contract, but you record hours on a
|
||||||
|
task (that represents the contract). The advantage of this
|
||||||
|
solution is that it allows to sell several service contracts
|
||||||
|
within the same sale order.
|
||||||
|
|
||||||
|
- **Manually**: you can use this mode if you don't record timesheets in
|
||||||
|
Odoo. The number of hours you worked on a specific contract can
|
||||||
|
be recorded manually on the sale order line directly, in the
|
||||||
|
delivered quantity field.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
* :doc:`time_materials`
|
||||||
|
* :doc:`../../../inventory/settings/products/uom`
|
||||||
|