Files
MBS/PROYECTO/addir/adprmt017_capacitacion_LEEME.md
T

3.1 KiB
Raw Blame History

ADPRMT017 – Movimientos de Capacitación (2026-10-05)

Pedido de RRHH: indicador Horas de Capacitación. Por cada colaborador se registran las capacitaciones requeridas con sus horas y luego las tomadas, que cubren a las requeridas.

Backup

addir\backup_adprmt017_20261005\ contiene adprmt017.4gl, .rdd, adfmmt017.4fd/.per y los binarios que estaban en addir\bin y PROYECTO\bin. Para volver atrás: copiar adprmt017.4gl del backup sobre el actual, recompilar y desplegar. Las tablas nuevas no afectan a nadie si no se usan.

Qué se agregó

Pieza Detalle
adtb00009 2 movimientos nuevos: CAPACITACION REQUERIDA, CAPACITACION TOMADA (cod_mto = MAX+1)
adtb00059 Catálogo de capacitaciones: nombre, tipo de evento (1 Seminario, 2 Curso, 3 Taller, 4 Conferencia, igual que adtb00022) y horas estándar
adtb00060 Detalle por empleado, ligado a adtb00020.num_trx. tipo_reg R/T; una T apunta a la R que cubre (id_requerida)
vw_capacitacion_empleado Por empleado: requeridas con sus horas tomadas y pendientes, más las tomadas que no tienen requerida (para BI y Excel)
adfmwd017.per Ventana nueva de capacitación. Se abre igual que la de vacaciones, después del puesto
adprmt017.4gl Captura (capacitacion('A')), consulta ('C'), grabado dentro de la misma transacción y anulación junto con la acción

Flujo

  1. Nuevo, elegir el movimiento CAPACITACION REQUERIDA y la ficha. Se abre la ventana: escoger la capacitación del catálogo (o usar el botón Nuevo curso). Las horas se toman del catálogo y se pueden editar.
  2. Cuando la persona toma el curso: Nuevo, elegir CAPACITACION TOMADA y en Requerida a cubrir escoger la pendiente. Se llena el curso y las horas pendientes; luego se ponen las fechas, las horas reales, la institución y el costo.
  3. El recuadro Resumen del empleado muestra el total de horas requeridas, tomadas y pendientes.
  4. eLiminar (anular) la acción también anula su detalle de capacitación.

Despliegue (pendiente)

  1. Correr adprmt017_capacitacion.sql en marmotech (la sintaxis se validó en .40.8 con NOEXEC; no se ejecutó nada).
  2. Compilar la forma y el programa. Ambos compilan limpio en 3.20.14 y en fgl602: fglform adfmwd017.per → adfmwd017.42f; fglcomp adprmt017.4gl → adprmt017.42m.
  3. Copiar adprmt017.42m y adfmwd017.42f a PROYECTO\bin.
  4. No hace falta tocar adfmmt017.4fd ni regenerar smarmotech.sch: las tablas nuevas se usan con SQL dinámico.

Notas

  • adprmt019 (Adiestramientos) no se tocó. Usa adtb00022, que solo tiene 2 registros, no guarda horas ni distingue requerida de tomada, y tiene usuario y clave en claro en el MAIN (kpolanco). Además las acciones del menú están cruzadas: nuevo llama a la búsqueda y buscar llama a la captura. Se puede retirar o migrar después.
  • Para Rotación: el movimiento 4 DESVINCULAR tiene tipo_mov = 'CANCELAR', pero adprmt017 marca status_t='T' solo si es 'TERMINO'. Por eso las desvinculaciones no marcan al empleado como terminado y además no guardan la causa. Hay que revisarlo antes de automatizar la rotación.