From af188dfb44859fcb8dfbce61c7902b4616857a9d Mon Sep 17 00:00:00 2001 From: "Xavier BOL (xbo)" Date: Tue, 16 Feb 2021 14:49:33 +0100 Subject: [PATCH] [IMP] sale_timesheet: remove pricing_type in create SO wizard Since the pricing_type in the project is a compute non-stored field and the user edits no longer this field. The condition on this field is not valid. This commit removes this related field in the 'project.create.sale.order.line' wizard and change the condition using this field to keep the initial behaviour. task-2442683 closes odoo/odoo#66181 --- .../wizard/project_create_sale_order.py | 13 +++---------- .../wizard/project_create_sale_order_views.xml | 7 +++---- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/addons/sale_timesheet/wizard/project_create_sale_order.py b/addons/sale_timesheet/wizard/project_create_sale_order.py index 1bf91ec5886..f85807e0729 100644 --- a/addons/sale_timesheet/wizard/project_create_sale_order.py +++ b/addons/sale_timesheet/wizard/project_create_sale_order.py @@ -41,12 +41,6 @@ class ProjectCreateSalesOrder(models.TransientModel): 'product_id': default_product.id, 'price_unit': default_product.lst_price }) for e in employee_from_timesheet] - else: - result['line_ids'] = [ - (0, 0, { - 'product_id': p.id, - 'price_unit': p.lst_price - }) for p in project.task_ids.timesheet_product_id] return result project_id = fields.Many2one('project.project', "Project", domain=[('sale_line_id', '=', False)], help="Project for which we are creating a sales order", required=True) @@ -54,7 +48,6 @@ class ProjectCreateSalesOrder(models.TransientModel): partner_id = fields.Many2one('res.partner', string="Customer", required=True, help="Customer of the sales order") commercial_partner_id = fields.Many2one(related='partner_id.commercial_partner_id') - pricing_type = fields.Selection(related="project_id.pricing_type") sale_order_id = fields.Many2one( 'sale.order', string="Sales Order", domain="['|', '|', ('partner_id', '=', partner_id), ('partner_id', 'child_of', commercial_partner_id), ('partner_id', 'parent_of', partner_id)]") @@ -89,7 +82,7 @@ class ProjectCreateSalesOrder(models.TransientModel): if not self.line_ids: raise UserError(_("At least one line should be filled.")) - if self.pricing_type == 'employee_rate': + if self.line_ids.employee_id: # all employee having timesheet should be in the wizard map timesheet_employees = self.env['account.analytic.line'].search([('task_id', 'in', self.project_id.tasks.ids)]).mapped('employee_id') map_employees = self.line_ids.mapped('employee_id') @@ -138,9 +131,9 @@ class ProjectCreateSalesOrder(models.TransientModel): return sale_order def _make_billable(self, sale_order): - if self.pricing_type == 'fixed_rate': + if not self.line_ids.employee_id: # Then we configure the project with pricing type is equal to project rate self._make_billable_at_project_rate(sale_order) - else: + else: # Then we configure the project with pricing type is equal to employee rate self._make_billable_at_employee_rate(sale_order) def _make_billable_at_project_rate(self, sale_order): diff --git a/addons/sale_timesheet/wizard/project_create_sale_order_views.xml b/addons/sale_timesheet/wizard/project_create_sale_order_views.xml index 857b04aae71..c23273e4883 100644 --- a/addons/sale_timesheet/wizard/project_create_sale_order_views.xml +++ b/addons/sale_timesheet/wizard/project_create_sale_order_views.xml @@ -11,13 +11,12 @@ - - - + + - +