mirror of
https://github.com/cheveguerra/Colaborando.git
synced 2026-08-18 16:36:39 +00:00
fea2ae1659
- Correccion en la habilidad de reordenamiento - Se agregaron los activos, penalizacin y potencial al reordenamiento
67 lines
4.0 KiB
Markdown
67 lines
4.0 KiB
Markdown
# 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.
|