mirror of
https://github.com/cheveguerra/Colaborando.git
synced 2026-08-19 00:46:37 +00:00
- Resumen de activos en la esquina inferior izq del resumen
- Correccion en la habilidad de reordenamiento - Se agregaron los activos, penalizacin y potencial al reordenamiento
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
# Plan de Implementación: Contabilización de Activos (Producidos, Recuperados y Perdidos)
|
||||
|
||||
Este documento detalla la lógica matemática y los pasos técnicos necesarios para implementar la visualización y el cálculo de estadísticas de activos en la pantalla de resumen de la aplicación **Colaborando**.
|
||||
|
||||
---
|
||||
|
||||
## 📋 Resumen del Enfoque
|
||||
|
||||
Para evitar desincronizaciones de datos y la necesidad de alterar la base de datos o los esquemas JSON de persistencia de sesión, utilizaremos un **cálculo dinámico en el cliente** (JavaScript). Toda la información necesaria ya existe dentro del arreglo global `proyectos` y el objeto `arregloGeneral`, que se guardan y cargan automáticamente con la sesión.
|
||||
|
||||
---
|
||||
|
||||
## 🧮 Lógica de Cálculo de Métricas
|
||||
|
||||
Para cada tipo de activo (p. ej., *Personal Calificado*, *Analistas*, *Flujo de Efectivo*, etc.), los valores se calculan recorriendo el arreglo global `proyectos` buscando proyectos con `estatus === 'Completado'`:
|
||||
|
||||
### 1. Activos Producidos (Total)
|
||||
* **Definición:** Activos que fueron creados/asignados para completar los proyectos finalizados.
|
||||
* **Lógica:** Suma de los requerimientos originales de todos los proyectos completados.
|
||||
* **Fórmula:**
|
||||
$$\text{Producidos}(c) = \sum_{p \in \text{Completados}} p[c]$$
|
||||
*(Donde $c$ es el campo de requerimiento del activo, como `amarillo`, `naranjas`, etc.)*
|
||||
|
||||
### 2. Activos Recuperados
|
||||
* **Definición:** Activos que se arrastraron exitosamente desde los proyectos terminados hacia los departamentos (lo cual resta del proyecto y suma al departamento).
|
||||
* **Lógica:** La diferencia entre el requerimiento original del proyecto completado y su valor de asignación actual (que disminuye al ser arrastrado).
|
||||
* **Fórmula:**
|
||||
$$\text{Recuperados}(c) = \sum_{p \in \text{Completados}} (p[c] - p['activoAsignado' + (i+1)])$$
|
||||
*(Donde $i$ es el índice del slot correspondiente al tipo de activo en el proyecto)*
|
||||
|
||||
### 3. Activos Perdidos
|
||||
* **Definición:** Activos que no se pudieron recuperar de proyectos finalizados por falta de recursos o de espacio antes de cambiar de periodo.
|
||||
* **Lógica:** Suma de los activos remanentes (`activoAsignadoX`) en proyectos completados que pertenecen a trimestres anteriores (ya que en el trimestre actual todavía es posible recuperarlos).
|
||||
* **Fórmula:**
|
||||
$$\text{Perdidos}(c) = \sum_{p \in \text{Completados}, p.\text{trimestreCompletado} < \text{trimestreActual}} p['activoAsignado' + (i+1)]$$
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ Archivos y Cambios Requeridos
|
||||
|
||||
Todo el cambio se centraliza en el archivo **[resumen.php](file:///C:/CHV/ludotecaLocal/Colaborando/resumen.php)**.
|
||||
|
||||
### Paso 1: Interfaz de Usuario (HTML)
|
||||
Modificar la estructura de la tabla `#tablaActivos` (líneas ~308-348) para cambiar sus encabezados a:
|
||||
1. **Activo**
|
||||
2. **Producidos**
|
||||
3. **Recuperados**
|
||||
4. **Perdidos**
|
||||
|
||||
Asignar identificadores de celda descriptivos para inyectar los datos, por ejemplo:
|
||||
* Para Personal Calificado: `producidosPersonalCalificado`, `recuperadosPersonalCalificado`, `perdidosPersonalCalificado`.
|
||||
* Para Analistas: `producidosAnalistas`, `recuperadosAnalistas`, `perdidosAnalistas`.
|
||||
* *(Repetir para los 6 tipos de activos)*.
|
||||
|
||||
### Paso 2: Motor de Cálculo (JavaScript)
|
||||
Dentro de la función `actualizarResumenUI()` (línea ~720):
|
||||
1. **Inicializar:** Crear un objeto local para llevar las cuentas por tipo de activo e indicador (ej. `const stats = { PersonalCalificado: { producidos: 0, recuperados: 0, perdidos: 0 }, ... }`).
|
||||
2. **Procesar:** Iterar sobre el arreglo `proyectos` y clasificar según las fórmulas explicadas.
|
||||
3. **Renderizar:** Actualizar el contenido de las celdas del HTML utilizando jQuery (ej. `$('#producidosPersonalCalificado').text(stats.PersonalCalificado.producidos)`).
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Beneficios de esta Solución
|
||||
* **Integridad de datos:** No requiere modificar la estructura JSON del archivo de datos (`datos.json` / `cheve.json`).
|
||||
* **Sincronización total:** Si el usuario recarga la página o arrastra activos, la tabla se vuelve a calcular en tiempo real reflejando el estado real del juego.
|
||||
* **Mantenibilidad:** El código queda autocontenido en la vista de resumen.
|
||||
Reference in New Issue
Block a user