diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index 343f3dfb449..49bf969d538 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -2249,6 +2249,9 @@ class AccountMove(models.Model): if command == Command.CREATE and line_vals.get('display_type') not in ('payment_term', 'tax', 'rounding') ] + elif move.move_type == 'entry': + if 'partner_id' not in data: + data['partner_id'] = False if not self.journal_id.active and 'journal_id' in data_list: del default['journal_id'] return data_list @@ -2258,8 +2261,6 @@ class AccountMove(models.Model): default = dict(default or {}) if (fields.Date.to_date(default.get('date')) or self.date) <= self.company_id._get_user_fiscal_lock_date(): default['date'] = self.company_id._get_user_fiscal_lock_date() + timedelta(days=1) - if self.move_type == 'entry': - default['partner_id'] = False copied_am = super().copy(default) message_origin = '' if not copied_am.auto_post_origin_id else \ (Markup('
') + _('This recurring entry originated from %s')) % copied_am.auto_post_origin_id._get_html_link() @@ -3437,6 +3438,7 @@ class AccountMove(models.Model): default_values.update({ 'move_type': TYPE_REVERSE_MAP[move.move_type], 'reversed_entry_id': move.id, + 'partner_id': move.partner_id.id, }) reverse_moves += move.with_context( move_reverse_cancel=cancel, diff --git a/addons/account/tests/test_account_bank_statement.py b/addons/account/tests/test_account_bank_statement.py index 219e62cfbae..e9df8d53842 100644 --- a/addons/account/tests/test_account_bank_statement.py +++ b/addons/account/tests/test_account_bank_statement.py @@ -1424,3 +1424,26 @@ class TestAccountBankStatementLine(AccountTestInvoicingCommon): {'res_id': statement.id, 'res_model': 'account.bank.statement'}, {'res_id': statement.id, 'res_model': 'account.bank.statement'}, ]) + + def test_statement_reverse_keeps_partner(self): + partner = self.env['res.partner'].create({ + 'name': 'Test Partner', + }) + + statement_line = self.env['account.bank.statement.line'].create({ + 'date': '2019-01-01', + 'payment_ref': 'line_1', + 'partner_id': partner.id, + 'journal_id': self.bank_journal_1.id, + 'amount': 1250.0, + }) + move = statement_line.move_id + + move_reversal = self.env['account.move.reversal'].with_context(active_model="account.move", active_ids=move.ids).create({ + 'date': fields.Date.from_string('2021-02-01'), + 'journal_id': self.bank_journal_1.id, + }) + reversal = move_reversal.reverse_moves() + reversed_move = self.env['account.move'].browse(reversal['res_id']) + + self.assertEqual(reversed_move.partner_id, partner)