se mueve asignacion de ProfileID a objetos de factura
FossilOrigin-Name: 495e73349c8479f846c628397eea242912b982b83c4a294d8682b35c762f61f2
This commit is contained in:
		| @@ -122,8 +122,7 @@ class DianXMLExtensionCUDFE(FachoXMLExtension): | |||||||
|         fachoxml.set_element('./cbc:UUID', cufe, |         fachoxml.set_element('./cbc:UUID', cufe, | ||||||
|                              schemeID=self.tipo_ambiente, |                              schemeID=self.tipo_ambiente, | ||||||
|                              schemeName=self.schemeName()) |                              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()) |         fachoxml.set_element('./cbc:ProfileExecutionID', self._tipo_ambiente_int()) | ||||||
|         #DIAN 1.7.-2020: FAB36 |         #DIAN 1.7.-2020: FAB36 | ||||||
|         fachoxml.set_element('./ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/sts:DianExtensions/sts:QRCode', |         fachoxml.set_element('./ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/sts:DianExtensions/sts:QRCode', | ||||||
|   | |||||||
| @@ -18,3 +18,6 @@ class DIANCreditNoteXML(DIANInvoiceXML): | |||||||
|  |  | ||||||
|     def tag_document_concilied(fexml): |     def tag_document_concilied(fexml): | ||||||
|         return 'Credited' |         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') | ||||||
|   | |||||||
| @@ -13,6 +13,9 @@ class DIANDebitNoteXML(DIANInvoiceXML): | |||||||
|     def __init__(self, invoice): |     def __init__(self, invoice): | ||||||
|         super().__init__(invoice, 'DebitNote') |         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): |     def tag_document(fexml): | ||||||
|         return 'DebitNote' |         return 'DebitNote' | ||||||
|  |  | ||||||
|   | |||||||
| @@ -21,6 +21,7 @@ class DIANInvoiceXML(fe.FeXML): | |||||||
|         ublextension = self.fragment('./ext:UBLExtensions/ext:UBLExtension', append=True) |         ublextension = self.fragment('./ext:UBLExtensions/ext:UBLExtension', append=True) | ||||||
|         extcontent = ublextension.find_or_create_element('/ext:UBLExtension/ext:ExtensionContent') |         extcontent = ublextension.find_or_create_element('/ext:UBLExtension/ext:ExtensionContent') | ||||||
|         self.attach_invoice(invoice) |         self.attach_invoice(invoice) | ||||||
|  |         self.post_attach_invoice(invoice) | ||||||
|  |  | ||||||
|     def set_supplier(fexml, invoice): |     def set_supplier(fexml, invoice): | ||||||
|         fexml.placeholder_for('./cac:AccountingSupplierParty') |         fexml.placeholder_for('./cac:AccountingSupplierParty') | ||||||
| @@ -415,7 +416,6 @@ class DIANInvoiceXML(fe.FeXML): | |||||||
|             return fexml._set_debit_note_document_reference(reference) |             return fexml._set_debit_note_document_reference(reference) | ||||||
|         if isinstance(reference, CreditNoteDocumentReference): |         if isinstance(reference, CreditNoteDocumentReference): | ||||||
|             return fexml._set_credit_note_document_reference(reference) |             return fexml._set_credit_note_document_reference(reference) | ||||||
|  |  | ||||||
|         if isinstance(reference, InvoiceDocumentReference): |         if isinstance(reference, InvoiceDocumentReference): | ||||||
|             return fexml._set_invoice_document_reference(reference) |             return fexml._set_invoice_document_reference(reference) | ||||||
|  |  | ||||||
| @@ -567,6 +567,10 @@ class DIANInvoiceXML(fe.FeXML): | |||||||
|             fexml.set_element_amount_for(line, './cbc:Amount', charge.amount) |             fexml.set_element_amount_for(line, './cbc:Amount', charge.amount) | ||||||
|             fexml.set_element_amount_for(line, './cbc:BaseAmount', charge.base_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): |     def attach_invoice(fexml, invoice): | ||||||
|         """adiciona etiquetas a FEXML y retorna FEXML |         """adiciona etiquetas a FEXML y retorna FEXML | ||||||
|         en caso de fallar validacion retorna None""" |         en caso de fallar validacion retorna None""" | ||||||
|   | |||||||
| @@ -33,6 +33,23 @@ def test_invoicesimple_build_with_cufe(simple_invoice): | |||||||
|     cufe = xml.get_element_text('/fe:Invoice/cbc:UUID') |     cufe = xml.get_element_text('/fe:Invoice/cbc:UUID') | ||||||
|     assert cufe != '' |     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): | def test_invoicesimple_xml_signed(monkeypatch, simple_invoice): | ||||||
|     xml = DIANInvoiceXML(simple_invoice) |     xml = DIANInvoiceXML(simple_invoice) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user