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