Files
MBS/PROYECTO/addir/adprmt017_desvinculacion_LEEME.md

3.3 KiB
Raw Permalink Blame History

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.