from dataclasses import dataclass, field from ..amount import Amount from .tipo_contrato import TipoContrato from .tipo_documento import TipoDocumento from .lugar_trabajo import LugarTrabajo from .tipo_trabajador import TipoTrabajador from .sub_tipo_trabajador import SubTipoTrabajador @dataclass class Trabajador: tipo_contrato: TipoContrato tipo_documento: TipoDocumento numero_documento: str primer_apellido: str segundo_apellido: str primer_nombre: str lugar_trabajo: LugarTrabajo alto_riesgo: bool salario_integral: bool sueldo: Amount tipo: TipoTrabajador codigo_trabajador: str = None otros_nombres: str = None sub_tipo: SubTipoTrabajador = field( default_factory=lambda: SubTipoTrabajador(code="00") ) def apply(self, fragment): fragment.set_attributes( "./Trabajador", # NIE041 TipoTrabajador=self.tipo.code, # NIE042 SubTipoTrabajador=self.sub_tipo.code, # NIE043 AltoRiesgoPension=str(self.alto_riesgo).lower(), # NIE044 TipoDocumento=self.tipo_documento.code, # NIE045 NumeroDocumento=self.numero_documento, # NIE046 PrimerApellido=self.primer_apellido, # NIE047 SegundoApellido=self.segundo_apellido, # NIE048 PrimerNombre=self.primer_nombre, # NIE049 OtrosNombres=self.otros_nombres, # NIE050 LugarTrabajoPais=self.lugar_trabajo.pais.code, # NIE051 LugarTrabajoDepartamentoEstado=( self.lugar_trabajo.departamento.code ), # NIE052 LugarTrabajoMunicipioCiudad=self.lugar_trabajo.municipio.code, # NIE053 LugarTrabajoDireccion=self.lugar_trabajo.direccion, # NIE056 SalarioIntegral=str(self.salario_integral).lower(), # NIE061 TipoContrato=self.tipo_contrato.code, # NIE062 Sueldo=str(self.sueldo), # NIE063 CodigoTrabajador=self.codigo_trabajador, )