Files
oc-facho/facho/fe/nomina/trabajador/__init__.py
aserrador 4a7c2e2947 Fix: Formateo PEP8 (79 cols) y limpieza flake8 en paquete facho
- 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)
2026-08-12 19:56:29 -05:00

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,
)