Fix: Se reemplazan datos de prueba por objeto Invoice issue #4
This commit is contained in:
parent
4fe82daac6
commit
612aae1f86
@ -5,10 +5,11 @@ __all__ = ['AttachedDocument']
|
||||
|
||||
class AttachedDocument():
|
||||
|
||||
def __init__(self, id):
|
||||
def __init__(self, invoice, id):
|
||||
self.schema =\
|
||||
'urn:oasis:names:specification:ubl:schema:xsd:AttachedDocument-2'
|
||||
self.id = id
|
||||
self.invoice = invoice
|
||||
self.attached_document_invoice = self.attached_document_invoice()
|
||||
|
||||
# self.fexml.placeholder_for(
|
||||
@ -42,11 +43,12 @@ class AttachedDocument():
|
||||
|
||||
# DIAN 1.9.-2023: AE05
|
||||
self.fexml.set_element(
|
||||
'./cbc:IssueDate', '2024-12-07')
|
||||
'./cbc:IssueDate', self.invoice.invoice_issue.strftime('%Y-%m-%d'))
|
||||
|
||||
# DIAN 1.9.-2023: AE06
|
||||
self.fexml.set_element(
|
||||
'./cbc:IssueTime', '12:16:07-05:00')
|
||||
'./cbc:IssueTime', self.invoice.invoice_issue.strftime(
|
||||
'%H:%M:%S-05:00'))
|
||||
|
||||
# DIAN 1.9.-2023: AE08
|
||||
self.fexml.set_element(
|
||||
@ -54,7 +56,7 @@ class AttachedDocument():
|
||||
|
||||
# DIAN 1.9.-2023: AE08a
|
||||
self.fexml.set_element(
|
||||
'./cbc:ParentDocumentID', 'FE60247')
|
||||
'./cbc:ParentDocumentID', self.invoice.invoice_ident)
|
||||
|
||||
# DIAN 1.9.-2023: AE09
|
||||
self.set_sender_party()
|
||||
@ -75,21 +77,22 @@ class AttachedDocument():
|
||||
# DIAN 1.9.-2023: AE11
|
||||
self.fexml.set_element(
|
||||
'./cac:SenderParty/cac:PartyTaxScheme/cbc:RegistrationName',
|
||||
'CASCOS MEDELLIN')
|
||||
self.invoice.invoice_supplier.name)
|
||||
# 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',
|
||||
'./cac:SenderParty/cac:PartyTaxScheme/cbc:CompanyID',
|
||||
self.invoice.invoice_supplier.ident,
|
||||
schemeAgencyID='195',
|
||||
schemeID='0',
|
||||
schemeName='31')
|
||||
schemeID=self.invoice.invoice_supplier.ident.dv,
|
||||
schemeName=self.invoice.invoice_supplier.ident.type_fiscal)
|
||||
|
||||
# DIAN 1.9.-2023: AE16
|
||||
self.fexml.set_element(
|
||||
'./cac:SenderParty/cac:PartyTaxScheme/cbc:TaxLevelCode',
|
||||
'R-99-PN')
|
||||
self.invoice.invoice_supplier.responsability_code)
|
||||
|
||||
# DIAN 1.9.-2023: AE18
|
||||
self.fexml.placeholder_for(
|
||||
@ -98,12 +101,12 @@ class AttachedDocument():
|
||||
# DIAN 1.9.-2023: AE19
|
||||
self.fexml.set_element(
|
||||
'./cac:SenderParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:ID',
|
||||
'01')
|
||||
self.invoice.invoice_supplier.tax_scheme.code)
|
||||
|
||||
# DIAN 1.9.-2023: AE20
|
||||
self.fexml.set_element(
|
||||
'./cac:SenderParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:Name',
|
||||
'IVA')
|
||||
self.invoice.invoice_supplier.tax_scheme.name)
|
||||
|
||||
def set_receiver_party(self):
|
||||
# DIAN 1.9.-2023: AE21
|
||||
@ -115,31 +118,32 @@ class AttachedDocument():
|
||||
# DIAN 1.9.-2023: AE23
|
||||
self.fexml.set_element(
|
||||
'./cac:ReceiverParty/cac:PartyTaxScheme/cbc:RegistrationName',
|
||||
'CASCOS MEDELLIN')
|
||||
self.invoice.invoice_customer.name)
|
||||
# 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',
|
||||
'./cac:ReceiverParty/cac:PartyTaxScheme/cbc:CompanyID',
|
||||
self.invoice.invoice_customer.ident,
|
||||
schemeAgencyID='195',
|
||||
schemeID='0',
|
||||
schemeName='31')
|
||||
schemeID=self.invoice.invoice_customer.ident.dv,
|
||||
schemeName=self.invoice.invoice_customer.ident.type_fiscal)
|
||||
# DIAN 1.9.-2023: AE28
|
||||
self.fexml.set_element(
|
||||
'./cac:ReceiverParty/cac:PartyTaxScheme/cbc:TaxLevelCode',
|
||||
'R-99-PN')
|
||||
self.invoice.invoice_customer.responsability_code)
|
||||
# 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')
|
||||
self.invoice.invoice_customer.tax_scheme.code)
|
||||
# DIAN 1.9.-2023: AE32
|
||||
self.fexml.set_element(
|
||||
'./cac:ReceiverParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:Name',
|
||||
'IVA')
|
||||
self.invoice.invoice_customer.tax_scheme.name)
|
||||
|
||||
def set_attachment(self):
|
||||
# DIAN 1.9.-2023: AE33
|
||||
|
@ -6,12 +6,13 @@
|
||||
|
||||
import pytest
|
||||
from facho.fe import form_xml
|
||||
|
||||
from datetime import datetime
|
||||
import helpers
|
||||
|
||||
from fixtures import simple_invoice
|
||||
|
||||
def test_xml_with_required_elements():
|
||||
doc = form_xml.AttachedDocument(id='123')
|
||||
def test_xml_with_required_elements(simple_invoice):
|
||||
doc = form_xml.AttachedDocument(simple_invoice, id='123')
|
||||
xml = doc.toFachoXML()
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cbc:UBLVersionID') == 'UBL 2.1'
|
||||
@ -24,25 +25,27 @@ def test_xml_with_required_elements():
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cbc:ID') == '123'
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cbc:IssueDate') == '2024-12-07'
|
||||
'/atd:AttachedDocument/cbc:IssueDate') == str(datetime.today().date())
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cbc:IssueTime') == '12:16:07-05:00'
|
||||
'/atd:AttachedDocument/cbc:IssueTime') == datetime.today(
|
||||
).time().strftime(
|
||||
'%H:%M:%S-05:00')
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cbc:DocumentType'
|
||||
) == 'Contenedor de Factura Electrónica'
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cbc:ParentDocumentID'
|
||||
) == 'FE60247'
|
||||
) == 'ABC123'
|
||||
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cac:SenderParty/cac:PartyTaxScheme/cbc:RegistrationName'
|
||||
) == 'CASCOS MEDELLIN'
|
||||
) == 'facho-supplier'
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cac:SenderParty/cac:PartyTaxScheme/cbc:CompanyID'
|
||||
) == '900795506'
|
||||
) == '123'
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cac:SenderParty/cac:PartyTaxScheme/cbc:TaxLevelCode'
|
||||
) == 'R-99-PN'
|
||||
) == 'ZZ'
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cac:SenderParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:ID'
|
||||
) == '01'
|
||||
@ -52,13 +55,13 @@ def test_xml_with_required_elements():
|
||||
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cac:ReceiverParty/cac:PartyTaxScheme/cbc:RegistrationName'
|
||||
) == 'CASCOS MEDELLIN'
|
||||
) == 'facho-customer'
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cac:ReceiverParty/cac:PartyTaxScheme/cbc:CompanyID'
|
||||
) == '900795506'
|
||||
) == '321'
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cac:ReceiverParty/cac:PartyTaxScheme/cbc:TaxLevelCode'
|
||||
) == 'R-99-PN'
|
||||
) == 'ZZ'
|
||||
assert xml.get_element_text(
|
||||
'/atd:AttachedDocument/cac:ReceiverParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:ID'
|
||||
) == '01'
|
||||
@ -66,5 +69,5 @@ def test_xml_with_required_elements():
|
||||
'/atd:AttachedDocument/cac:ReceiverParty/cac:PartyTaxScheme/cac:TaxScheme/cbc:Name'
|
||||
) == 'IVA'
|
||||
|
||||
# with open("output.xml", "w") as fh:
|
||||
# fh.write(xml.tostring())
|
||||
with open("output.xml", "w") as fh:
|
||||
fh.write(xml.tostring())
|
||||
|
Loading…
Reference in New Issue
Block a user