diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index e01465ca73a..7a4ac45db61 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -1005,7 +1005,7 @@ class HrExpenseSheet(models.Model): for sheet in self: expense_lines = sheet.mapped('expense_line_ids') if expense_lines and any(expense.payment_mode != expense_lines[0].payment_mode for expense in expense_lines): - raise ValidationError(_("Expenses must have the same To Reimburse status.")) + raise ValidationError(_("All expenses in an expense report must have the same \"paid by\" criteria.")) @api.depends('expense_line_ids') def _compute_product_ids(self): diff --git a/addons/hr_expense/views/hr_expense_views.xml b/addons/hr_expense/views/hr_expense_views.xml index f5b5e047ae7..3e35cfe9af7 100644 --- a/addons/hr_expense/views/hr_expense_views.xml +++ b/addons/hr_expense/views/hr_expense_views.xml @@ -761,9 +761,20 @@ nolabel="1" widget="many2many" mode="tree,kanban" - domain="[('state', '=', 'draft'), ('employee_id', '=', employee_id), ('company_id', '=', company_id)]" + domain="[ + ('state', '=', 'draft'), + ('employee_id', '=', employee_id), + ('company_id', '=', company_id), + ('payment_mode', '=?', payment_mode), + ]" options="{'reload_on_button': True}" - context="{'form_view_ref' : 'hr_expense.hr_expense_view_form_without_header', 'default_company_id': company_id, 'default_employee_id': employee_id}" + context="{ + 'form_view_ref' : 'hr_expense.hr_expense_view_form_without_header', + 'default_company_id': company_id, + 'default_employee_id': employee_id, + 'default_sheet_id': active_id, + 'default_payment_mode': payment_mode, + }" attrs="{'readonly': [('is_editable', '=', False)]}" force_save="1">