Progreso de Obra

Categorías de Trabajo

Organice sus actividades de trabajo en una estructura jerárquica para una mejor clasificación y análisis.

📂 Categorías de Trabajo

Las Categorías de Trabajo son un sistema de clasificación que le permite organizar sus actividades de trabajo en una estructura de árbol lógico. Piense en ellas como un sistema de "carpetas" donde agrupa todas las tareas de su proyecto para mantener el orden y facilitar los reportes.

Una buena estructura de categorías es fundamental para poder filtrar, agrupar y analizar sus reportes de progreso de manera eficiente.

Flujo de Configuración en 2 Pasos

Para configurar sus categorías, debe seguir un proceso de dos pasos que se realizan en páginas separadas de la aplicación:

Paso 1: Definir los Niveles de Categoría

Primero, debe ir a la sección Niveles de Categoría. Aquí es donde define la estructura de su árbol, sin crear todavía las categorías. Define cuántos niveles tendrá su jerarquía y cómo se llama cada uno.

Ejemplo de Niveles:

  • Nivel 1: División Principal
  • Nivel 2: Especialidad
  • Nivel 3: Tipo de Trabajo

Paso 2: Crear las Categorías

Una vez definidos los niveles, vaya a la sección Categorías de Trabajo. Aquí es donde crea las "carpetas" que encajarán en la estructura que definió en el paso anterior.

Ejemplo de Categorías basadas en los niveles anteriores:

- Obras Civiles (Nivel 1: División Principal)
  |- Estructuras (Nivel 2: Especialidad)
  |  |- Fundaciones (Nivel 3: Tipo de Trabajo)
  |  '- Superestructura (Nivel 3: Tipo de Trabajo)
  '- Albañilería (Nivel 2: Especialidad)
'- Instalaciones (Nivel 1: División Principal)
   |- Eléctricas (Nivel 2: Especialidad)
   '- Sanitarias (Nivel 2: Especialidad)

¿Para Qué Sirven las Categorías?

  • Organización: Mantienen sus actividades ordenadas, especialmente en proyectos grandes.
  • Análisis y Reportes: Permiten generar reportes de progreso agrupados. Por ejemplo, puede ver el avance total de "Obras Civiles" o filtrar un dashboard para ver solo las actividades de "Instalaciones Eléctricas".
  • Facilidad de Búsqueda: Ayudan a encontrar rápidamente cualquier actividad en el sistema.

Gestión de Categorías y Niveles

  • Crear: Defina primero sus niveles y luego cree las categorías, asignando cada una a su nivel y a su categoría "padre" correspondiente.
  • Editar: Puede cambiar el nombre de una categoría o nivel en cualquier momento.
  • Mover: Puede reorganizar su estructura moviendo una categoría a un lugar diferente del árbol.
  • Eliminar: Solo puede eliminar categorías o niveles que no estén en uso (sin sub-categorías o actividades asociadas).

Estructura Jerárquica

Puede crear una estructura de categorías tan profunda como necesite, anidando unas dentro de otras.

Ejemplo de Estructura de Categorías:

- Proyecto Completo (Nivel 0)
  |- Obras Civiles (Nivel 1)
  |  |- Estructuras (Nivel 2)
  |  |  |- Fundaciones
  |  |  '- Superestructura
  |  '- Albañilería (Nivel 2)
  '- Instalaciones (Nivel 1)
     |- Eléctricas (Nivel 2)
     '- Sanitarias (Nivel 2)

Cuando crea una actividad, debe asignarla a una de estas categorías.

Características Principales

🗂️ Organización Jerárquica

  • Múltiples niveles: Estructura de árbol con profundidad configurable
  • Clasificación lógica: Agrupación por tipo, especialidad o fase
  • Herencia de propiedades: Los niveles inferiores heredan características
  • Navegación intuitiva: Exploración fácil de la estructura

📊 Gestión Flexible

  • Niveles configurables: Definición de niveles según necesidades del proyecto
  • Códigos sistemáticos: Identificación única y ordenada
  • Estados activos/inactivos: Control de disponibilidad
  • Metadatos extensibles: Información adicional por categoría

🔗 Integración Completa

  • Asociación con actividades: Clasificación automática de actividades
  • Filtrado avanzado: Búsqueda y filtros por categoría
  • Reportes agrupados: Análisis consolidado por clasificación
  • Configuración de permisos: Control de acceso por categoría

Estructura de Categorías

📋 Datos Básicos

Información Principal:

const categoria = {
  id: "cat-001",
  nombre: "Obras Civiles",
  descripcion: "Trabajos de construcción civil y estructural",
  nivelId: "nivel-1",
  parentId: null, // null para categorías raíz
  orden: 2,
  activo: true,
  fechaCreacion: "2024-01-15T10:00:00Z"
};

Propiedades Avanzadas:

const propiedadesAvanzadas = {
  codigo: "OC", // Código corto para identificación
  color: "#10b981", // Color para visualización
  icono: "building", // Icono representativo
  metadatos: {
    especialidad: "construccion",
    riesgo: "medio",
    equiposComunes: ["mixer", "grua", "vibrador"],
    certificacionesRequeridas: ["hormigon", "soldadura"]
  }
};

🏗️ Jerarquía Típica

Construcción Edificación:

01. Trabajos Preliminares/
├── 01.01 Instalación de Faenas
├── 01.02 Demoliciones
└── 01.03 Limpieza de Terreno

02. Movimiento de Tierras/
├── 02.01 Excavaciones/
│   ├── 02.01.01 Excavación General
│   ├── 02.01.02 Excavación de Fundaciones
│   └── 02.01.03 Excavación de Servicios
├── 02.02 Rellenos/
│   ├── 02.02.01 Relleno Estructural
│   └── 02.02.02 Relleno Compactado
└── 02.03 Nivelación y Compactación

03. Obras Civiles/
├── 03.01 Fundaciones/
│   ├── 03.01.01 Hormigón de Limpieza
│   ├── 03.01.02 Armaduras de Fundación
│   └── 03.01.03 Hormigón de Fundación
├── 03.02 Estructuras/
│   ├── 03.02.01 Columnas
│   ├── 03.02.02 Vigas
│   └── 03.02.03 Losas
└── 03.03 Muros

04. Instalaciones/
├── 04.01 Instalaciones Eléctricas/
│   ├── 04.01.01 Canalizaciones
│   ├── 04.01.02 Cableado
│   └── 04.01.03 Tableros y Equipos
├── 04.02 Instalaciones Sanitarias/
│   ├── 04.02.01 Agua Potable
│   ├── 04.02.02 Alcantarillado
│   └── 04.02.03 Artefactos
└── 04.03 Climatización

05. Terminaciones/
├── 05.01 Revestimientos
├── 05.02 Pintura
└── 05.03 Pisos y Pavimentos

Infraestructura Vial:

01. Trabajos Preliminares/
├── 01.01 Topografía y Replanteo
├── 01.02 Despeje y Destronque
└── 01.03 Instalación de Faenas

02. Movimiento de Tierras/
├── 02.01 Cortes/
│   ├── 02.01.01 Corte en Tierra
│   ├── 02.01.02 Corte en Roca
│   └── 02.01.03 Corte en Material Mixto
├── 02.02 Terraplenes/
│   ├── 02.02.01 Terraplén Común
│   └── 02.02.02 Terraplén Seleccionado
└── 02.03 Préstamos y Botaderos

03. Pavimentación/
├── 03.01 Subrasante
├── 03.02 Sub-base Granular
├── 03.03 Base Granular
└── 03.04 Carpeta Asfáltica

04. Drenaje/
├── 04.01 Cunetas
├── 04.02 Alcantarillas
└── 04.03 Obras de Arte

05. Señalización/
├── 05.01 Demarcación Horizontal
├── 05.02 Señalización Vertical
└── 05.03 Dispositivos de Seguridad

Niveles de Categoría

📊 Configuración de Niveles

Definición de Niveles:

const nivelCategoria = {
  id: "nivel-1",
  nombre: "División Principal",
  descripcion: "Divisiones principales del proyecto",
  nivel: 1, // Orden jerárquico
  activo: true,
  propiedadesPorDefecto: {
    requiereCodigo: true,
    requiereColor: true,
    requiereIcono: false,
    permitePadre: false // Nivel raíz
  }
};

Niveles Típicos por Tipo de Proyecto:

Edificación:

const nivelesEdificacion = [
  {
    nivel: 1,
    nombre: "División",
    descripcion: "Divisiones principales (Preliminares, Estructura, etc.)",
    ejemplos: ["Trabajos Preliminares", "Obras Civiles", "Instalaciones"]
  },
  {
    nivel: 2,
    nombre: "Especialidad",
    descripcion: "Especialidades dentro de cada división",
    ejemplos: ["Fundaciones", "Estructuras", "Eléctricas"]
  },
  {
    nivel: 3,
    nombre: "Tipo de Trabajo",
    descripcion: "Tipos específicos de trabajo",
    ejemplos: ["Columnas", "Vigas", "Cableado"]
  },
  {
    nivel: 4,
    nombre: "Subtipo",
    descripcion: "Subtipos o variaciones específicas",
    ejemplos: ["Columnas Rectangulares", "Vigas Principales"]
  }
];

Infraestructura:

const nivelesInfraestructura = [
  {
    nivel: 1,
    nombre: "Fase",
    descripcion: "Fases principales del proyecto",
    ejemplos: ["Preliminares", "Movimiento Tierras", "Pavimentación"]
  },
  {
    nivel: 2,
    nombre: "Tipo de Obra",
    descripcion: "Tipos de obra dentro de cada fase",
    ejemplos: ["Cortes", "Terraplenes", "Base Granular"]
  },
  {
    nivel: 3,
    nombre: "Especificación",
    descripcion: "Especificaciones técnicas",
    ejemplos: ["Corte en Tierra", "Terraplén Común"]
  }
];

🔧 Gestión de Niveles

Operaciones Disponibles:

const operacionesNiveles = {
  crear: {
    validarOrden: true,
    verificarCoherencia: true,
    definirPropiedades: true,
    configurarPermisos: true
  },
  
  editar: {
    camposEditables: ["nombre", "descripcion"],
    camposRestringidos: ["nivel", "orden"],
    validarImpacto: true,
    actualizarCategorias: true
  },
  
  eliminar: {
    verificarUso: true,
    migrarCategorias: "requerido",
    validarIntegridad: true,
    confirmarAccion: true
  },
  
  reordenar: {
    validarJerarquia: true,
    actualizarReferencias: true,
    mantenerCoherencia: true
  }
};

Gestión de Categorías

➕ Creación de Categorías

La gestión de categorías es muy sencilla:

  • Crear: Para crear una categoría, solo necesita un nombre y, opcionalmente, seleccionar una categoría padre si desea anidarla.
  • Editar: Puede cambiar el nombre de una categoría en cualquier momento.
  • Mover: Puede reorganizar su estructura moviendo una categoría (y todas sus sub-categorías) a un lugar diferente del árbol.
  • Eliminar: Solo puede eliminar una categoría si no tiene sub-categorías ni actividades asociadas a ella.

✏️ Edición de Categorías

Campos Editables:

  • Nombre y descripción
  • Código y propiedades visuales
  • Orden dentro del mismo nivel
  • Metadatos y propiedades avanzadas
  • Estado activo/inactivo

Restricciones de Edición:

const restriccionesEdicion = {
  nivelInmutable: {
    condicion: "siempre",
    razon: "Cambiar nivel requiere recrear la categoría"
  },
  
  padreRestringido: {
    condicion: "tiene_actividades_asociadas",
    accion: "validar_compatibilidad"
  },
  
  ordenValidado: {
    unicoEnNivel: true,
    recalcularSiguientes: true
  }
};

🗑️ Eliminación de Categorías

Validaciones Previas:

const validacionesEliminacion = {
  verificarActividades: {
    tieneActividadesAsociadas: false,
    mensaje: "Reasignar actividades antes de eliminar"
  },
  
  verificarHijos: {
    tieneCategoriasHijas: false,
    mensaje: "Eliminar primero las subcategorías"
  },
  
  verificarConfiguracion: {
    esRequeridaPorSistema: false,
    mensaje: "Categoría requerida por configuración del sistema"
  }
};

Proceso de Eliminación:

const procesoEliminacion = {
  eliminacionLogica: {
    marcarInactiva: true,
    conservarHistorial: true,
    ocultarEnSelecciones: true,
    mantenerReferencias: true
  },
  
  eliminacionFisica: {
    validarSinReferencias: true,
    respaldarDatos: true,
    confirmarAccion: true,
    auditarEliminacion: true
  }
};

Asociación con Actividades

🔗 Configuración de Asociaciones

Tipos de Asociación:

const tiposAsociacionCA = {
  directa: {
    descripcion: "Actividad asignada directamente a categoría",
    configuracion: "seleccion-manual",
    flexibilidad: "alta"
  },
  
  automatica: {
    descripcion: "Asignación automática por reglas",
    configuracion: "reglas-negocio",
    flexibilidad: "media"
  },
  
  heredada: {
    descripcion: "Herencia desde categoría padre",
    configuracion: "jerarquia",
    flexibilidad: "baja"
  }
};

Reglas de Asignación:

const reglasAsignacion = {
  porNombreActividad: {
    patron: /excavac/i,
    categoria: "movimiento-tierras",
    subcategoria: "excavaciones"
  },
  
  porUnidadMedida: {
    "m³": ["movimiento-tierras", "hormigonado"],
    "m²": ["revestimientos", "pintura"],
    "m": ["instalaciones", "cableado"],
    "unidades": ["equipos", "elementos"]
  },
  
  porPalabrasClave: {
    "hormigon": "obras-civiles",
    "pintura": "terminaciones",
    "electrico": "instalaciones-electricas",
    "sanitario": "instalaciones-sanitarias"
  }
};

📊 Gestión de Asociaciones

Herramientas de Gestión:

const herramientasGestion = {
  asignacionMasiva: {
    porPatron: true,
    porSeleccion: true,
    porImportacion: true,
    validacionPrevia: true
  },
  
  reasignacion: {
    cambioCategoria: true,
    validarCompatibilidad: true,
    mantenerHistorial: true,
    notificarCambios: true
  },
  
  validacion: {
    verificarCoherencia: true,
    detectarInconsistencias: true,
    sugerirCorrecciones: true,
    generarReportes: true
  }
};

Reportes y Análisis

📊 Reportes de Categorías

Reporte de Estructura:

const reporteEstructura = {
  resumenGeneral: {
    totalCategorias: 45,
    categoriasActivas: 42,
    categoriasInactivas: 3,
    nivelesConfigurados: 4,
    profundidadMaxima: 4
  },
  
  distribucionPorNivel: [
    { nivel: 1, nombre: "División", cantidad: 5, porcentaje: 11.1 },
    { nivel: 2, nombre: "Especialidad", cantidad: 15, porcentaje: 33.3 },
    { nivel: 3, nombre: "Tipo", cantidad: 20, porcentaje: 44.4 },
    { nivel: 4, nombre: "Subtipo", cantidad: 5, porcentaje: 11.1 }
  ],
  
  analisisJerarquia: {
    categoriasSinHijos: 25, // Categorías hoja
    categoriasConHijos: 20, // Categorías padre
    profundidadPromedio: 2.8,
    balanceJerarquia: "equilibrado"
  }
};

Análisis de Utilización:

const analisisUtilizacion = {
  categoriasConActividades: {
    total: 42,
    conActividades: 38,
    utilizacion: 90.5 // %
  },
  
  actividadesPorCategoria: {
    promedio: 3.2,
    minimo: 0,
    maximo: 12,
    distribucion: {
      "0": 4,    // categorías sin actividades
      "1-3": 18, // categorías con pocas actividades
      "4-6": 15, // categorías con actividades moderadas
      "7+": 5    // categorías con muchas actividades
    }
  },
  
  eficienciaClasificacion: {
    categoriasOptimas: 85.7, // %
    categoriasSubutilizadas: 9.5, // %
    categoriasSobreutilizadas: 4.8 // %
  }
};

📈 Métricas de Rendimiento

KPIs de Categorías:

const kpisCategorias = {
  configuracion: {
    completitudEstructura: 95.2, // %
    consistenciaJerarquia: 100, // %
    coberturaNiveles: 88.9 // %
  },
  
  utilizacion: {
    categoriasActivas: 93.3, // %
    distribucionEquilibrada: 78.6, // %
    eficienciaClasificacion: 91.4 // %
  },
  
  mantenimiento: {
    categoriasActualizadas: 96.7, // %
    metadatosCompletos: 85.7, // %
    asociacionesValidas: 100 // %
  }
};

Mejores Prácticas

✅ Diseño de Estructura

Principios de Diseño:

  • Máximo 5 niveles para mantener simplicidad
  • Nombres descriptivos y consistentes
  • Códigos sistemáticos que reflejen la jerarquía
  • Balanceo de profundidad evitando estructuras muy desbalanceadas

Nomenclatura Recomendada:

const nomenclaturaRecomendada = {
  patron: "{NUMERO}.{NUMERO} {NOMBRE}",
  ejemplos: [
    "01. Trabajos Preliminares",
    "01.01 Instalación de Faenas",
    "01.01.01 Oficinas Temporales",
    "02. Movimiento de Tierras",
    "02.01 Excavaciones",
    "02.01.01 Excavación General"
  ],
  
  validacion: {
    numeracionConsecutiva: true,
    jerarquiaCoherente: true,
    longitudAdecuada: true
  }
};

🎯 Optimización de Clasificación

Estrategias de Clasificación:

const estrategiasClasificacion = {
  agrupacionLogica: {
    porFase: "Agrupar por fases constructivas",
    porEspecialidad: "Agrupar por especialidad técnica",
    porUbicacion: "Agrupar por ubicación física"
  },
  
  balanceoCarga: {
    evitarConcentracion: true,
    distribuirEquitativamente: true,
    mantenerCoherencia: true
  },
  
  flexibilidadFutura: {
    permitirExpansion: true,
    facilitarReorganizacion: true,
    mantenerCompatibilidad: true
  }
};

📊 Mantenimiento Continuo

Rutinas de Mantenimiento:

const rutinasMantenimiento = {
  revision: {
    frecuencia: "mensual",
    actividades: [
      "verificar-integridad-jerarquia",
      "validar-asociaciones-actividades",
      "actualizar-metadatos"
    ]
  },
  
  optimizacion: {
    frecuencia: "trimestral",
    actividades: [
      "consolidar-categorias-vacias",
      "rebalancear-estructura",
      "actualizar-nomenclatura"
    ]
  },
  
  auditoria: {
    frecuencia: "semestral",
    actividades: [
      "analizar-utilizacion",
      "evaluar-eficiencia",
      "identificar-mejoras"
    ]
  }
};

🔧 Configuración por Tipo de Proyecto

Plantillas Predefinidas:

const plantillasPredefinidas = {
  edificacion: {
    niveles: 4,
    categoriasPrincipales: [
      "Preliminares", "Movimiento Tierras", "Obras Civiles",
      "Instalaciones", "Terminaciones"
    ],
    profundidadRecomendada: 3
  },
  
  infraestructura: {
    niveles: 3,
    categoriasPrincipales: [
      "Preliminares", "Movimiento Tierras", "Pavimentación",
      "Drenaje", "Señalización"
    ],
    profundidadRecomendada: 3
  },
  
  industrial: {
    niveles: 4,
    categoriasPrincipales: [
      "Preliminares", "Obras Civiles", "Montaje Equipos",
      "Instalaciones", "Pruebas"
    ],
    profundidadRecomendada: 4
  }
};

Tip de Organización: Diseña la estructura de categorías considerando tanto la fase constructiva como la especialidad técnica. Esto facilitará tanto la planificación secuencial como la gestión por especialidades.

Las categorías de trabajo proporcionan la estructura organizacional fundamental para clasificar y gestionar las actividades del proyecto. Una estructura bien diseñada facilita la navegación, mejora la eficiencia operativa y permite análisis detallados del progreso por tipo de trabajo.