[FIX] sale_timesheet: cost with different UOM

- Create a Service article:
  UoM = Day(s)
  Invoicing policy = on ordered quantity
  Tracking = Task in project
- Create a SO: 10 days, unit price = $100 and validate.
- On the task created, the initially planned hours is equal to
  80 (10 * 8h).
- On this task, timesheet some hours with several employees:
  15 hours
  10 hours
  10 hours

The `timesheet_revenue` on analytic lines is incorrect:
  1000
  0
  0

It should be:
  187.5
  125
  125

The unit conversion between days and hours is not performed...

opw-1925320

closes odoo/odoo#31062
This commit is contained in:
Nicolas Martinelli
2019-02-13 11:18:55 +00:00
parent 56631c86c6
commit 3dbf51babe
+1 -1
View File
@@ -134,7 +134,7 @@ class AccountAnalyticLine(models.Model):
total_revenue_invoiced = sum(analytic_lines.mapped('timesheet_revenue'))
# compute (new) revenue of current timesheet line
values['timesheet_revenue'] = min(
analytic_account.currency_id.round(unit_amount * so_line.currency_id.compute(so_line.price_unit, analytic_account.currency_id) * (1-so_line.discount)),
analytic_account.currency_id.round(unit_amount * sale_price * (1-so_line.discount/100)),
total_revenue_so - total_revenue_invoiced
)
values['timesheet_invoice_type'] = 'billable_fixed'