Cambio de Sistema Pensionario(Enviar solicitud cambio AFP (1)) - [store]

🧾 Descripción

Este servicio registra una solicitud de cambio de sistema pensionario para un empleado, validando previamente:

El servicio crea un nuevo documento en el ERP: Solicitud de Cambio de Sistema Pensionario


🚀 Endpoint

POST /cambio-sistema-pensionario/store


🔐 Seguridad


🧠 Flujo del Servicio (resumen real)

1. Validación de parámetros

El servicio valida:

2. Trae los datos del empleado


GET Employee/{empleado}

Si el empleado no existe → error.

3. Determina si el cambio es permitido

Reglas del negocio:

4. Verifica si ya existe una solicitud "Borrador"

Consulta a la base ERP:

SELECT name FROM `tabSolicitud de Cambio de Sistema Pensionario` WHERE id_empleado = <empleado> AND docstatus = 0

Si existe una, retorna error.

5. Crea la solicitud de cambio

POST resource/Solicitud de Cambio de Sistema Pensionario { "id_empleado": <empleado>, "sistema_pensionario": "AFP"|"ONP", "tipo_de_afp": "...", "tipo_cambio": "...", "cuspp": "..." // cuando aplica }


📥 Request Body (ejemplo)

{ "empleado": "EMP-0001", "sistema_pensionario": "AFP", "tipo_afp": "AFP Integra", "cuspp": "123456789012", "tipo_cambio": "DE ONP A AFP" }


📤 Response 200 – Ejemplo

✔ Cambio enviado correctamente

{ "valor": true, "msn": "Solicitud de cambio de sistema pensionario enviada" }

❌ Tipo de cambio inválido

{ "valor": false, "msn": "La opción del tipo de cambio no es una opción valida (\"ENTRE AFP\",\"DE ONP A AFP\",\"DE AFP A ONP\")" }

❌ Ya existe solicitud en borrador

{ "valor": false, "msn": "Ya cuenta con una solicitud en Borrador pendiente de validar" }

❌ No puede cambiar al mismo sistema

{ "valor": false, "msn": "No puede hacer el cambio al mismo sistema pensionario" }

❌ Error al crear solicitud

{ "valor": false, "msn": "Ocurrió un error al crear la solicitud de cambio de sistema pensionario", "error": { ... } }


📚 Validaciones importantes del servicio

✔ Validación de CUSPP

✔ Validación de sistema pensionario

✔ Regla especial ONP → AFP

Si el empleado está en ONP, solo puede migrar a AFP Integra:

if($employee["response"]["fondo_de_pensiones"] == "ONP" && $sistema_pensionario == "AFP" && $tipo_afp != "AFP Integra")


🗃 Lógica en pseudo-código

validar parámetros employee = GET Employee/{empleado} si no existe -> error si cambio no permitido -> error buscar solicitudes en Borrador para el empleado si existe -> error validar CUSPP si aplica crear documento: POST Solicitud de Cambio de Sistema Pensionario retornar éxito


Revisión #2
Creado 2025-11-26 15:58:33 -05 por Elian
Actualizado 2025-11-26 16:02:36 -05 por Elian