se adiciona DevengadoHorasExtrasDiarias

FossilOrigin-Name: c544c4bb273c7f548f7cb5d4466af9975bb7f5a35e4bd38a22fbdeae39acea4c
This commit is contained in:
bit4bit 2021-12-01 00:24:14 +00:00
parent ee3910136d
commit 67f29fcca6
3 changed files with 50 additions and 2 deletions

View File

@ -441,6 +441,14 @@ class DIANNominaXML:
return errors return errors
def informacion_general(self):
xpath = self.root_fragment.xpath_from_root('/InformacionGeneral')
return {
'cune': self.fexml.get_element_attribute(cune_xpath, 'CUNE'),
'fecha_generacion': self.fexml.get_element_attribute(xpath, 'FechaGen'),
'numero': self.fexml.get_element_attribute(self.root_fragment('/NumeroSecuenciaXML', 'Numero'))
}
def toFachoXML(self): def toFachoXML(self):
self._devengados_total() self._devengados_total()
self._deducciones_total() self._deducciones_total()

View File

@ -2,9 +2,12 @@
from .basico import * from .basico import *
from .transporte import * from .transporte import *
from .devengado import * from .devengado import *
from .horas_extras import *
__all__ = [ __all__ = [
'Devengado', 'Devengado',
'DevengadoBasico', 'DevengadoBasico',
'DevengadoTransporte' 'DevengadoTransporte',
'DevengadoHorasExtrasDiarias',
'DevengadoHoraExtra'
] ]

View File

@ -141,7 +141,8 @@ def test_nomina_xml():
nit='999999', nit='999999',
dv=2, dv=2,
software_id='xx', software_id='xx',
software_pin='12' software_pin='12',
razon_social='facho'
) )
)) ))
@ -155,6 +156,7 @@ def test_nomina_xml():
)) ))
nomina.asignar_empleador(fe.nomina.Empleador( nomina.asignar_empleador(fe.nomina.Empleador(
razon_social='facho',
nit = '700085371', nit = '700085371',
dv = '1', dv = '1',
pais = fe.nomina.Pais( pais = fe.nomina.Pais(
@ -349,6 +351,41 @@ def test_adicionar_eliminar_asignar_predecesor():
assert xml.get_element_text_or_attribute('/fe:NominaIndividualDeAjuste/Eliminar/EliminandoPredecesor/@CUNEPred') == 'ABC123456' 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' assert xml.get_element_text_or_attribute('/fe:NominaIndividualDeAjuste/Eliminar/EliminandoPredecesor/@FechaGenPred') == '2021-11-16'
def test_nomina_devengado_horas_extras_diarias():
nomina = fe.nomina.DIANNominaIndividual()
nomina.adicionar_devengado(fe.nomina.DevengadoHorasExtrasDiarias(
horas_extras=[
fe.nomina.DevengadoHoraExtra(
hora_inicio='2021-11-30T19:09:55',
hora_fin='2021-11-30T20:09:55',
cantidad=1,
porcentaje=fe.nomina.Amount(1),
pago=fe.nomina.Amount(100)
),
fe.nomina.DevengadoHoraExtra(
hora_inicio='2021-11-30T18:09:55',
hora_fin='2021-11-30T19:09:55',
cantidad=2,
porcentaje=fe.nomina.Amount(2),
pago=fe.nomina.Amount(200)
)
]
))
xml = nomina.toFachoXML()
extras = xml.get_element('/fe:NominaIndividual/Devengados/HEDs/HED', multiple=True)
assert extras[0].get('HoraInicio') == '2021-11-30T19:09:55'
assert extras[0].get('HoraFin') == '2021-11-30T20:09:55'
assert extras[0].get('Cantidad') == '1'
assert extras[0].get('Porcentaje') == '1.0'
assert extras[0].get('Pago') == '100.00'
assert extras[1].get('HoraInicio') == '2021-11-30T18:09:55'
assert extras[1].get('HoraFin') == '2021-11-30T19:09:55'
assert extras[1].get('Cantidad') == '2'
assert extras[1].get('Porcentaje') == '2.0'
assert extras[1].get('Pago') == '200.00'
def test_fecha_validacion(): def test_fecha_validacion():
with pytest.raises(ValueError) as e: with pytest.raises(ValueError) as e: