Skip to content
Snippets Groups Projects
Commit f6869bf2 authored by Abderraouf Ghrissi (abgh)'s avatar Abderraouf Ghrissi (abgh)
Browse files

[FIX] sale_timesheet: default_service_policy not working in product form


Before this commit:
- There is a bug in odoo enterprise.
project.project form view > invoicing notebook > services created using create and edit
should be configured by default with an 'invoicing policy' set to 'based on timesheets'.
Technically, while we're using 'default_service_policy' with the right value, we're
getting a different value in the form.

After this commit:
- The bug is fixed.

closes odoo/odoo#134360

X-original-commit: fa034b2a
Signed-off-by: default avatarXavier Bol (xbo) <xbo@odoo.com>
parent 6ba4a671
No related branches found
No related tags found
No related merge requests found
......@@ -157,9 +157,14 @@ class ProductProduct(models.Model):
self.ensure_one()
return self.type == 'service' and self.service_policy == 'delivered_timesheet'
def _inverse_service_policy(self):
for product in self:
if product.service_policy:
product.invoice_policy, product.service_type = SERVICE_TO_GENERAL.get(product.service_policy, (False, False))
@api.onchange('service_policy')
def _onchange_service_policy(self):
self.product_tmpl_id._inverse_service_policy()
self._inverse_service_policy()
vals = self.product_tmpl_id._get_onchange_service_policy_updates(self.service_tracking,
self.service_policy,
self.project_id,
......
......@@ -3,7 +3,7 @@
from odoo import Command
from .common import TestCommonSaleTimesheet
from odoo.tests import tagged
from odoo.tests import tagged, Form
@tagged('post_install', '-at_install')
......@@ -123,3 +123,7 @@ class TestProject(TestCommonSaleTimesheet):
employee_mapping.cost = self.employee_user.timesheet_cost
employee_mapping.employee_id = self.employee_company_B
self.assertEqual(employee_mapping.cost, self.employee_company_B.timesheet_cost)
def test_open_product_form_with_default_service_policy(self):
form = Form(self.env['product.product'].with_context(default_detailed_type='service', default_service_policy='delivered_timesheet'))
self.assertEqual('delivered_timesheet', form.service_policy)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment