se adiciona DevengadoHorasExtrasDiarias
FossilOrigin-Name: c544c4bb273c7f548f7cb5d4466af9975bb7f5a35e4bd38a22fbdeae39acea4c
This commit is contained in:
		| @@ -441,6 +441,14 @@ class DIANNominaXML: | ||||
|  | ||||
|         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): | ||||
|         self._devengados_total() | ||||
|         self._deducciones_total() | ||||
|   | ||||
| @@ -2,9 +2,12 @@ | ||||
| from .basico import * | ||||
| from .transporte import * | ||||
| from .devengado import * | ||||
| from .horas_extras import * | ||||
|  | ||||
| __all__ = [ | ||||
|     'Devengado', | ||||
|     'DevengadoBasico', | ||||
|     'DevengadoTransporte' | ||||
|     'DevengadoTransporte', | ||||
|     'DevengadoHorasExtrasDiarias', | ||||
|     'DevengadoHoraExtra' | ||||
| ] | ||||
|   | ||||
| @@ -141,7 +141,8 @@ def test_nomina_xml(): | ||||
|             nit='999999', | ||||
|             dv=2, | ||||
|             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( | ||||
|         razon_social='facho', | ||||
|         nit = '700085371', | ||||
|         dv = '1', | ||||
|         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/@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(): | ||||
|     with pytest.raises(ValueError) as e: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user