se adicionan validaciones de requerimientos
FossilOrigin-Name: b070d78fc4c3ba5d247a54a8cc7e7305ea054ae2ce34eb9a5d9db38802e8c27c
This commit is contained in:
parent
74d98e249d
commit
791d534653
@ -1,3 +1,11 @@
|
|||||||
|
#
|
||||||
|
# Para esta implementacion se usa BDD
|
||||||
|
# ver **test_nomina.py**.
|
||||||
|
#
|
||||||
|
# La idea en general es validar comportamiento desde el XML,
|
||||||
|
# creando las estructuras minimas necesaras.
|
||||||
|
|
||||||
|
|
||||||
from .. import fe
|
from .. import fe
|
||||||
from .. import form
|
from .. import form
|
||||||
|
|
||||||
@ -106,18 +114,36 @@ class DIANNominaIndividual:
|
|||||||
"""
|
"""
|
||||||
errors = []
|
errors = []
|
||||||
|
|
||||||
def add_error(xpath, msg):
|
def check_element(xpath, msg):
|
||||||
if not self.fexml.exist_element(xpath):
|
if not self.fexml.exist_element(xpath):
|
||||||
errors.append(DIANNominaIndividualError(msg))
|
errors.append(DIANNominaIndividualError(msg))
|
||||||
|
|
||||||
add_error('/fe:NominaIndividual/Devengados/Basico',
|
def check_attribute(xpath, key, msg):
|
||||||
'se requiere DevengadoBasico')
|
err = DIANNominaIndividualError(msg)
|
||||||
|
elem = self.fexml.get_element(xpath)
|
||||||
|
|
||||||
add_error('/fe:NominaIndividual/Deducciones/Salud',
|
if elem is None:
|
||||||
'se requiere DeduccionSalud')
|
return errors.append(err)
|
||||||
|
|
||||||
add_error('/fe:NominaIndividual/Deducciones/FondoPension',
|
if elem.get(key, None) is None:
|
||||||
'se requiere DeduccionFondoPension')
|
return errors.append(err)
|
||||||
|
|
||||||
|
check_attribute('/fe:NominaIndividual/Periodo', 'FechaIngreso', 'se requiere Periodo')
|
||||||
|
|
||||||
|
check_element(
|
||||||
|
'/fe:NominaIndividual/Devengados/Basico',
|
||||||
|
'se requiere DevengadoBasico'
|
||||||
|
)
|
||||||
|
|
||||||
|
check_element(
|
||||||
|
'/fe:NominaIndividual/Deducciones/Salud',
|
||||||
|
'se requiere DeduccionSalud'
|
||||||
|
)
|
||||||
|
|
||||||
|
check_element(
|
||||||
|
'/fe:NominaIndividual/Deducciones/FondoPension',
|
||||||
|
'se requiere DeduccionFondoPension'
|
||||||
|
)
|
||||||
|
|
||||||
return errors
|
return errors
|
||||||
|
|
||||||
|
@ -65,6 +65,7 @@ def test_nomina_obligatorios_segun_anexo_tecnico():
|
|||||||
|
|
||||||
errors = nomina.validate()
|
errors = nomina.validate()
|
||||||
|
|
||||||
|
assert_error(errors, 'se requiere Periodo')
|
||||||
assert_error(errors, 'se requiere DevengadoBasico')
|
assert_error(errors, 'se requiere DevengadoBasico')
|
||||||
assert_error(errors, 'se requiere DeduccionSalud')
|
assert_error(errors, 'se requiere DeduccionSalud')
|
||||||
assert_error(errors, 'se requiere DeduccionFondoPension')
|
assert_error(errors, 'se requiere DeduccionFondoPension')
|
||||||
|
Loading…
Reference in New Issue
Block a user