Saltar a contenido

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

  1. Selecciona centros de costos con ProjectSelector (obligatorio).
  2. Encabezado del reporte:
  3. Proyecto/centro de costos: usa ProjectCodeSelector para escoger el frente de trabajo.
  4. Supervisor: selector con búsqueda (SupervisorSelector).
  5. Disciplina y Patio: campos de texto (el patio default es ANAHUAC).
  6. Fecha (calendario) y Turno (D/N).
  7. Códigos de tarea / soportes:
  8. Gestiona la lista con TaskCodeManager.
  9. Puedes importar soportes desde el buscador (searchSoportes) o añadir manualmente.
  10. Carga de personal:
  11. EmployeeSearch permite buscar por matrícula, nombre o categoría.
  12. Cada trabajador agregado aparece en la cuadrícula con su categoría.
  13. Captura de horas:
  14. TimeEntryGrid habilita editar horas normales (TN) y extra (TE) por soporte.
  15. Navega con el teclado; consulta KeyboardShortcuts para atajos (por ejemplo, Ctrl + Enter para guardar).
  16. Importar desde agente:
  17. Opcionalmente usa AgentImageImport para cargar una foto/scan del parte y convertirlo a registros (útil para digitalizar cargas alineadas con IA).
  18. Guardar:
  19. Presiona “Guardar reporte” (Save). El componente llama a horasHombreService.createReporte.
    • Si el guardado es exitoso, verás un toast y los controles se limpian.

## 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 toast indicará qué campo corregir.
  • Una vez guardado, revisa el reporte en /construccion/horas_hombre_captura para cancelarlo o editarlo si es necesario.