[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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user