diff --git a/account_payment_order/models/account_payment.py b/account_payment_order/models/account_payment.py index 5e3cfe38a..6b48725fc 100644 --- a/account_payment_order/models/account_payment.py +++ b/account_payment_order/models/account_payment.py @@ -47,6 +47,15 @@ class AccountPayment(models.Model): for item in self: item.payment_line_date = item.payment_line_ids[:1].date + @api.depends("payment_line_ids") + def _compute_partner_bank_id(self): + # Force the payment line bank account. The grouping function has already + # assured that there's no more than one bank account in the group + order_pays = self.filtered("payment_line_ids") + for pay in order_pays: + pay.partner_bank_id = pay.payment_line_ids.partner_bank_id + return super(AccountPayment, self - order_pays)._compute_partner_bank_id() + @api.constrains("payment_method_line_id") def _check_payment_method_line_id(self): for pay in self: diff --git a/account_payment_order/tests/test_payment_order_outbound.py b/account_payment_order/tests/test_payment_order_outbound.py index f63d2654c..e068046f3 100644 --- a/account_payment_order/tests/test_payment_order_outbound.py +++ b/account_payment_order/tests/test_payment_order_outbound.py @@ -221,6 +221,7 @@ class TestPaymentOrderOutbound(TestPaymentOrderOutboundBase): order.payment_line_ids.partner_bank_id.action_unarchive() self.assertFalse(order.partner_banks_archive_msg) order.draft2open() + self.assertEqual(order.payment_ids[0].partner_bank_id, self.partner.bank_ids) order.open2generated() order.generated2uploaded() self.assertEqual(order.move_ids[0].date, order.payment_ids[0].date)