diff --git a/account_payment_order/models/account_move.py b/account_payment_order/models/account_move.py index 3efbe9de413..7c1b5d19c02 100644 --- a/account_payment_order/models/account_move.py +++ b/account_payment_order/models/account_move.py @@ -53,7 +53,7 @@ def _get_payment_order_communication_direct(self): communication = self.payment_reference or self.ref or self.name if self.is_invoice(): if self.is_purchase_document(): - communication = self.ref or self.payment_reference + communication = self.payment_reference or self.ref else: communication = self.payment_reference or self.name return communication or "" diff --git a/account_payment_order/tests/test_payment_order_outbound.py b/account_payment_order/tests/test_payment_order_outbound.py index 54555e02019..c520f4755a0 100644 --- a/account_payment_order/tests/test_payment_order_outbound.py +++ b/account_payment_order/tests/test_payment_order_outbound.py @@ -277,10 +277,13 @@ def test_invoice_communication_01(self): ) def test_invoice_communication_02(self): - self.invoice.payment_reference = "R1234" self.assertEqual( "F1242", self.invoice._get_payment_order_communication_direct() ) + self.invoice.payment_reference = "R1234" + self.assertEqual( + "R1234", self.invoice._get_payment_order_communication_direct() + ) def test_invoice_communication_03(self): self.invoice.ref = False @@ -304,6 +307,13 @@ def test_invoice_communication_03(self): self.invoice._get_payment_order_communication_full(), ) + def test_supplier_invoice_payment_reference(self): + self.invoice.payment_reference = "+++F1234+++" + self.invoice.action_post() + self.assertEqual( + "+++F1234+++", self.invoice._get_payment_order_communication_full() + ) + def test_manual_line_and_manual_date(self): # Create payment order outbound_order = self.env["account.payment.order"].create( @@ -406,7 +416,7 @@ def test_supplier_refund_reference(self): self.invoice.payment_reference = "F/1234" self.invoice.action_post() self.assertEqual( - "F1242", self.invoice._get_payment_order_communication_direct() + "F/1234", self.invoice._get_payment_order_communication_direct() ) self.refund = self._create_supplier_refund(self.invoice) with Form(self.refund) as refund_form: @@ -416,7 +426,9 @@ def test_supplier_refund_reference(self): line_form.price_unit = 75.0 self.refund.action_post() - self.assertEqual("R1234", self.refund._get_payment_order_communication_direct()) + self.assertEqual( + "FR/1234", self.refund._get_payment_order_communication_direct() + ) self.env["account.invoice.payment.line.multi"].with_context( active_model="account.move", active_ids=self.invoice.ids @@ -429,8 +441,7 @@ def test_supplier_refund_reference(self): self.assertEqual(len(payment_order.payment_line_ids), 1) - self.assertEqual("F1242 R1234", payment_order.payment_line_ids.communication) - self.assertNotIn("FR/1234", payment_order.payment_line_ids.communication) + self.assertEqual("F/1234 FR/1234", payment_order.payment_line_ids.communication) def test_supplier_manual_refund(self): """