Skip to content
Extraits de code Groupes Projets
Valider 60d04deb rédigé par Juliana's avatar Juliana
Parcourir les fichiers

[ADD]Add TauxHoraire on line

parent 47c2d518
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!114.0 sale overview
...@@ -80,7 +80,7 @@ class Project(models.Model): ...@@ -80,7 +80,7 @@ class Project(models.Model):
if not is_milestone: if not is_milestone:
# ***** Modif Filament ***** # ***** Modif Filament *****
rows_sale_line[sale_line_row_key][ 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 = {} rows_sale_line_all_data = {}
if not employees: if not employees:
...@@ -100,7 +100,7 @@ class Project(models.Model): ...@@ -100,7 +100,7 @@ class Project(models.Model):
if not is_milestone: if not is_milestone:
# ***** Modif Filament ***** # ***** Modif Filament *****
rows_sale_line[sale_line_row_key][ 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: 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) rows_sale_line_all_data[sale_line_row_key] = [0] * len(row_employee)
......
...@@ -69,15 +69,33 @@ class SaleOrder(models.Model): ...@@ -69,15 +69,33 @@ class SaleOrder(models.Model):
else: else:
return super(SaleOrder, self).action_confirm() 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): class SaleOrderLine(models.Model):
_inherit = "sale.order.line" _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): 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 """ 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 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 \ if self.product_uom.id != company_time_uom_id.id \
and self.product_uom.category_id.id == company_time_uom_id.category_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) planned_hours = super(SaleOrderLine, self)._convert_qty_company_hours(dest_company)
......
...@@ -20,9 +20,13 @@ ...@@ -20,9 +20,13 @@
options="{'no_create': True}"/> options="{'no_create': True}"/>
<field name="project_ids" string="Projets associés" attrs="{'invisible':[('state','!=','sale')]}"/> <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 name="no_create_task" attrs="{'invisible':['|',('state','=','sale'),('project_tracking','=',False)]}"/>
</field> </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> </field>
</record> </record>
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter