diff --git a/addons/hr_expense/tests/test_expenses.py b/addons/hr_expense/tests/test_expenses.py index 15341b08bed..0a65a4d7c77 100644 --- a/addons/hr_expense/tests/test_expenses.py +++ b/addons/hr_expense/tests/test_expenses.py @@ -355,3 +355,31 @@ class TestExpenses(TestExpenseCommon): move = self.env['account.payment'].browse(action['res_id']).move_id move.button_cancel() self.assertEqual(sheet.state, 'done', 'Sheet state must not change when the payment linked to that sheet is canceled') + + def test_expense_amount_total_signed_compute(self): + sheet = self.env['hr.expense.sheet'].create({ + 'company_id': self.env.company.id, + 'employee_id': self.expense_employee.id, + 'name': 'test sheet', + 'expense_line_ids': [ + (0, 0, { + 'name': 'expense_1', + 'date': '2016-01-01', + 'product_id': self.product_a.id, + 'unit_amount': 10.0, + 'employee_id': self.expense_employee.id + }), + ], + }) + + + #actions + sheet.action_submit_sheet() + sheet.approve_expense_sheets() + sheet.action_sheet_move_create() + action_data = sheet.action_register_payment() + wizard = Form(self.env['account.payment.register'].with_context(action_data['context'])).save() + action = wizard.action_create_payments() + + move = self.env['account.payment'].browse(action['res_id']).move_id + self.assertEqual(move.amount_total_signed, 10.0, 'The total amount of the payment move is not correct') diff --git a/addons/hr_expense/wizard/account_payment_register.py b/addons/hr_expense/wizard/account_payment_register.py index 78af660da20..fd3c4b8a28a 100644 --- a/addons/hr_expense/wizard/account_payment_register.py +++ b/addons/hr_expense/wizard/account_payment_register.py @@ -26,6 +26,8 @@ class AccountPaymentRegister(models.TransientModel): expenses = vals['batch']['lines'].expense_id if expenses: payment.line_ids.write({'expense_id': expenses[0].id}) + receivable_lines = payment.line_ids.filtered(lambda line: line.account_id.user_type_id.type in ('receivable', 'payable')) + receivable_lines.write({'exclude_from_invoice_tab': True}) return payments def _reconcile_payments(self, to_process, edit_mode=False):