This question has been flagged
3 Replies
3291 Views

Hi All,

I'm currently using Odoo 12 CE and it's working beautifully on my own hosted platform.  I have a unique situation... I have customers that can purchase pre-paid service hours and I need to be able to track how many have been purchased and also how many have been used. Ideally I'd like to do the following:

  1. Create custom fields for "block_hrs_onsite_remaining" and "block_hrs_remote_remaining" that will be linked to the *COMPANY* and should be viewable on the company record and any employees of this company records/views.

  2. These two fields should be integers, with only two decimal points (XXX.XX)

  3. Ideally, I'd like to be able to *sell* this item to the customer in increments via two different part numbers.. one for remote_block_hours and one for onsite_block_hours.

  4. When selling to a customer via invoice, I'd enter the QTY for the number of hours they're purchasing, and when payment is complete, it should add this number to the fields listed above, automatically.

  5. Whenever a customer has a service request and I create an invoice, it should automatically deduct from this field.  And ideally, I'd like to display the number of remaining hours for both fields on the invoice (both pre-service call and post-service call)

  6. Ideally, I'd like to also set up an alert whenever I create a service request / invoice whenever the customer reaches a certain threshold.  But this could be optional.

I honestly don't really care *how* it gets implemented, so long as it's fairly automated.  Right now, I have to do everything manually in terms of updating totals, adding totals to a *manual* field in the customer record. And it's EASY to get messy.

BTW... I'm a somewhat newbie with Odoo so please explain as simply as possible...or if someone would like to hop into my screen with screen-share session please PM me so we can set up time to look at this.

Any questions, feel free to ask.  

Avatar
Discard

Did you think about a corresponding service product with creating a task and tracking time? I'm not sure how it works in Odoo 12.0, but you may want to check.

Best Answer

Hi Matthew:

The functionality requested by you is available out of the box and works like a charm. As mentioned by Ermin above, the simplest way would be to create a product for your pre-paid service with a "Product Type" of "Service" and set the "Invoicing Policy" to "Delivered Quantities" in the "Sales tab of the Product Master" screen. Once you set this up, you can generate a normal Quotation/Sales Order for the pre-paid service hours and confirm the Sales Order. When it is time to bill the customer, you can go into the Sales Order screen and update the "Delivered Quantity" to reflect the total hours for which the work has been completed and click on "Create Invoice" (based on Invoiceable lines). This will provide you the ability to generate incremental invoices as you deliver your service. 

For example, if you sell 100 hours of prepaid service and deliver 40 hours in the first week, you can update Delivered quantity to 40 at the end of the first week. When you create the invoice, Odoo will generate it for 40 hours (delivered quantity). In the second week, if you deliver another 30 hours of service, you can go back to the Sales Order and update the Delivered quantity to 70 hours. Odoo will create a second invoice for 30 hours when you click on the "Create Invoice" button. 

The total invoiced quantity will be automatically tracked by Odoo in addition to the Ordered quantity and the total Delivered Quantity in the Sales Order.

Odoo 12 CE also has a Timesheet module if you need to track individual timesheets. 


Hope that helps.

Avatar
Discard
Best Answer

Hello Matthew Hilton,

As mentioned by Paresh, it is available out of the box, along with setting up Product Master configuration you can also use Project and Tasks module for better tracking. 

Hope the following link for creating an automatic task from SO may help you.

\https://bit.ly/2ZtOr7i


Best Regards,

Kalpana


Avatar
Discard