From 46c1091f36803a5991c90982b80d43972a47ff24 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9rome=20Maes?= <jem@openerp.com>
Date: Mon, 2 Oct 2017 19:53:58 +0200
Subject: [PATCH] [FIX] hr_expense: avoid crash when submitting

Create the sheet before opening a cached one avoid to
get error when computing computed field.
---
 addons/hr_expense/models/hr_expense.py | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py
index 086dc125ccab..3b0fbdf9bba1 100644
--- a/addons/hr_expense/models/hr_expense.py
+++ b/addons/hr_expense/models/hr_expense.py
@@ -109,16 +109,17 @@ class HrExpense(models.Model):
             raise UserError(_("You cannot report twice the same line!"))
         if len(self.mapped('employee_id')) != 1:
             raise UserError(_("You cannot report expenses for different employees in the same report!"))
+        expense_sheet = self.env['hr.expense.sheet'].create({
+            'expense_line_ids': [(4, line.id) for line in self],
+            'name': self[0].name if len(self.ids) == 1 else '',
+            'employee_id': self[0].employee_id.id,
+        })
         return {
             'type': 'ir.actions.act_window',
             'view_mode': 'form',
             'res_model': 'hr.expense.sheet',
             'target': 'current',
-            'context': {
-                'default_expense_line_ids': [line.id for line in self],
-                'default_employee_id': self[0].employee_id.id,
-                'default_name': self[0].name if len(self.ids) == 1 else ''
-            }
+            'res_id': expense_sheet.id,
         }
 
     def _prepare_move_line(self, line):
-- 
GitLab