diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py
index 086dc125ccabd6c8138402f60ea1621912f1a205..3b0fbdf9bba15e1a4638d033a2c6b159f405d361 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):