Ir al contenido principal

Documento de Ingresos (Formulario Ficha de Personal (1)) - [formFichaPersonal]

🧾 Descripción

Registra la Ficha Personal del trabajador, permitiendo actualizar:

  • Datos de contacto de emergencia

  • Información del cónyuge/conviviente según estado civil

  • Registro del proceso en el módulo historial_procesos_app

Es un servicio utilizado por la aplicación para completar los datos obligatorios que el trabajador debe registrar para continuar con otros procesos internos.

Este servicio actualiza directamente el documento Employee en el ERP.


🚀 Endpoint


POST /form-ficha-personal

📥 Request Body (JSON)

{ "empleado": "EMP-0001", "contactoEmergencia": { "nombreCompleto": "Juan Perez", "parentesco": "Hermano", "telefono": "987654321" }, "estadoCivil": { "nombreCompleto": "Ana Torres", "fechaNacimiento": "1990-01-01", "ocupacion": "Administradora", "centroTrabajo": "Empresa X", "direccion": "Av. Los Olivos 123" }, "datosFamiliares": [...] }

Los campos contactoEmergencia y estadoCivil vienen como JSON string y se decodifican dentro del servicio.


🔐 Seguridad

  • Requiere autenticación interna ERP vía ServiceErp().

  • Solo accesible para usuarios autenticados en la app.

  • Valida que el Employee exista antes de actualizar.


🧠 Flujo del Servicio (Paso a Paso)

1️⃣ Validaciones iniciales

  • Verifica que estadoCivil exista.

  • Verifica que contactoEmergencia exista.

  • Si faltan datos, devuelve error.

2️⃣ Obtiene información del empleado


GET /resource/Employee/{empleado}

Valida que el empleado exista y revisa si tiene estado civil registrado en el ERP:

  • Si es Casado/a o Conviviente, revisa que toda la información del cónyuge esté completa.

3️⃣ Determina nuevo estado civil

Si el ERP no tiene estado civil registrado:

  • Si estadoCivil["nombreCompleto"] existe → Casado/a

  • Si no existe → Soltero/a

4️⃣ Construye el body para actualizar Employee

Campos incluidos:

{ "person_to_be_contacted": "...", "relation": "...", "emergency_phone_number": "...", "nombre_completo_conyugue": "...", "fecha_de_nacimiento_conyugue": "...", "ocupación_conyugue": "...", "centro_de_trabajo_conyugue": "...", "dirección_actual_conyugue": "...", "estado_civil_personal": "Casado/a" }

Todos los textos se envían en mayúsculas.

5️⃣ Actualiza Employee


PUT /resource/Employee/{empleado}

6️⃣ Registra proceso de Ficha Personal

Inserta un registro en MySQL (historial_procesos_app) con:

  • proceso = "registerFichaPersonal"

  • fecha actual

  • empleado

Sirve para el tracking de documentos obligatorios.

7️⃣ Respuesta exitosa

Devuelve:

{ "valor": true, "msg": "Se registró correctamente" }

📤 Response 200 – Ejemplo

✔️ Caso exitoso

{ "valor": true, "msg": "Se registró correctamente", "data": [] }

❌ Error: falta información del estado civil

{ "valor": false, "msg": "No tiene su información de estado civil, debe comunicarse con Soporte", "data": [] }

❌ Error: datos incompletos del cónyuge

{ "valor": false, "msg": "Complete la información del cónyugue o conviviente. Información faltante: fechaNacimiento", "data": [] }

❌ Error al actualizar en el ERP

{ "valor": false, "msg": "Ocurrió un error al actualizar la información del trabajador.", "data": { ...respuestaERP... } }

❗ Posibles Errores Detallados

Error Descripción
Missing estadoCivil No se envió estado civil o JSON inválido
Missing contactoEmergencia Falta información mínima para completar la ficha
Employee no encontrado GET Employee/{empleado} no encontró registro
Información incompleta del cónyuge Falta un campo requerido cuando el estado civil es casado/conviviente
Error de actualización PUT Employee falló
Error registrando proceso Inserción en historial_procesos_app falló

📚 Schemas (Estructuras Utilizadas)

Employee (GET y PUT)

Campos usados:

person_to_be_contacted relation emergency_phone_number nombre_completo_conyugue fecha_de_nacimiento_conyugue ocupación_conyugue centro_de_trabajo_conyugue dirección_actual_conyugue estado_civil_personal

historial_procesos_app (INSERT)

usuario empleado proceso fecha estado

🗃 Lógica en pseudo-código

empleado = request.empleado contacto = json_decode(request.contactoEmergencia) civil = json_decode(request.estadoCivil) if civil is null or empty: return error("No tiene información de estado civil") if contacto is null: return error("Falta información de contacto de emergencia") employee = GET Employee/{empleado} if civil.previous == Casado or Conviviente: validar campos completos de cónyuge newCivil = employee.estadoCivil != "" ? employee.estadoCivil : (civil.nombreCompleto ? "Casado/a" : "Soltero/a") bodyPUT = construir campos del contacto + cónyuge update = PUT Employee/{empleado} if update.ok: insertar registro en historial_procesos_app return success else: return error("Ocurrió un error al actualizar")