1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
# -*- coding: utf-8 -*-
from odoo import api, models
class AccountEdiXmlUBL21(models.AbstractModel):
_name = "account.edi.xml.ubl_21"
_inherit = 'account.edi.xml.ubl_20'
_description = "UBL 2.1"
# -------------------------------------------------------------------------
# EXPORT
# -------------------------------------------------------------------------
def _export_invoice_filename(self, invoice):
return f"{invoice.name.replace('/', '_')}_ubl_21.xml"
def _export_invoice_ecosio_schematrons(self):
return {
'invoice': 'org.oasis-open:invoice:2.1',
'credit_note': 'org.oasis-open:creditnote:2.1',
}
def _export_invoice_vals(self, invoice):
# EXTENDS account.edi.xml.ubl_20
vals = super()._export_invoice_vals(invoice)
vals.update({
'AddressType_template': 'account_edi_ubl_cii.ubl_21_AddressType',
'PaymentTermsType_template': 'account_edi_ubl_cii.ubl_21_PaymentTermsType',
'PartyType_template': 'account_edi_ubl_cii.ubl_21_PartyType',
'InvoiceLineType_template': 'account_edi_ubl_cii.ubl_21_InvoiceLineType',
'CreditNoteLineType_template': 'account_edi_ubl_cii.ubl_21_CreditNoteLineType',
'DebitNoteLineType_template': 'account_edi_ubl_cii.ubl_21_DebitNoteLineType',
'InvoiceType_template': 'account_edi_ubl_cii.ubl_21_InvoiceType',
'CreditNoteType_template': 'account_edi_ubl_cii.ubl_21_CreditNoteType',
'DebitNoteType_template': 'account_edi_ubl_cii.ubl_21_DebitNoteType',
})
vals['vals'].update({
'ubl_version_id': 2.1,
'buyer_reference': invoice.commercial_partner_id.ref,
})
return vals
@api.model
def _get_customization_ids(self):
return {
'ubl_bis3': 'urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0',
'nlcius': 'urn:cen.eu:en16931:2017#compliant#urn:fdc:nen.nl:nlcius:v1.0',
'ubl_sg': 'urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:sg:3.0',
'xrechnung': 'urn:cen.eu:en16931:2017#compliant#urn:xeinkauf.de:kosit:xrechnung_3.0',
'ubl_a_nz': 'urn:cen.eu:en16931:2017#conformant#urn:fdc:peppol.eu:2017:poacc:billing:international:aunz:3.0',
}
|