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