diff --git a/facho/fe/fe.py b/facho/fe/fe.py index aaf6b74..70163e2 100644 --- a/facho/fe/fe.py +++ b/facho/fe/fe.py @@ -58,10 +58,15 @@ class DianXMLExtensionCUFE(FachoXMLExtension): fachoxml.set_element('/fe:Invoice/cbc:ProfileExecutionID', self._tipo_ambiente()) return '', [] + def issue_time(self, datetime_): + return datetime_.strftime('%H:%M:%S%z') + def issue_date(self, datetime_): + return datetime_.strftime('%Y-%m-%d') + def _generate_cufe(self, invoice, fachoxml): NumFac = invoice.invoice_ident - FecFac = fachoxml.issue_date(invoice.invoice_issue) - HoraFac = fachoxml.issue_time(invoice.invoice_issue) + FecFac = self.issue_date(invoice.invoice_issue) + HoraFac = self.issue_time(invoice.invoice_issue) ValorBruto = invoice.invoice_legal_monetary_total.line_extension_amount ValorTotalPagar = invoice.invoice_legal_monetary_total.payable_amount ValorImpuestoPara = {} diff --git a/facho/fe/form.py b/facho/fe/form.py index 464dced..ef6c67c 100644 --- a/facho/fe/form.py +++ b/facho/fe/form.py @@ -182,8 +182,8 @@ class DIANInvoiceXML(fe.FeXML): invoice.calculate() fexml.set_element('/fe:Invoice/cbc:ID', invoice.invoice_ident) - fexml.set_element('/fe:Invoice/cbc:IssueDate', self.issue_date(invoice.invoice_issue)) - fexml.set_element('/fe:Invoice/cbc:IssueTime', self.issue_time(invoice.invoice_issue)) + fexml.set_element('/fe:Invoice/cbc:IssueDate', invoice.invoice_issue.strftime('%Y-%m-%d')) + fexml.set_element('/fe:Invoice/cbc:IssueTime', invoice.invoice_issue.strftime('%H:%M:%S%z')) fexml.set_element('/fe:Invoice/cac:InvoicePeriod/cbc:StartDate', invoice.invoice_period_start.strftime('%Y-%m-%d')) fexml.set_element('/fe:Invoice/cac:InvoicePeriod/cbc:EndDate', invoice.invoice_period_end.strftime('%Y-%m-%d')) @@ -248,9 +248,3 @@ class DIANInvoiceXML(fe.FeXML): return fexml - - def issue_time(self, datetime_): - return datetime_.strftime('%H:%M:%S%z') - def issue_date(self, datetime_): - return datetime_.strftime('%Y-%m-%d') - diff --git a/tests/test_fe_form.py b/tests/test_fe_form.py index b3684d2..4217613 100644 --- a/tests/test_fe_form.py +++ b/tests/test_fe_form.py @@ -190,15 +190,15 @@ def test_invoice_cufe(simple_invoice_without_lines): )]) )) - class FakeDIANInvoiceXML(form.DIANInvoiceXML): + class FakeDianXMLExtensionCUFE(fe.DianXMLExtensionCUFE): def issue_time(self, datetime_): return '10:53:10-05:00' def issue_date(self, datetime_): return '2019-01-16' - xml_invoice = FakeDIANInvoiceXML(simple_invoice) + xml_invoice = form.DIANInvoiceXML(simple_invoice) - cufe_extension = fe.DianXMLExtensionCUFE( + cufe_extension = FakeDianXMLExtensionCUFE( simple_invoice, tipo_ambiente = fe.DianXMLExtensionCUFE.AMBIENTE_PRODUCCION, clave_tecnica = '693ff6f2a553c3646a063436fd4dd9ded0311471'