diff --git a/models/project_overview.py b/models/project_overview.py index 66a0351ad34696a2ab7bcacda72af1e9924fd9d0..e6e0f70e515eb13902629a75758a2f95054d4652 100644 --- a/models/project_overview.py +++ b/models/project_overview.py @@ -80,7 +80,7 @@ class Project(models.Model): if not is_milestone: # ***** Modif Filament ***** rows_sale_line[sale_line_row_key][ - -2] = sale_line.product_uom_qty * sale_line.price_unit / sale_line.order_id.taux_horaire if sale_line else 0.0 + -2] = sale_line.product_uom_qty * sale_line.price_unit / sale_line.taux_horaire if sale_line else 0.0 rows_sale_line_all_data = {} if not employees: @@ -100,7 +100,7 @@ class Project(models.Model): if not is_milestone: # ***** Modif Filament ***** rows_sale_line[sale_line_row_key][ - -2] = sale_line.product_uom_qty * sale_line.price_unit / sale_line.order_id.taux_horaire if sale_line else 0.0 + -2] = sale_line.product_uom_qty * sale_line.price_unit / sale_line.taux_horaire if sale_line else 0.0 if sale_line_row_key not in rows_sale_line_all_data: rows_sale_line_all_data[sale_line_row_key] = [0] * len(row_employee) diff --git a/models/sale_order.py b/models/sale_order.py index 16e001b8482f79195dd517fce0db3b19aae16158..c1ff4156f1b28b6f383766e2543b70b0794f315d 100644 --- a/models/sale_order.py +++ b/models/sale_order.py @@ -69,15 +69,33 @@ class SaleOrder(models.Model): else: return super(SaleOrder, self).action_confirm() + @api.onchange('taux_horaire') + def _onchange_taux_horaire(self): + for order in self: + for line in order.order_line: + line.taux_horaire = order.taux_horaire + class SaleOrderLine(models.Model): _inherit = "sale.order.line" + @api.model + def _get_default_taux_horaire(self): + if self.order_id: + return self.order_id.taux_horaire + else: + return self.env.company.taux_horaire + + taux_horaire = fields.Integer( + 'Taux horaire', + default=_get_default_taux_horaire + ) + def _convert_qty_company_hours(self, dest_company): """ Reprise de la fonction native pour changer le mode de calcul des heures planifiées dans timesheet """ company_time_uom_id = dest_company.project_time_mode_id - taux_horaire = self.order_id.taux_horaire + taux_horaire = self.taux_horaire if self.product_uom.id != company_time_uom_id.id \ and self.product_uom.category_id.id == company_time_uom_id.category_id.id: planned_hours = super(SaleOrderLine, self)._convert_qty_company_hours(dest_company) diff --git a/views/sale_view.xml b/views/sale_view.xml index 519c98b9e82a9d76fe51d64093d574358a5d9842..b79e63f5b9299daa1d6e566a8d3cea2af6141d13 100644 --- a/views/sale_view.xml +++ b/views/sale_view.xml @@ -20,9 +20,13 @@ options="{'no_create': True}"/> <field name="project_ids" string="Projets associés" attrs="{'invisible':[('state','!=','sale')]}"/> <field name="no_create_task" attrs="{'invisible':['|',('state','=','sale'),('project_tracking','=',False)]}"/> - </field> - + <xpath expr="//notebook//page//field[@name='order_line']//form//field[@name='name']" position="after"> + <field name="taux_horaire"/> + </xpath> + <xpath expr="//notebook//page//field[@name='order_line']//tree//field[@name='company_id']" position="after"> + <field name="taux_horaire" optional="hide"/> + </xpath> </field> </record>