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>