3.3 KiB
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_saliday el motivo enobservacion(texto libre: "DESAHUCIO", "RENUNCIA 30/03/2026"...). - En adprmt017 el movimiento 4 DESVINCULAR (
tipo_mov = 'CANCELAR') solo grababaadtb00020. 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)
adtb00061causas: 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).adtb00062detalle: 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 yadprmt017_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.