se adicionan pruebas para Ajuste Reemplazar y Eliminar
FossilOrigin-Name: 750ed4cb15a88abfe296f1d9b2e4013df95b76bf1dfd4ecca22e07b3c12aacf2
This commit is contained in:
parent
56c7e2c453
commit
0c28eea6e2
@ -192,9 +192,12 @@ class DIANNominaXML:
|
||||
# esten ordenados segun el anexo tecnico
|
||||
self.fexml.placeholder_for('./ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent')
|
||||
self.fexml.placeholder_for('./TipoNota', optional=True)
|
||||
|
||||
self.root_fragment = self.fexml
|
||||
if xpath_ajuste is not None:
|
||||
self.root_fragment = self.fexml.fragment(xpath_ajuste)
|
||||
self.root_fragment.placeholder_for('./ReemplazandoPredecesor', optional=True)
|
||||
self.root_fragment.placeholder_for('./EliminandoPredecesor', optional=True)
|
||||
self.root_fragment.placeholder_for('./Novedad', optional=True)
|
||||
self.root_fragment.placeholder_for('./Periodo')
|
||||
self.root_fragment.placeholder_for('./NumeroSecuenciaXML')
|
||||
@ -385,16 +388,60 @@ class DIANNominaIndividual(DIANNominaXML):
|
||||
class DIANNominaIndividualDeAjuste(DIANNominaXML):
|
||||
|
||||
class Reemplazar(DIANNominaXML):
|
||||
@dataclass
|
||||
class Predecesor:
|
||||
numero: str
|
||||
cune: str
|
||||
fecha_generacion: str
|
||||
|
||||
def apply(self, fragment):
|
||||
fragment.set_element('./Reemplazar/ReemplazandoPredecesor', None,
|
||||
# NIAE090
|
||||
NumeroPred = self.numero,
|
||||
# NIAE191
|
||||
CUNEPred = self.cune,
|
||||
# NIAE192
|
||||
FechaGenPred = self.fecha_generacion
|
||||
)
|
||||
|
||||
def __init__(self):
|
||||
super().__init__('NominaIndividualDeAjuste', './Reemplazar')
|
||||
# NIAE214
|
||||
self.root_fragment.set_element('TipoNota', '1')
|
||||
|
||||
self.root_fragment.set_element('./TipoNota', '1')
|
||||
|
||||
def asignar_predecesor(self, predecesor):
|
||||
if not isinstance(predecesor, self.Predecesor):
|
||||
raise ValueError("se espera tipo Predecesor")
|
||||
predecesor.apply(self.fexml)
|
||||
|
||||
|
||||
class Eliminar(DIANNominaXML):
|
||||
|
||||
@dataclass
|
||||
class Predecesor:
|
||||
numero: str
|
||||
cune: str
|
||||
fecha_generacion: str
|
||||
|
||||
def apply(self, fragment):
|
||||
fragment.set_element('./Eliminar/EliminandoPredecesor', None,
|
||||
# NIAE090
|
||||
NumeroPred = self.numero,
|
||||
# NIAE191
|
||||
CUNEPred = self.cune,
|
||||
# NIAE192
|
||||
FechaGenPred = self.fecha_generacion
|
||||
)
|
||||
|
||||
def __init__(self):
|
||||
super().__init__('NominaIndividualDeAjuste', './Eliminar')
|
||||
# NIAE214
|
||||
self.root_fragment.set_element('TipoNota', '2')
|
||||
|
||||
self.root_fragment.set_element('./TipoNota', '2')
|
||||
|
||||
def asignar_predecesor(self, predecesor):
|
||||
if not isinstance(predecesor, self.Predecesor):
|
||||
raise ValueError("se espera tipo Eliminar.Predecesor")
|
||||
predecesor.apply(self.fexml)
|
||||
|
||||
def __init__(self):
|
||||
super().__init__('NominaIndividualDeAjuste')
|
||||
|
@ -267,6 +267,51 @@ def test_adicionar_reemplazar_devengado_comprobante_total():
|
||||
assert xml.get_element_text('/fe:NominaIndividualDeAjuste/Reemplazar/ComprobanteTotal') == '1000000.00'
|
||||
|
||||
|
||||
def test_adicionar_reemplazar_asignar_predecesor():
|
||||
nomina = fe.nomina.DIANNominaIndividualDeAjuste.Reemplazar()
|
||||
|
||||
nomina.asignar_predecesor(fe.nomina.DIANNominaIndividualDeAjuste.Reemplazar.Predecesor(
|
||||
numero = '123456',
|
||||
cune = 'ABC123456',
|
||||
fecha_generacion = '2021-11-16'
|
||||
))
|
||||
|
||||
xml = nomina.toFachoXML()
|
||||
print(xml.tostring())
|
||||
assert xml.get_element_text_or_attribute('/fe:NominaIndividualDeAjuste/Reemplazar/ReemplazandoPredecesor/@NumeroPred') == '123456'
|
||||
assert xml.get_element_text_or_attribute('/fe:NominaIndividualDeAjuste/Reemplazar/ReemplazandoPredecesor/@CUNEPred') == 'ABC123456'
|
||||
assert xml.get_element_text_or_attribute('/fe:NominaIndividualDeAjuste/Reemplazar/ReemplazandoPredecesor/@FechaGenPred') == '2021-11-16'
|
||||
|
||||
|
||||
def test_adicionar_reemplazar_eliminar_predecesor_opcional():
|
||||
nomina = fe.nomina.DIANNominaIndividualDeAjuste.Reemplazar()
|
||||
|
||||
nomina.asignar_predecesor(fe.nomina.DIANNominaIndividualDeAjuste.Reemplazar.Predecesor(
|
||||
numero = '123456',
|
||||
cune = 'ABC123456',
|
||||
fecha_generacion = '2021-11-16'
|
||||
))
|
||||
|
||||
xml = nomina.toFachoXML()
|
||||
print(xml.tostring())
|
||||
|
||||
assert xml.get_element('/fe:NominaIndividualDeAjuste/Reemplazar/ReemplazandoPredecesor') is not None
|
||||
assert xml.get_element('/fe:NominaIndividualDeAjuste/Eliminar/EliminandoPredecesor') is None
|
||||
|
||||
def test_adicionar_eliminar_reemplazar_predecesor_opcional():
|
||||
nomina = fe.nomina.DIANNominaIndividualDeAjuste.Eliminar()
|
||||
|
||||
nomina.asignar_predecesor(fe.nomina.DIANNominaIndividualDeAjuste.Eliminar.Predecesor(
|
||||
numero = '123456',
|
||||
cune = 'ABC123456',
|
||||
fecha_generacion = '2021-11-16'
|
||||
))
|
||||
|
||||
xml = nomina.toFachoXML()
|
||||
print(xml.tostring())
|
||||
assert xml.get_element('/fe:NominaIndividualDeAjuste/Eliminar/EliminandoPredecesor') is not None
|
||||
assert xml.get_element('/fe:NominaIndividualDeAjuste/Reemplazar/ReemplazandoPredecesor') is None
|
||||
|
||||
def test_adicionar_eliminar_devengado_comprobante_total():
|
||||
nomina = fe.nomina.DIANNominaIndividualDeAjuste.Eliminar()
|
||||
|
||||
@ -283,3 +328,18 @@ def test_adicionar_eliminar_devengado_comprobante_total():
|
||||
xml = nomina.toFachoXML()
|
||||
|
||||
assert xml.get_element_text('/fe:NominaIndividualDeAjuste/Eliminar/ComprobanteTotal') == '1000000.00'
|
||||
|
||||
def test_adicionar_eliminar_asignar_predecesor():
|
||||
nomina = fe.nomina.DIANNominaIndividualDeAjuste.Eliminar()
|
||||
|
||||
nomina.asignar_predecesor(fe.nomina.DIANNominaIndividualDeAjuste.Eliminar.Predecesor(
|
||||
numero = '123456',
|
||||
cune = 'ABC123456',
|
||||
fecha_generacion = '2021-11-16'
|
||||
))
|
||||
|
||||
xml = nomina.toFachoXML()
|
||||
print(xml.tostring())
|
||||
assert xml.get_element_text_or_attribute('/fe:NominaIndividualDeAjuste/Eliminar/EliminandoPredecesor/@NumeroPred') == '123456'
|
||||
assert xml.get_element_text_or_attribute('/fe:NominaIndividualDeAjuste/Eliminar/EliminandoPredecesor/@CUNEPred') == 'ABC123456'
|
||||
assert xml.get_element_text_or_attribute('/fe:NominaIndividualDeAjuste/Eliminar/EliminandoPredecesor/@FechaGenPred') == '2021-11-16'
|
||||
|
Loading…
Reference in New Issue
Block a user