facho/facho.py (FachoXML): se simplifica adicion de extension

FossilOrigin-Name: d939f6486757338766762589965955cd9a9a0a84aaad4c37a848f544d8119ab2
This commit is contained in:
bit4bit@riseup.net 2020-06-15 20:16:49 +00:00
parent 7ebf2a2fab
commit 9b358f690c
2 changed files with 4 additions and 14 deletions

View File

@ -131,16 +131,8 @@ class FachoXML:
self.builder.append(elem, new_elem)
def add_extension(self, extension):
root_tag = self.builder.get_tag(self.root)
extension.build(self)
# construir las extensiones o adicionar en caso de indicar
xpath, elements = extension.build(self)
if isinstance(elements, str):
elem = self.set_element('/'+ root_tag + xpath, elements)
else:
for new_element in elements:
elem = self.find_or_create_element('/' + root_tag + xpath)
self.builder.append(elem, new_element)
def fragment(self, xpath, append=False, append_not_exists=False):
nodes = xpath.split('/')

View File

@ -63,7 +63,6 @@ class DianXMLExtensionCUFE(FachoXMLExtension):
fachoxml.set_element('/fe:Invoice/cbc:UUID', cufe, schemeName='CUFE-SHA384')
fachoxml.set_element('/fe:Invoice/cbc:ProfileID', 'DIAN 2.1')
fachoxml.set_element('/fe:Invoice/cbc:ProfileExecutionID', self._tipo_ambiente())
return '', []
def issue_time(self, datetime_):
return datetime_.strftime('%H:%M:%S%z')
@ -133,7 +132,7 @@ class DianXMLExtensionSoftwareProvider(FachoXMLExtension):
**SCHEME_AGENCY_ATTRS)
software_provider.set_element('/sts:SoftwareProvider/sts:SoftwareID', self.id_software,
**SCHEME_AGENCY_ATTRS)
return '', []
class DianXMLExtensionSoftwareSecurityCode(FachoXMLExtension):
@ -240,7 +239,6 @@ class DianXMLExtensionSigner(FachoXMLExtension):
extcontent = ublextension.find_or_create_element('/ext:UBLExtension:/ext:ExtensionContent')
fachoxml.append_element(extcontent, signature)
return '', []
class DianXMLExtensionAuthorizationProvider(FachoXMLExtension):
@ -253,7 +251,7 @@ class DianXMLExtensionAuthorizationProvider(FachoXMLExtension):
attrs = {'schemeID': '4', 'schemeName': '31'}
attrs.update(SCHEME_AGENCY_ATTRS)
fexml.set_attributes(dian_path, **attrs)
return '', []
class DianXMLExtensionInvoiceAuthorization(FachoXMLExtension):
@ -284,7 +282,7 @@ class DianXMLExtensionInvoiceAuthorization(FachoXMLExtension):
self.from_)
invoice_control.set_element('/sts:InvoiceControl/sts:AuthorizedInvoices/sts:To',
self.to)
return '', []
class DianZIP: