From 60d04deb20ade04aa070a0c30347e10de1cfba09 Mon Sep 17 00:00:00 2001
From: Juliana <juliana@le-filament.com>
Date: Mon, 5 Dec 2022 15:19:16 +0100
Subject: [PATCH] [ADD]Add TauxHoraire on line
---
models/project_overview.py | 4 ++--
models/sale_order.py | 20 +++++++++++++++++++-
views/sale_view.xml | 8 ++++++--
3 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/models/project_overview.py b/models/project_overview.py
index 66a0351..e6e0f70 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 16e001b..c1ff415 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 519c98b..b79e63f 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>
--
GitLab