documentation/project/advanced/so_to_task.rst

115 lines
4.1 KiB
ReStructuredText

======================================
How to create tasks from sales orders?
======================================
In this section, we will see the integration between Odoo's **Project
management** and **Sales** modules and more precisely how to generate tasks
from sales order lines.
In project management, a task is an activity that needs to be
accomplished within a defined period of time. For a company selling
services, the task typically represents the service that has been sold
to the customer and that needs to be delivered. This is why it is useful
to be able to generate a task from a sale order in order to streamline
the process between the Sales and Services departments.
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. On the sale order, the
service will trigger the creation of a task from which the consultant
will record timesheets and, if needed, reinvoice the client according to
the overtime spent on the project.
Configuration
=============
Install the required applications
---------------------------------
In order to be able to generate a task from a sale order you will need
to install the **Sales Management** and **Project** application. Simply go into
the application module and install the following:
.. image:: media/so_to_task01.png
:align: center
.. image:: media/so_to_task02.png
:align: center
Moreover if you wish to be able to invoice your customers based on time
spent on the task, it is also necessary to install the **Timesheet** module.
Simply go into the application module and install the following:
.. image:: media/so_to_task03.png
:align: center
Create and set up a product
===========================
You need to configure your service on the product form itself in order
to generate a task every time it will be sold. From the **Sales** module,
use the menu :menuselection:`Sales --> Products` and create a new
product with the`following setup:
- **Name**: Technical Support
- **Product Type**: Service
- **Unit of Measure**: Hours (go to :menuselection:`Configuration --> Settings`
and, under **Unit of measures**, check the **Some products may be
sold/purchased in different unit of measures (advanced)** radio
button)
- **Invoicing policy**: You can set up your invoice policy either on
ordered quantity or on delivered quantity. You can easily follow
the amount of hours that were delivered and/or invoiced to your
client.
- **Track Service**: Create a task and track hours, as your product
is a service invoiceable by hours you have to set the units of
measures of the product to hours as well.
.. image:: media/so_to_task04.png
:align: center
.. note::
Link your task to an existing project or create a new one on the fly if
the product is specific to one project. Otherwise, you can leave it
blank, odoo will then create a project per SO.
Create the Sales Order
======================
Once the product is set up, you can create a quotation or a sale order
with the related product. Once the quotation is confirmed and
transformed into a sale order, the task will be created.
.. image:: media/so_to_task05.png
:align: center
Access the task generated from the sale order
=============================================
On the Project module, your new task will appear :
- either on a related project if you have selected one in the product
form
- either on a new project with the name of related the sale order as
title (you can easily change the name of the project by clicking
on :menuselection:`More --> Settings`)
.. image:: media/so_to_task06.png
:align: center
On the task itself, you will now be able to record timesheets and to
invoice your customers based on your invoicing policy.
.. note::
On Odoo, the central document is the sales order, which means that
the source document of the task is the related sales order.
.. seealso::
* :doc:`../configuration/setup`
* :doc:`../../sales/invoicing/services/reinvoice`
* :doc:`../../sales/invoicing/services/support`