2
2
Track and bill time
3
3
===================
4
4
5
- Odoo *Helpdesk * provides teams with the ability to track the amount of hours spent working on a
6
- ticket, and to bill a customer for that time. Through integrations with the *Sales *, *Timesheets *,
7
- *Project * and *Accounting * applications, customers can be charged once the work is completed, or
8
- before it has even begun.
5
+ .. |SO | replace :: :abbr: `SO ( sales order ) `
9
6
10
- .. warning ::
7
+ Odoo **Helpdesk ** provides teams with the ability to track the amount of hours spent working on a
8
+ ticket, and to bill a customer for that time. Through integrations with the **Sales **,
9
+ **Timesheets **, **Project ** and **Accounting ** applications, customers can be charged once the work
10
+ is completed, or before it has even begun.
11
+
12
+ .. danger ::
11
13
Since the *Track & Bill Time * features require integration with other applications, enabling them
12
14
may result in the installation of additional modules or applications.
13
15
@@ -19,19 +21,19 @@ Configure track and bill time features
19
21
======================================
20
22
21
23
Before a customer can be invoiced for support services, the *Track & Bill Time * features **must ** be
22
- enabled on each *Helpdesk * team individually.
24
+ enabled on each ** Helpdesk * * team individually.
23
25
24
26
Enable track and bill time on a helpdesk team
25
27
---------------------------------------------
26
28
27
- To view and enable the *Track & Bill Time * features on a *Helpdesk * team, first navigate to
29
+ To view and enable the *Track & Bill Time * features on a ** Helpdesk * * team, first navigate to
28
30
:menuselection: `Helpdesk app --> Configuration --> Helpdesk Teams `. Then, select a team from the
29
31
list, or create a :doc: `new one <../../helpdesk >`. This reveals a team's settings page.
30
32
31
33
On the team's settings page, scroll to the :guilabel: `Track & Bill Time ` section. Check the boxes
32
34
labeled :guilabel: `Timesheets ` and :guilabel: `Time Billing `.
33
35
34
- Once the :guilabel: `Timesheets ` box is checked, a new field appears, labeled :guilabel: `Project `.
36
+ After the :guilabel: `Timesheets ` box is checked, a new field appears, labeled :guilabel: `Project `.
35
37
36
38
.. note ::
37
39
If this is the first time this feature has been enabled on this database, the page may need to be
@@ -45,27 +47,25 @@ drop-down menu, type a name for the project, and then click :guilabel:`Create` f
45
47
menu beneath.
46
48
47
49
.. image :: track_and_bill/track-bill-enable-settings.png
48
- :align: center
49
50
:alt: View of a helpdesk team settings page emphasizing the track and bill time settings.
50
51
51
52
.. _helpdesk/configure-service-products :
52
53
53
54
Configure service products
54
55
~~~~~~~~~~~~~~~~~~~~~~~~~~
55
56
56
- When the :guilabel: `Time Billing ` feature is enabled, a new product is created in the *Sales * app
57
+ When the :guilabel: `Time Billing ` feature is enabled, a new product is created in the ** Sales * * app
57
58
called *Service on Timesheets *. This product can be found under :menuselection: `Sales app-->
58
- Products --> Products `. Then, search for `Service on Timesheets ` in the :guilabel: ` Search... ` bar.
59
- This is the product that is used when invoicing for *post-paid support services * **after ** they have
60
- been completed.
59
+ Products --> Products `. Then, search for `Service on Timesheets ` in the search bar. This is the
60
+ product that is used when invoicing for *post-paid support services * **after ** they have been
61
+ completed.
61
62
62
63
Select :guilabel: `Service on Timesheets ` from the product page. This reveals the product detail
63
64
form. The product is configured with the :guilabel: `Product Type ` set to :guilabel: `Service ` and the
64
65
:guilabel: `Invoicing Policy ` set to :guilabel: `Based on Timesheets `. Make any necessary changes to
65
66
the product record, such as the :guilabel: `Cost ` or :guilabel: `Sales Price `.
66
67
67
68
.. image :: track_and_bill/track-bill-product-based-on-timesheets.png
68
- :align: center
69
69
:alt: View of a service product with the invoicing policy set to 'Based on timesheets'.
70
70
71
71
In order to invoice for support services **before ** the work has been completed (also known as
@@ -80,19 +80,17 @@ This means an invoice can be generated and payment can be received for this prod
80
80
timesheets entries have been recorded for these services.
81
81
82
82
.. image :: track_and_bill/track-bill-product-prepaid-fixed.png
83
- :align: center
84
83
:alt: View of a service product with the invoicing policy set to 'prepaid/fixed'.
85
84
86
- Finally, set the :guilabel: `Sales Price `, and confirm that the :guilabel: ` Unit of Measure ` is set to
85
+ Finally, set the :guilabel: `Sales Price `, and confirm that the unit of measure is set to
87
86
:guilabel: `Hours `.
88
87
89
88
Invoice prepaid support services
90
89
================================
91
90
92
91
When support services are billed on a fixed price, an invoice can be created before any work is
93
- completed on the issue. In this case, a service product with the *Invoicing Policy * set to
94
- *Prepaid/Fixed Price * would be used, just like :ref: `the section above
95
- <helpdesk/configure-service-products>`.
92
+ completed on the issue. In this case, a service product with the :guilabel: `Invoicing Policy ` set to
93
+ *Prepaid/Fixed Price * is used, like :ref: `the section above <helpdesk/configure-service-products >`.
96
94
97
95
Create a sales order with prepaid product
98
96
-----------------------------------------
@@ -103,34 +101,35 @@ click :guilabel:`New` to reveal a blank quotation form.
103
101
104
102
Then, fill out the quotation form with the customer information.
105
103
106
- Go to the :guilabel: `Order Lines ` tab of the quotation and click :guilabel: `Add a Product `. Then,
107
- select the *prepaid services product * configured in the steps above. Update the :guilabel: `Quantity `
108
- field with the number of hours.
104
+ Go to the :guilabel: `Order Lines ` tab of the quotation and click :guilabel: `Add a product `. Then,
105
+ select the *prepaid services product * when :ref: `configuring the service product
106
+ <helpdesk/configure-service-products>`. Update the :guilabel: `Quantity ` field with the number of
107
+ hours.
109
108
110
109
After updating any other necessary information, :guilabel: `Confirm ` the quotation. This converts the
111
- quotation into an :abbr: ` SO ( sales order ) ` .
110
+ quotation into an | SO | .
112
111
113
112
Create and send an invoice for prepaid services
114
113
-----------------------------------------------
115
114
116
- Once the :abbr: ` SO ( sales order ) ` has been confirmed, click the :guilabel: `Create Invoice ` button.
117
- This opens a :guilabel: `Create invoices ` pop-up window.
115
+ After the | SO | has been confirmed, click the :guilabel: `Create Invoice ` button. This opens a
116
+ :guilabel: `Create invoice(s) ` pop-up window.
118
117
119
118
If no down payment is collected, the :guilabel: `Create Invoice ` type can remain as
120
119
:guilabel: `Regular Invoice `. If a :doc: `down payment <../../../sales/sales/invoicing/down_payment >`
121
120
is collected, choose between either :guilabel: `Down payment (percentage) ` or :guilabel: `Down payment
122
121
(fixed amount) `.
123
122
124
- When the necessary information has been entered, click :guilabel: `Create Draft Invoice `.
123
+ When the necessary information has been entered, click :guilabel: `Create Draft `.
125
124
126
125
The invoice can then be sent to the customer for payment.
127
126
128
127
Create helpdesk ticket for prepaid services
129
128
-------------------------------------------
130
129
131
- To create a *Helpdesk * ticket for prepaid services, navigate to :menuselection: `Helpdesk ` and click
132
- the :guilabel: `Tickets ` button to reveal a specific team's pipeline. Click :guilabel: `New ` to create
133
- a new ticket.
130
+ To create a ** Helpdesk ** ticket for prepaid services, navigate to :menuselection: `Helpdesk ` and
131
+ click the :guilabel: `Tickets ` button to reveal a specific team's pipeline. Click :guilabel: `New ` to
132
+ create a new ticket.
134
133
135
134
On the blank ticket form, create a ticket :guilabel: `Title `, and enter the :guilabel: `Customer `
136
135
information.
@@ -141,7 +140,8 @@ the most recent prepaid sales order item that has time remaining.
141
140
Track hours on helpdesk ticket
142
141
------------------------------
143
142
144
- Time spent working on a *Helpdesk * ticket is tracked on the *Timesheets * tab on the specific ticket.
143
+ Time spent working on a **Helpdesk ** ticket is tracked on the **Timesheets ** tab on the specific
144
+ ticket.
145
145
146
146
On the ticket detail form, click on the :guilabel: `Timesheets ` tab and click :guilabel: `Add a line `.
147
147
Choose an :guilabel: `Employee `, add a :guilabel: `Description ` of the task, and enter the number of
@@ -151,56 +151,58 @@ As new lines are added to :guilabel:`Timesheets` tab, the :guilabel:`Remaining H
151
151
at the bottom-right of the tab, is automatically updated.
152
152
153
153
.. image :: track_and_bill/track-bill-remaining-hours-total.png
154
- :align: center
155
154
:alt: View of the timesheets tab on a ticket with an emphasis on the remaining hours on an SO.
156
155
157
156
.. note ::
158
157
If the number of hours on the :guilabel: `Timesheets ` tab exceeds the number of hours sold, the
159
158
:guilabel: `Remaining Hours of SO ` turns red.
160
159
160
+ .. image :: track_and_bill/exceeded-hours-sold.png
161
+ :alt: An example of a ticket with the number of hours exceeding the hours remaining.
162
+
161
163
As hours are added to the :guilabel: `Timesheets ` tab, they are automatically updated in the
162
- :guilabel: `Delivered ` field on the :abbr: ` SO ( sales order ) ` , as well.
164
+ :guilabel: `Delivered ` field on the | SO | , as well.
163
165
164
166
Invoice post-paid support services
165
167
==================================
166
168
167
169
When support services are billed based on the amount of time spent on an issue, an invoice cannot be
168
170
created before the total number of hours required to solve the problem have been entered on a
169
- timesheet. In this case, a service product with the * Invoicing Policy * set to * Based on Timesheets *
170
- would be used, like the one created in :ref: `the section above
171
- <helpdesk/configure-service-products>`.
171
+ timesheet. In this case, a service product with the :guilabel: ` Invoicing Policy ` set to
172
+ :guilabel: ` Based on Timesheets ` is used, like the one that is automatically created after :ref: `the
173
+ Time Billing <helpdesk/configure-service-products>` feature is enabled .
172
174
173
175
Create a sales order with a time-tracked product
174
176
------------------------------------------------
175
177
176
- To invoice a customer for post-paid support services, first create a sales order (SO) with the
177
- * support services product* . To do this, go to :menuselection: `Sales app --> Orders --> Quotations `.
178
- Then, click :guilabel: `New ` to reveal a blank quotation form.
178
+ To invoice a customer for post-paid support services, first create a | SO | with the * Service on
179
+ Timesheets * product. To do this, go to :menuselection: `Sales app --> Orders --> Quotations `. Then,
180
+ click :guilabel: `New ` to reveal a blank quotation form.
179
181
180
182
Fill out the quotation with the customer information.
181
183
182
- On the :guilabel: `Order Lines ` tab, click :guilabel: `Add a Product `. Select the post-paid services
183
- product configured in the steps above . After updating any other necessary information,
184
- :guilabel: ` Confirm ` the quotation.
184
+ On the :guilabel: `Order Lines ` tab, click :guilabel: `Add a product `. Select the :guilabel: ` Service
185
+ on Timesheets ` product . After updating any other necessary information, :guilabel: ` Confirm ` the
186
+ quotation.
185
187
186
188
.. important ::
187
189
Unlike with the prepaid services quotation, Odoo does **not ** allow an invoice to be created at
188
- this time. That is because no services have been performed; in other words, nothing has been
189
- delivered, therefore, there is nothing to invoice.
190
+ this time. Since services were ** not ** performed, nothing was delivered, so there is nothing to
191
+ invoice.
190
192
191
193
Create a helpdesk ticket for time-tracked services
192
194
--------------------------------------------------
193
195
194
- To record a * Timesheet * entry for time-tracker services, go to the :menuselection: `Helpdesk ` app,
195
- and select the appropriate team for which these services apply.
196
+ To record a timesheet entry for time-tracked services, go to the :menuselection: `Helpdesk ` app, and
197
+ select the appropriate team for which these services apply.
196
198
197
199
If there is already an existing ticket for this issue, select it from the Kanban view. This opens
198
200
the ticket details form. If there is no existing ticket for this customer issue, click
199
201
:guilabel: `New ` to create a new ticket and enter the necessary customer information on the blank
200
202
ticket details form.
201
203
202
204
After selecting or creating a ticket, go to the :guilabel: `Sales Order Item ` drop-down menu. Select
203
- the :abbr: ` SO ( sales order ) ` created in the previous step.
205
+ the | SO | created in the previous step.
204
206
205
207
Track support hours on a ticket
206
208
-------------------------------
@@ -212,26 +214,23 @@ service, click on the :guilabel:`Timesheets` tab of the ticket.
212
214
Click :guilabel: `Add a Line ` to record a new entry. Select an :guilabel: `Employee ` from the
213
215
drop-down menu, and record the time spent in the :guilabel: `Hours Spent ` column.
214
216
215
- Repeat these steps as needed until all time spent on the issues has been recorded.
217
+ Repeat these steps until all timesheet entries have been recorded.
216
218
217
219
.. image :: track_and_bill/track-bill-record-timesheet-hours.png
218
- :align: center
219
220
:alt: View of the timesheets tab on a helpdesk ticket.
220
221
221
222
Create an invoice for hours tracked on a ticket
222
223
-----------------------------------------------
223
224
224
- After the customer's issue has been solved, and it is determined no new timesheet entries need to be
225
- made, an invoice can be created, and the customer can be billed.
225
+ If no new timesheets are needed, then create an invoice and send it to the customer.
226
226
227
- To do this, return to the :abbr: ` SO ( sales order ) ` by clicking on the :guilabel: `Sales Order ` smart
228
- button at the top of the ticket.
227
+ To do this, return to the | SO | by clicking on the :guilabel: `Sales Order ` smart button at the top of
228
+ the ticket.
229
229
230
230
Before creating the invoice, confirm that the number in the :guilabel: `Delivered ` column matches the
231
231
total number of :guilabel: `Hours Spent ` listed in the :guilabel: `Timesheets ` tab on the ticket.
232
232
233
233
.. image :: track_and_bill/track-bill-delivered-timesheet-hours.png
234
- :align: center
235
234
:alt: View of a sales order with emphasis on the delivered column.
236
235
237
236
Then, click :guilabel: `Create Invoice `. This opens a :guilabel: `Create invoice(s) ` pop-up window.
@@ -243,11 +242,7 @@ payment (percentage)` or :guilabel:`Down payment (fixed amount)`.
243
242
.. important ::
244
243
Use the :guilabel: `Timesheets Period ` field if this invoice should **only ** include timesheets
245
244
from a certain time period. If this field is left blank, **all ** applicable timesheets that have
246
- not yet been invoiced will be included.
247
-
248
- .. image :: track_and_bill/track-bill-create-invoice-timesheets-period.png
249
- :align: center
250
- :alt: View of create invoices pop up showing timesheets period fields.
245
+ not yet been invoiced are included.
251
246
252
247
When the necessary information has been entered, click :guilabel: `Create Draft `. The invoice can
253
248
then be reviewed, edited, and sent to the customer for payment.
0 commit comments