oc-facho/facho/fe/nomina/trabajador/__init__.py
bit4bit 6d02ad0bf5 se adiciona comando validate-nominaindividual para validacion usando XSD de caja de herramientas
FossilOrigin-Name: e2f075b294e19cd447ad6e1e83ef7f00c8b863718abf35fcfccbb182097e300d
2021-11-23 01:18:28 +00:00

74 lines
2.7 KiB
Python

from dataclasses import dataclass
from ..amount import Amount
from .tipo_contrato import *
from .tipo_documento import *
from .lugar_trabajo import *
from .tipo_trabajador import *
from .sub_tipo_trabajador import *
@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 = 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
)