AttachedDocument(WIP): Se escribe envoltorio AttachedDocument issue #4
This commit is contained in:
		| @@ -6,10 +6,164 @@ __all__ = ['AttachedDocument'] | ||||
| class AttachedDocument(): | ||||
|  | ||||
|     def __init__(self, id): | ||||
|         schema =\ | ||||
|         self.schema =\ | ||||
|             'urn:oasis:names:specification:ubl:schema:xsd:AttachedDocument-2' | ||||
|         self.fexml = fe.FeXML('AttachedDocument', schema) | ||||
|         self.fexml.set_element('./cbc:ID', id) | ||||
|         self.id = id | ||||
|         self.attached_document_invoice = self.attached_document_invoice() | ||||
|  | ||||
|         # self.fexml.placeholder_for( | ||||
|         #     './ext:UBLExtension/ext:ExtensionContent/ds:Signature') | ||||
|         # self.fexml.set_element('./ext:UBLExtension/ext:ExtensionContent/ds:Signature', None, Id=id) | ||||
|         # | ||||
|  | ||||
|     def attached_document_invoice(self): | ||||
|         self.fexml = fe.FeXML( | ||||
|             'AttachedDocument', self.schema) | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE02 | ||||
|         self.fexml.set_element( | ||||
|             './cbc:UBLVersionID', 'UBL 2.1') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE03 | ||||
|         self.fexml.set_element( | ||||
|             './cbc:CustomizationID', 'Documentos adjuntos') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE04 | ||||
|         self.fexml.set_element( | ||||
|             './cbc:ProfileID', 'Factura Electrónica de Venta') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE04a | ||||
|         self.fexml.set_element( | ||||
|             './cbc:ProfileExecutionID', '1') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE04b | ||||
|         self.fexml.set_element( | ||||
|             './cbc:ID', self.id) | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE05 | ||||
|         self.fexml.set_element( | ||||
|             './cbc:IssueDate', '2024-12-07') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE06 | ||||
|         self.fexml.set_element( | ||||
|             './cbc:IssueTime', '12:16:07-05:00') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE08 | ||||
|         self.fexml.set_element( | ||||
|             './cbc:DocumentType', 'Contenedor de Factura Electrónica') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE08a | ||||
|         self.fexml.set_element( | ||||
|             './cbc:ParentDocumentID', 'FE60247') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE09 | ||||
|         self.set_sender_party() | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE20 | ||||
|         self.set_receiver_party() | ||||
|         # DIAN 1.9.-2023: AE33 | ||||
|         self.set_attachment() | ||||
|         self.set_parent_document_line_reference() | ||||
|  | ||||
|     def set_sender_party(self): | ||||
|         # DIAN 1.9.-2023: AE09 | ||||
|         self.fexml.placeholder_for( | ||||
|             './cac:SenderParty') | ||||
|         # DIAN 1.9.-2023: AE10 | ||||
|         self.fexml.placeholder_for( | ||||
|             './cac:SenderParty/cac:PartyTaxScheme') | ||||
|         # DIAN 1.9.-2023: AE11 | ||||
|         self.fexml.set_element( | ||||
|             './cac:SenderParty/cac:PartyTaxScheme/cbc:RegistrationName', | ||||
|             'CASCOS MEDELLIN') | ||||
|         # DIAN 1.9.-2023: AE12 | ||||
|         # DIAN 1.9.-2023: AE13 | ||||
|         # DIAN 1.9.-2023: AE14 | ||||
|         # DIAN 1.9.-2023: AE15 | ||||
|         self.fexml.set_element( | ||||
|             './cac:SenderParty/cac:PartyTaxScheme/cbc:CompanyID', '900795506', | ||||
|             schemeAgencyID='195', | ||||
|             schemeID='0', | ||||
|             schemeName='31') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE16 | ||||
|         self.fexml.set_element( | ||||
|             './cac:SenderParty/cac:PartyTaxScheme/cbc:TaxLevelCode', | ||||
|             'R-99-PN') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE18 | ||||
|         self.fexml.placeholder_for( | ||||
|             './cac:SenderParty/cac:PartyTaxScheme/cac:TaxScheme') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE19 | ||||
|         self.fexml.set_element( | ||||
|             './cac:SenderParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:ID', | ||||
|             '01') | ||||
|  | ||||
|         # DIAN 1.9.-2023: AE20 | ||||
|         self.fexml.set_element( | ||||
|             './cac:SenderParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:Name', | ||||
|             'IVA') | ||||
|  | ||||
|     def set_receiver_party(self): | ||||
|         # DIAN 1.9.-2023: AE21 | ||||
|         self.fexml.placeholder_for( | ||||
|             './cac:ReceiverParty') | ||||
|         # DIAN 1.9.-2023: AE22 | ||||
|         self.fexml.placeholder_for( | ||||
|             './cac:ReceiverParty/cac:PartyTaxScheme') | ||||
|         # DIAN 1.9.-2023: AE23 | ||||
|         self.fexml.set_element( | ||||
|             './cac:ReceiverParty/cac:PartyTaxScheme/cbc:RegistrationName', | ||||
|             'CASCOS MEDELLIN') | ||||
|         # DIAN 1.9.-2023: AE24 | ||||
|         # DIAN 1.9.-2023: AE25 | ||||
|         # DIAN 1.9.-2023: AE26 | ||||
|         # DIAN 1.9.-2023: AE27 | ||||
|         self.fexml.set_element( | ||||
|             './cac:ReceiverParty/cac:PartyTaxScheme/cbc:CompanyID', '900795506', | ||||
|             schemeAgencyID='195', | ||||
|             schemeID='0', | ||||
|             schemeName='31') | ||||
|         # DIAN 1.9.-2023: AE28 | ||||
|         self.fexml.set_element( | ||||
|             './cac:ReceiverParty/cac:PartyTaxScheme/cbc:TaxLevelCode', | ||||
|             'R-99-PN') | ||||
|         # DIAN 1.9.-2023: AE30 | ||||
|         self.fexml.placeholder_for( | ||||
|             './cac:ReceiverParty/cac:PartyTaxScheme/cac:TaxScheme') | ||||
|         # DIAN 1.9.-2023: AE31 | ||||
|         self.fexml.set_element( | ||||
|             './cac:ReceiverParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:ID', | ||||
|             '01') | ||||
|         # DIAN 1.9.-2023: AE32 | ||||
|         self.fexml.set_element( | ||||
|             './cac:ReceiverParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:Name', | ||||
|             'IVA') | ||||
|  | ||||
|     def set_attachment(self): | ||||
|         # DIAN 1.9.-2023: AE33 | ||||
|         self.fexml.placeholder_for( | ||||
|             './cac:Attachment') | ||||
|         # DIAN 1.9.-2023: AE34 | ||||
|         self.fexml.placeholder_for( | ||||
|             './cac:Attachment/cac:ExternalReference') | ||||
|         # DIAN 1.9.-2023: AE35 | ||||
|         self.fexml.set_element( | ||||
|             './cac:Attachment/cac:ExternalReference/cbc:MimeCode', | ||||
|             'text/xml') | ||||
|         # DIAN 1.9.-2023: AE36 | ||||
|         self.fexml.set_element( | ||||
|             './cac:Attachment/cac:ExternalReference/cbc:EncodingCode', | ||||
|             'UTF-8') | ||||
|         # DIAN 1.9.-2023: AE37 | ||||
|         self.fexml.set_element( | ||||
|             './cac:Attachment/cac:ExternalReference/cbc:Description', | ||||
|             ' ') | ||||
|  | ||||
|     def set_parent_document_line_reference(self): | ||||
|         self.fexml.placeholder_for( | ||||
|             './cac:ParentDocumentLineReference') | ||||
|  | ||||
|     def toFachoXML(self): | ||||
|         return self.fexml | ||||
|   | ||||
		Reference in New Issue
	
	Block a user