- Líneas >79 cols reajustadas en todo el paquete - Fix F821: etree.cleanup_namespaces(security) en signature.py (era 'header', NameError) - Fix bug cune_xpath -> xpath en nomina/informacion_general() (NameError) - Elimina clase TaxScheme duplicada en form/__init__.py - Imports explícitos (F403/F405) y __all__ en form_xml/invoice.py, nomina - Elimina imports y variables muertas (F401/F841), E712 (== None -> is None)
75 lines
2.2 KiB
Python
75 lines
2.2 KiB
Python
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,
|
|
)
|