se mueve asignacion de ProfileID a objetos de factura

FossilOrigin-Name: 495e73349c8479f846c628397eea242912b982b83c4a294d8682b35c762f61f2
This commit is contained in:
bit4bit 2022-10-14 21:36:26 +00:00
parent b00eadb9e5
commit 2171da658a
5 changed files with 30 additions and 4 deletions

View File

@ -122,8 +122,7 @@ class DianXMLExtensionCUDFE(FachoXMLExtension):
fachoxml.set_element('./cbc:UUID', cufe,
schemeID=self.tipo_ambiente,
schemeName=self.schemeName())
#DIAN 1.8.-2021: FAD03
fachoxml.set_element('./cbc:ProfileID', 'DIAN 2.1: Factura Electrónica de Venta')
fachoxml.set_element('./cbc:ProfileExecutionID', self._tipo_ambiente_int())
#DIAN 1.7.-2020: FAB36
fachoxml.set_element('./ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/sts:DianExtensions/sts:QRCode',

View File

@ -18,3 +18,6 @@ class DIANCreditNoteXML(DIANInvoiceXML):
def tag_document_concilied(fexml):
return 'Credited'
def post_attach_invoice(fexml, invoice):
fexml.set_element('./cbc:ProfileID', 'DIAN 2.1: Nota Crédito de Factura Electrónica de Venta')

View File

@ -13,6 +13,9 @@ class DIANDebitNoteXML(DIANInvoiceXML):
def __init__(self, invoice):
super().__init__(invoice, 'DebitNote')
def post_attach_invoice(fexml, invoice):
fexml.set_element('./cbc:ProfileID', 'DIAN 2.1 Nota Débito de Factura Electrónica de Venta')
def tag_document(fexml):
return 'DebitNote'

View File

@ -21,6 +21,7 @@ class DIANInvoiceXML(fe.FeXML):
ublextension = self.fragment('./ext:UBLExtensions/ext:UBLExtension', append=True)
extcontent = ublextension.find_or_create_element('/ext:UBLExtension/ext:ExtensionContent')
self.attach_invoice(invoice)
self.post_attach_invoice(invoice)
def set_supplier(fexml, invoice):
fexml.placeholder_for('./cac:AccountingSupplierParty')
@ -415,7 +416,6 @@ class DIANInvoiceXML(fe.FeXML):
return fexml._set_debit_note_document_reference(reference)
if isinstance(reference, CreditNoteDocumentReference):
return fexml._set_credit_note_document_reference(reference)
if isinstance(reference, InvoiceDocumentReference):
return fexml._set_invoice_document_reference(reference)
@ -566,7 +566,11 @@ class DIANInvoiceXML(fe.FeXML):
line.set_element('./cbc:MultiplierFactorNumeric', str(round(charge.multiplier_factor_numeric, 2)))
fexml.set_element_amount_for(line, './cbc:Amount', charge.amount)
fexml.set_element_amount_for(line, './cbc:BaseAmount', charge.base_amount)
def post_attach_invoice(fexml, invoice):
#DIAN 1.8.-2021: FAD03
fexml.set_element('./cbc:ProfileID', 'DIAN 2.1: Factura Electrónica de Venta')
def attach_invoice(fexml, invoice):
"""adiciona etiquetas a FEXML y retorna FEXML
en caso de fallar validacion retorna None"""

View File

@ -33,7 +33,24 @@ def test_invoicesimple_build_with_cufe(simple_invoice):
cufe = xml.get_element_text('/fe:Invoice/cbc:UUID')
assert cufe != ''
def test_invoice_profile_id(simple_invoice):
xml = DIANInvoiceXML(simple_invoice)
cufe_extension = fe.DianXMLExtensionCUFE(simple_invoice)
xml.add_extension(cufe_extension)
assert xml.get_element_text('/fe:Invoice/cbc:ProfileID') == 'DIAN 2.1: Factura Electrónica de Venta'
def test_debit_note_profile_id(simple_invoice):
xml = DIANDebitNoteXML(simple_invoice)
cufe_extension = fe.DianXMLExtensionCUFE(simple_invoice)
xml.add_extension(cufe_extension)
assert xml.get_element_text('/fe:DebitNote/cbc:ProfileID') == 'DIAN 2.1 Nota Débito de Factura Electrónica de Venta'
def test_credit_note_profile_id(simple_invoice):
xml = DIANCreditNoteXML(simple_invoice)
cufe_extension = fe.DianXMLExtensionCUFE(simple_invoice)
xml.add_extension(cufe_extension)
assert xml.get_element_text('/fe:CreditNote/cbc:ProfileID') == 'DIAN 2.1: Nota Crédito de Factura Electrónica de Venta'
def test_invoicesimple_xml_signed(monkeypatch, simple_invoice):
xml = DIANInvoiceXML(simple_invoice)