Capturar horas hombre (/construccion/horas_hombre_captura/captura)¶
- Permisos mínimos:
AccessConstruccion.HORAS_HOMBRE_CAPTURA. - APIs:
- Búsquedas asistidas:
GET /api/construccion/horas_hombre/proyectos,/soportes,/personal,/categorias. - Guardado:
POST /api/construccion/horas_hombre/reporte.
Objetivo¶
Registrar un reporte completo de horas hombre (encabezado + partidas) en una sola interfaz optimizada para captura asistida.
Flujo de captura¶
- Selecciona centros de costos con
ProjectSelector(obligatorio). - Encabezado del reporte:
- Proyecto/centro de costos: usa
ProjectCodeSelectorpara escoger el frente de trabajo. - Supervisor: selector con búsqueda (
SupervisorSelector). - Disciplina y Patio: campos de texto (el patio default es ANAHUAC).
- Fecha (calendario) y Turno (D/N).
- Códigos de tarea / soportes:
- Gestiona la lista con
TaskCodeManager. - Puedes importar soportes desde el buscador (
searchSoportes) o añadir manualmente. - Carga de personal:
EmployeeSearchpermite buscar por matrícula, nombre o categoría.- Cada trabajador agregado aparece en la cuadrícula con su categoría.
- Captura de horas:
TimeEntryGridhabilita editar horas normales (TN) y extra (TE) por soporte.- Navega con el teclado; consulta
KeyboardShortcutspara atajos (por ejemplo,Ctrl + Enterpara guardar). - Importar desde agente:
- Opcionalmente usa
AgentImageImportpara cargar una foto/scan del parte y convertirlo a registros (útil para digitalizar cargas alineadas con IA). - Guardar:
- Presiona “Guardar reporte” (
Save). El componente llama ahorasHombreService.createReporte.- Si el guardado es exitoso, verás un
toasty los controles se limpian.
- Si el guardado es exitoso, verás un
## Validaciones y reglas de negocio
- Fecha: la fecha seleccionada para el reporte debe estar entre la fecha actual y los últimos 90 días (no se permiten fechas futuras ni anteriores a los 90 días). Si la fecha no cumple esta regla, la API rechazará el guardado indicando el rango válido.
- Límites por trabajador (acumulados por fecha):
- Horas normales (TN) acumuladas por trabajador no deben exceder 12 horas.
- Horas extra (TE) acumuladas por trabajador no deben exceder 4 horas.
- Horas totales (TN + TE) acumuladas por trabajador no deben exceder 16 horas. Estas validaciones aplican tanto a las partidas incluidas en el payload como a las partidas ya existentes para la misma fecha (es decir, al guardar se suman ambas fuentes y se valida el límite).
- Partidas duplicadas: la combinación (soporte + trabajador) debe ser única dentro del mismo reporte. Si el payload contiene duplicados o ya existe una partida igual en la base de datos para ese reporte, el guardado fallará con un error de conflicto.
- Soportes: el soporte debe existir, estar activo y pertenecer al mismo centro de costos del reporte. Además, si el soporte pertenece a uno o más niveles marcados como inactivos, el sistema rechazará la partida indicando los niveles inactivos.
- Supervisor y categoría: el supervisor y la categoría del trabajador deben existir; en caso contrario el guardado fallará indicando la entidad faltante.
## Consejos
- Verifica totales en la barra inferior de la cuadrícula antes de guardar.
- Si te faltan soportes, usa la opción de búsqueda con comodines (
PIPING,JETTY, etc.) para evitar duplicados. - En caso de error de validación (horas vacías, supervisor faltante), el
toastindicará qué campo corregir. - Una vez guardado, revisa el reporte en
/construccion/horas_hombre_capturapara cancelarlo o editarlo si es necesario.