[FIX] account: reversal has no partner id

Current behaviour:
When reversing a bank statement,
the partner id gets removed

Steps to reproduce:
1. Go to Accounting, Journal Entries
2. Select/Create a bank statement with partner
3. Click on Reverse entry, then Reverse
4. Head back to Journal Entries
5. Reversal of the bank statement has no partner

opw-3345594

closes odoo/odoo#126992

X-original-commit: 72d82ed813c4baa11060ebcd1df6335410c5e337
Signed-off-by: William André (wan) <wan@odoo.com>
This commit is contained in:
Antoine (ande)
2023-07-01 00:51:54 +02:00
parent 574a5a2f48
commit e1d18960b5
2 changed files with 27 additions and 2 deletions
+4 -2
View File
@@ -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('<br/>') + _('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,
@@ -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)