[FIX] account_payment_partner: _compute_invoice_partner_bank isn't executed when partner_id changes

TT30875
This commit is contained in:
Carlos Dauden
2021-07-07 14:52:32 +02:00
parent 5b89f88bfd
commit 86893badc6
2 changed files with 20 additions and 1 deletions

View File

@@ -79,6 +79,15 @@ class AccountMove(models.Model):
partner.supplier_payment_mode_id.refund_payment_mode_id
)
@api.onchange("partner_id")
def _onchange_partner_id(self):
"""Force compute because the onchange chain doesn't call
``_compute_invoice_partner_bank``.
"""
res = super()._onchange_partner_id()
self._compute_invoice_partner_bank()
return res
@api.depends("partner_id", "payment_mode_id")
def _compute_invoice_partner_bank(self):
for move in self:

View File

@@ -172,7 +172,7 @@ class TestAccountPaymentPartner(SavepointCase):
cls.journal_bank = cls.env["res.partner.bank"].create(
{
"acc_number": "GB95LOYD87430237296288",
"partner_id": cls.env.user.company_id.id,
"partner_id": cls.env.user.company_id.partner_id.id,
}
)
cls.journal = cls.env["account.journal"].create(
@@ -229,6 +229,16 @@ class TestAccountPaymentPartner(SavepointCase):
self.payment_mode_model,
)
def test_partner_id_changes_compute_invoice_partner_bank(self):
# Test _compute_invoice_partner_bank is executed when partner_id changes
move_form = Form(
self.env["account.move"].with_context(default_type="out_invoice")
)
self.assertFalse(move_form.invoice_partner_bank_id)
move_form.partner_id = self.customer
self.assertEquals(move_form.payment_mode_id, self.customer_payment_mode)
self.assertFalse(move_form.invoice_partner_bank_id)
def test_out_invoice_onchange(self):
# Test the onchange methods in invoice
invoice = self.move_model.new(