35 lines
3.3 KiB
Markdown
35 lines
3.3 KiB
Markdown
# ADPRMT017 – Desvinculación por Acción de Personal (2026-10-05)
|
||
|
||
Objetivo: el indicador de **Rotación** (mes a mes y por causa). La desactivación del empleado ahora se hace **solo** por la acción de personal.
|
||
|
||
## Antes
|
||
- **noprmt016** ("Activar/Desactivar") ponía `adtb00003.status_t = 'D'` sin fecha ni causa.
|
||
- En **noprmt003** RRHH escribía a mano la `fecha_salida` y el motivo en `observacion` (texto libre: "DESAHUCIO", "RENUNCIA 30/03/2026"...).
|
||
- En adprmt017 el movimiento 4 DESVINCULAR (`tipo_mov = 'CANCELAR'`) solo grababa `adtb00020`. El código esperaba `'TERMINO'`, que no existe, y además ese bloque estaba fuera de la transacción.
|
||
|
||
## Ahora
|
||
| Programa | Cambio |
|
||
|---|---|
|
||
| adprmt017 | DESVINCULAR (tipo CANCELAR, DESVINCULAR o TERMINO) abre la ventana `adfmwd018`: fecha de salida, causa (catálogo), si es recontratable y un detalle. Dentro de la misma transacción: inserta en `adtb00062` y actualiza `adtb00003` (`status_t='D'`, `fecha_salida`, y el motivo al **inicio** de `observacion`, conservando lo que ya había detrás). Si el empleado ya está en D, no deja continuar. |
|
||
| adprmt017 (eLiminar) | Anular una desvinculación nueva anula `adtb00062` y **reactiva** al empleado (status NULL, fecha_salida NULL) si no tiene otra salida vigente. Las acciones viejas, sin detalle, no reactivan a nadie. |
|
||
| noprmt016 | Se quitó la opción **Desactivar**. Se dejó **Activar** (para reingresos). |
|
||
| noprmt003 | `fecha_salida` salió de las 2 UPDATE activas y en `nofmmt003.4fd` quedó `noEntry` (compilar en GST). `observacion` sigue editable. |
|
||
|
||
## Tablas y vista (ya creadas en .40.8 / marmotech)
|
||
- `adtb00061` causas: 1 Renuncia, 2 Abandono, 3 Dimisión (V); 4 Desahucio, 5 Despido, 6 Cierre de operación, 7 Fin de contrato/temporada, 8 No superó prueba (I); 9 Mutuo acuerdo, 10 Pensión, 11 Fallecimiento, 12 Traslado dentro del grupo (`cuenta_rotacion = 'N'`), 99 Otra (O).
|
||
- `adtb00062` detalle: guarda una foto del departamento, el puesto, `tipo_empleado` (NORMAL/TEMPORERO) y la fecha de ingreso al momento de la salida.
|
||
- `vw_rotacion_mensual`: por mes, departamento y tipo de empleado: plantilla al inicio, ingresos, salidas, salidas que cuentan para rotación, voluntarias, involuntarias, otras y % de rotación. Usa un CTE recursivo desde 2022, que llega al límite de 100 meses en 2030.
|
||
|
||
## Histórico (pendiente de aprobación)
|
||
`adprmt017_desvinculacion_historico.sql` clasifica las salidas desde 2022 leyendo `observacion`. Vista previa (con rollback): 686 salidas → Desahucio 342, Renuncia 127, Abandono 31, Cierre 8, Fallecimiento 7, Traslado 3, Fin de contrato 2, Prueba 1, Pensión 1, **Otra 164** (sin texto o sin causa reconocible). Para deshacer: `DELETE FROM adtb00062 WHERE origen='H'`.
|
||
|
||
## Temporeros
|
||
Solo 2 empleados tienen `tipo_empleado = 'TEMPORERO'`. Para medir la entrada y salida de temporeros, RRHH tiene que marcarlos en la maestra (noprmt003). La vista ya los separa.
|
||
|
||
## Backups
|
||
- `addir\backup_adprmt017_20261005\`: original y `adprmt017_con_capacitacion.4gl`, que es la versión intermedia.
|
||
- `nodir\backup_noprmt003_016_20261005\`: noprmt003, noprmt016, sus formas y binarios.
|
||
|
||
## Despliegue
|
||
Copiar a `PROYECTO\bin` (todo compilado con 3.20): `adprmt017.42m`, `adfmwd017.42f`, `adfmwd018.42f`, `noprmt003.42m`, `noprmt016.42m`, y el `nofmmt003.42f` que se genere en GST.
|