3.1 KiB
3.1 KiB
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
- 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.
- 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.
- El recuadro Resumen del empleado muestra el total de horas requeridas, tomadas y pendientes.
- eLiminar (anular) la acción también anula su detalle de capacitación.
Despliegue (pendiente)
- Correr
adprmt017_capacitacion.sqlen marmotech (la sintaxis se validó en .40.8 con NOEXEC; no se ejecutó nada). - 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. - Copiar
adprmt017.42myadfmwd017.42faPROYECTO\bin. - No hace falta tocar
adfmmt017.4fdni 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 marcastatus_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.