details:   https://code.tryton.org/tryton/commit/620b6f4c16b4
branch:    7.8
user:      Cédric Krier <[email protected]>
date:      Mon Dec 29 12:36:26 2025 +0100
description:
        Split the UBL OrderReference field into sale reference and sale number

        Closes #14452
        (grafted from 66f50ae467e524dbeaf4f1efdd277671e79cf6ef)
diffstat:

 modules/edocument_ubl/edocument.py              |  10 ++++++++++
 modules/edocument_ubl/setup.py                  |   1 +
 modules/edocument_ubl/template/2/CreditNote.xml |   3 ++-
 modules/edocument_ubl/template/2/Invoice.xml    |   3 ++-
 modules/edocument_ubl/tests/test_module.py      |   3 ++-
 modules/edocument_ubl/tryton.cfg                |   1 +
 6 files changed, 18 insertions(+), 3 deletions(-)

diffs (81 lines):

diff -r b8959af43bb3 -r 620b6f4c16b4 modules/edocument_ubl/edocument.py
--- a/modules/edocument_ubl/edocument.py        Tue Dec 23 09:55:34 2025 +0100
+++ b/modules/edocument_ubl/edocument.py        Mon Dec 29 12:36:26 2025 +0100
@@ -169,6 +169,16 @@
         else:
             return self.invoice.tax_identifier
 
+    @cached_property
+    def sale_reference(self):
+        if hasattr(self.invoice, 'sales'):
+            return ','.join(s.reference for s in self.invoice.sales)
+
+    @cached_property
+    def sale_number(self):
+        if hasattr(self.invoice, 'sales'):
+            return ','.join(s.number for s in self.invoice.sales)
+
     @property
     def taxes(self):
         def key(line):
diff -r b8959af43bb3 -r 620b6f4c16b4 modules/edocument_ubl/setup.py
--- a/modules/edocument_ubl/setup.py    Tue Dec 23 09:55:34 2025 +0100
+++ b/modules/edocument_ubl/setup.py    Mon Dec 29 12:36:26 2025 +0100
@@ -56,6 +56,7 @@
     get_require_version('trytond_account_invoice'),
     get_require_version('trytond_document_incoming_invoice'),
     get_require_version('trytond_purchase'),
+    get_require_version('trytond_sale'),
     ]
 
 setup(name=name,
diff -r b8959af43bb3 -r 620b6f4c16b4 
modules/edocument_ubl/template/2/CreditNote.xml
--- a/modules/edocument_ubl/template/2/CreditNote.xml   Tue Dec 23 09:55:34 
2025 +0100
+++ b/modules/edocument_ubl/template/2/CreditNote.xml   Mon Dec 29 12:36:26 
2025 +0100
@@ -21,7 +21,8 @@
 
<cbc:DocumentCurrencyCode>${this.invoice.currency.code}</cbc:DocumentCurrencyCode>
 <cbc:BuyerReference 
py:if="this.invoice.reference">${this.invoice.reference}</cbc:BuyerReference>
 <cac:OrderReference>
-    <cbc:ID>${this.invoice.origins or this.invoice.number}</cbc:ID>
+    <cbc:ID>${this.sale_reference or 'NA'}</cbc:ID>
+    <cbc:SalesOrderID 
py:if="this.sale_number">${this.sale_number}</cbc:SalesOrderID>
 </cac:OrderReference>
 <cac:AdditionalDocumentReference py:for="document in 
this.additional_documents">
     <cbc:ID>${document['id']}</cbc:ID>
diff -r b8959af43bb3 -r 620b6f4c16b4 
modules/edocument_ubl/template/2/Invoice.xml
--- a/modules/edocument_ubl/template/2/Invoice.xml      Tue Dec 23 09:55:34 
2025 +0100
+++ b/modules/edocument_ubl/template/2/Invoice.xml      Mon Dec 29 12:36:26 
2025 +0100
@@ -21,7 +21,8 @@
 
<cbc:DocumentCurrencyCode>${this.invoice.currency.code}</cbc:DocumentCurrencyCode>
 <cbc:BuyerReference 
py:if="this.invoice.reference">${this.invoice.reference}</cbc:BuyerReference>
 <cac:OrderReference>
-    <cbc:ID>${this.invoice.origins or this.invoice.number}</cbc:ID>
+    <cbc:ID>${this.sale_reference or 'NA'}</cbc:ID>
+    <cbc:SalesOrderID 
py:if="this.sale_number">${this.sale_number}</cbc:SalesOrderID>
 </cac:OrderReference>
 <cac:AdditionalDocumentReference py:for="document in 
this.additional_documents">
     <cbc:ID>${document['id']}</cbc:ID>
diff -r b8959af43bb3 -r 620b6f4c16b4 modules/edocument_ubl/tests/test_module.py
--- a/modules/edocument_ubl/tests/test_module.py        Tue Dec 23 09:55:34 
2025 +0100
+++ b/modules/edocument_ubl/tests/test_module.py        Mon Dec 29 12:36:26 
2025 +0100
@@ -135,7 +135,8 @@
 class EdocumentUblTestCase(ModuleTestCase):
     "Test Edocument Ubl module"
     module = 'edocument_ubl'
-    extras = ['account_invoice', 'document_incoming_invoice', 'purchase']
+    extras = [
+        'account_invoice', 'document_incoming_invoice', 'purchase', 'sale']
 
     @with_transaction()
     def test_Invoice_2(self):
diff -r b8959af43bb3 -r 620b6f4c16b4 modules/edocument_ubl/tryton.cfg
--- a/modules/edocument_ubl/tryton.cfg  Tue Dec 23 09:55:34 2025 +0100
+++ b/modules/edocument_ubl/tryton.cfg  Mon Dec 29 12:36:26 2025 +0100
@@ -9,6 +9,7 @@
     account_invoice
     document_incoming_invoice
     purchase
+    sale
 xml:
     account.xml
     message.xml

Reply via email to