facho/fe/fe.py(DianXMLExtensionInvoiceAuthorization): nueva extension para adicionar InvoiceAuthorization segun resolucion de facturacion
FossilOrigin-Name: d56e34d90366bc5063650569b8933a2b1575e759e71c8b3445a983eb16ec93c0
This commit is contained in:
		| @@ -3,4 +3,5 @@ from .fe import NAMESPACES | ||||
| from .fe import DianXMLExtensionSigner | ||||
| from .fe import DianXMLExtensionSoftwareSecurityCode | ||||
| from .fe import DianXMLExtensionCUFE | ||||
| from .fe import DianXMLExtensionInvoiceAuthorization | ||||
| from .fe import DianZIP | ||||
|   | ||||
| @@ -217,7 +217,37 @@ class DianXMLExtensionSigner(FachoXMLExtension): | ||||
|         return (dian_path, [signature]) | ||||
|          | ||||
|  | ||||
| class DianXMLExtensionInvoiceAuthorization(FachoXMLExtension): | ||||
|     # RESOLUCION 0004: pagina 106 | ||||
|  | ||||
|     def __init__(self, authorization: str, | ||||
|                  period_startdate: datetime, period_enddate: datetime, | ||||
|                  prefix: str, from_: int, to: int): | ||||
|         self.authorization = authorization | ||||
|         self.period_startdate = period_startdate | ||||
|         self.period_enddate = period_enddate | ||||
|         self.prefix = prefix | ||||
|         self.from_ = from_ | ||||
|         self.to = to | ||||
|  | ||||
|     def build(self, fexml): | ||||
|         fexml.set_element('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/sts:DianExtensions/sts:InvoiceSource/cbc:IdentificationCode', 'CO') | ||||
|          | ||||
|         invoice_control = fexml.fragment('/fe:Invoice/ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent/sts:DianExtensions/sts:InvoiceControl') | ||||
|         invoice_control.set_element('/sts:InvoiceControl/sts:InvoiceAuthorization', self.authorization) | ||||
|         invoice_control.set_element('/sts:InvoiceControl/sts:AuthorizationPeriod/cbc:StartDate', | ||||
|                                     self.period_startdate.strftime('%Y-%m-%d')) | ||||
|         invoice_control.set_element('/sts:InvoiceControl/sts:AuthorizationPeriod/cbc:EndDate', | ||||
|                                     self.period_enddate.strftime('%Y-%m-%d')) | ||||
|         invoice_control.set_element('/sts:InvoiceControl/sts:AuthorizedInvoices/sts:Prefix', | ||||
|                                     self.prefix) | ||||
|         invoice_control.set_element('/sts:InvoiceControl/sts:AuthorizedInvoices/sts:From', | ||||
|                                     self.from_) | ||||
|         invoice_control.set_element('/sts:InvoiceControl/sts:AuthorizedInvoices/sts:To', | ||||
|                                     self.to) | ||||
|         return '', [] | ||||
|  | ||||
|          | ||||
| class DianZIP: | ||||
|      | ||||
|     # RESOLUCION 0001: pagina 540 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user