55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
# Copyright 2022 Simone Rubino - Agile Business Group
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
|
|
from odoo.fields import first
|
|
from odoo.tests import Form, tagged
|
|
|
|
from odoo.addons.sale.tests.common import TestSaleCommon
|
|
|
|
|
|
@tagged("post_install", "-at_install")
|
|
class TestTransactionID(TestSaleCommon):
|
|
@classmethod
|
|
def setUpClass(cls, chart_template_ref=None):
|
|
super().setUpClass(chart_template_ref=chart_template_ref)
|
|
|
|
sale_order_form = Form(
|
|
cls.env["sale.order"].with_context(
|
|
tracking_disable=True,
|
|
)
|
|
)
|
|
sale_order_form.partner_id = cls.partner_a
|
|
with sale_order_form.order_line.new() as sale_line:
|
|
sale_line.product_id = cls.company_data["product_service_order"]
|
|
sale_line.product_uom_qty = 5
|
|
cls.sale_order = sale_order_form.save()
|
|
|
|
def test_transaction_propagation(self):
|
|
"""
|
|
Check that transaction_id is propagated from sale order to the invoice.
|
|
"""
|
|
# pre-condition: the sale order has the transaction set
|
|
transaction_id = "Test transaction ID"
|
|
self.sale_order.transaction_id = transaction_id
|
|
|
|
# Confirm the SO
|
|
self.sale_order.action_confirm()
|
|
|
|
# Create regular invoice
|
|
payment_form = Form(
|
|
self.env["sale.advance.payment.inv"].with_context(
|
|
active_model=self.sale_order._name,
|
|
active_ids=self.sale_order.ids,
|
|
active_id=self.sale_order.id,
|
|
)
|
|
)
|
|
payment_form.advance_payment_method = "delivered"
|
|
payment = payment_form.save()
|
|
payment.create_invoices()
|
|
|
|
# post-condition: there is an invoice
|
|
# and has the same transaction of the sale order
|
|
invoice = first(self.sale_order.invoice_ids)
|
|
self.assertTrue(invoice)
|
|
self.assertEqual(invoice.transaction_id, transaction_id)
|