feat: gestion de mantenimiento/penalizaciones y documentacion doc/

This commit is contained in:
2026-07-29 20:29:23 -06:00
parent 96fee5ccd3
commit 47d53f1528
5 changed files with 199 additions and 112 deletions
+9 -5
View File
@@ -27,17 +27,16 @@ Existen 6 departamentos: *Marketing y Ventas, Finanzas, Investigación y Desarro
### 2. Ciclo de Vida de Proyectos
* **En proceso:** Proyectos activos en los que se está trabajando.
* **Completado:** Proyectos finalizados con éxito. Sus requerimientos y recursos recuperados se contabilizan.
* **Descartado:** Proyectos cancelados manualmente por el usuario pagando penalizaciones.
### 3. Mantenimiento Trimestral y Penalizaciones
En los cierres de trimestre (quincenas 6, 12, 18 y 24), los proyectos activos en proceso requieren el pago de un coste de mantenimiento (`Tiempo`, `Personal`, `Capital`).
* Si se paga, el proyecto se oculta temporalmente durante esa quincena y reaparece en la quincena siguiente (inicio de nuevo trimestre).
* Si no se puede o no se quiere pagar, el proyecto debe ser **desechado**, lo que resta un costo de **Penalización** del acumulado financiero acumulado del trimestre actual.
En los cierres de trimestre (quincenas 6, 12, 18 y 24), los proyectos activos en proceso requieren el pago de un coste de mantenimiento (`Tiempo`, `Personal`, `Capital`) o el pago de una **Penalización** financiera del acumulado de ingresos.
* En cualquiera de los dos casos, el proyecto se mantiene activo (`En proceso`) y visible en el tablero y en el resumen.
* En la pantalla de resumen, el proyecto se muestra en gris (deshabilitado) y sus botones de acción se bloquean una vez resuelto en el trimestre actual.
### 4. Habilidades Especiales (Acción Quincenal)
Los departamentos pueden comprar habilidades especiales con cooldown (periodicidad). Ejemplos clave:
* **Logística y Sistemas:** Permite omitir el costo de mantenimiento de un proyecto activo (pagarlo sin gastar recursos).
* **Operaciones:** Permite desechar un proyecto en proceso sin costo de penalización.
* **Operaciones:** Permite penalizar un proyecto en proceso sin costo de penalización.
* **Ordenar proyectos:** Permite reordenar la cola de los próximos 5 proyectos en el tablero.
### 5. Contabilización de Activos
@@ -57,6 +56,11 @@ Los activos producidos por proyectos completados se dividen en 6 tipos: *Persona
## 📈 Bitácora Histórica de Cambios (Changelog)
* **16/Jul/2026:**
* **Cambio de Desechar a Penalizar:** En la pantalla de resumen, se cambió el botón "Desechar" por "Penalizar".
* **Persistencia de Actividad:** Los proyectos penalizados ahora se mantienen activos (`En proceso`) en lugar de descartarse.
* **Actualización de Visualización:** Tanto al pagar mantenimiento como al penalizar, el proyecto permanece en la quincena actual; en el resumen, su tarjeta cambia a color gris y sus botones se bloquean. Se excluyeron de este bloqueo los proyectos con mantenimiento "N/A" (como "Capacitación Brigadas") y las Incidencias.
* **Descuentos de Habilidades en Mantenimiento:** Al pagar mantenimiento de forma normal, se aplican correctamente los beneficios/descuentos de recursos ganados por el departamento mediante sus habilidades compradas (`habilidadTiempo`, `habilidadPersonal`, `habilidadCapital`), reduciendo el costo cobrado en base a los beneficios definidos.
* **03/Jul/2026:**
* Implementación de la ventana de mantenimiento trimestral (Q6, 12, 18, 24) en resumen y tablero.
* Integración de habilidades especiales para omitir costo de mantenimiento (Logística) y omitir penalizaciones por desecho (Operaciones).
+18 -33
View File
@@ -1,44 +1,29 @@
# Resumen de Cambios: Pago de Mantenimiento y Desecho de Proyectos Activos
# Resumen de Cambios: Mantenimiento y Penalización de Proyectos Activos (Actualizado)
Se ha implementado completamente la funcionalidad solicitada para gestionar proyectos activos al final del trimestre (quincenas 6, 12, 18, 24).
Se ha implementado la funcionalidad solicitada para gestionar proyectos activos al final del trimestre (quincenas 6, 12, 18, 24).
## Cambios Realizados
### 1. Pantalla de Resumen ([resumen.php](file:///c:/CHV/ludotecaLocal/Colaborando/resumen.php))
- **Botones Dinámicos en Tarjetas:** Las tarjetas de proyectos activos (`En proceso`) muestran los botones **Pagar Manto** y **Desechar** si y solo si la quincena actual es un fin de trimestre (quincena % 6 === 0) y el mantenimiento no ha sido pagado en ese trimestre.
- **Información Adicional en Tarjetas Activas:** Ahora se visualiza en cada tarjeta de proyecto activo su **Potencial** de ingresos y su valor de **Penalización** (formateado como moneda).
- **Función Pagar Manto:**
- Solicita confirmación al usuario utilizando el diálogo `confirm()` asíncrono con el costo y departamento origen antes de proceder.
- Resta los recursos necesarios (Tiempo, Personal, Capital) del departamento seleccionado (`deptoActual`).
- Si el departamento no tiene recursos suficientes, muestra un mensaje de alerta.
- Guarda `mantenimientoPagadoEnTrimestre = trimestreActual` en el proyecto para indicar que se pagó la mantención para la transición al siguiente trimestre.
- **Habilidad Especial de Logística y Sistemas ("Omitir un mantenimiento"):** Si el departamento seleccionado es "LogisticaYSistemas", tiene comprada dicha habilidad especial (campo de acción especial distinto de `""`) y está disponible (cooldown), se le ofrece un diálogo modal preguntando si desea usar su habilidad para omitir el mantenimiento del proyecto **sin gastar ningún recurso**, o pagar de manera normal. Usar la habilidad actualiza su cooldown (`accionEspecialLastUsed`).
- **Función Desechar:**
- Valida que el acumulado general hasta el trimestre actual sea suficiente para pagar la penalización. Si es insuficiente, se impide el desecho y se muestra un mensaje explicativo.
- Utiliza la función `confirm()` personalizada asíncrona mediante callback (para evitar que aborte instantáneamente como lo hacía al usar un valor de retorno síncrono). Al confirmar, resta la penalización del acumulado del trimestre actual e internally cambia el estado del proyecto a `'descartado'`.
- **Habilidad Especial de Operaciones:** Si el departamento seleccionado es "Operaciones", tiene comprada dicha habilidad especial (es decir, el campo de la acción especial es distinto de vacío `""`) y no está en *cooldown* (periodicidad), se le presenta un diálogo de decisión ofreciendo descartar el proyecto **sin costo** utilizando la habilidad especial, o realizar un desecho normal pagando la penalización. Usar la habilidad especial actualiza su último turno de uso (`accionEspecialLastUsed`).
- **Botones Dinámicos en Tarjetas:** Las tarjetas de proyectos activos (`En proceso`) muestran los botones **Pagar Manto** y **Penalizar** (antes *Desechar*) si y solo si la quincena actual es un fin de trimestre (quincena % 6 === 0), excluyendo los proyectos con mantenimiento `'N/A'` y las Incidencias.
- **Persistencia de Proyectos:** El botón "Penalizar" ya no descarta el proyecto (no cambia su estatus a `descartado`). El proyecto permanece activo (`En proceso`).
- **Estado Deshabilitado:** Una vez que se paga el mantenimiento o se paga la penalización, la tarjeta del proyecto se tiñe de color gris en la pantalla de resumen, y los botones **Pagar Manto** y **Penalizar** quedan deshabilitados (`disabled`), indicando visualmente que ya se resolvió la situación del proyecto para el trimestre actual (los proyectos exentos o Incidencias permanecen activos y con su color blanco normal).
- **Descuentos por Habilidades:** Al realizar el pago de mantenimiento de forma normal, se aplican los descuentos de recursos (Tiempo, Personal, Capital) ganados mediante las habilidades compradas del departamento (`habilidadTiempo`, `habilidadPersonal`, `habilidadCapital`), restando del total del depto el costo neto descontado (mínimo de 0).
- **Textos e Interfaz:** Se ajustó la confirmación de penalización a: *"¿Estás seguro de que quieres pagar la penalización del proyecto..."*. Se detalla el costo original y costo neto final con descuento en el confirm del pago de mantenimiento.
- **Habilidad Especial de Operaciones:** Permite aplicar la penalización del proyecto sin costo utilizando la habilidad especial (actualizando su cooldown).
### 2. Tablero de Juego ([jsCode.js](file:///c:/CHV/ludotecaLocal/Colaborando/jsCode.js))
- **Ocultamiento por Mantenimiento:** Se modificó la carga del tablero en la función `continuamos()` para que los proyectos activos cuyo mantenimiento ya se pagó en el trimestre actual no aparezcan en el tablero (de esta forma no se puede seguir trabajando en ellos en el fin de trimestre actual).
- **Reaparición en el Siguiente Trimestre:** Al cambiar el trimestre (por ejemplo, avanzar de la quincena 6 a la 7), la comparación detecta que el trimestre actual es mayor al del pago de mantenimiento, por lo que el proyecto vuelve a cargarse automáticamente en el tablero.
- **Función `limpiaProyectoGrande`**: Se implementó una nueva función helper para despejar la vista del proyecto grande cuando está en estado pendiente de pago o pago realizado en resumen.
- **Ancho de Diálogos de Alerta (`window.alert`)**: Se aumentó un 50% (de 300px a 450px) el ancho predeterminado de los cuadros de diálogo de alerta para evitar que los mensajes largos de advertencia o confirmación se vean estrechos.
- **Corrección de Actualización de Recursos (IDs Dinámicos)**: Se corrigió un problema donde los recursos del departamento seleccionado no se reflejaban visualmente al pagar el mantenimiento. Esto ocurría porque los IDs de los contenedores cambian de `#tiempoCh` a `#recursoDispTiempoGde` cuando un departamento está seleccionado. Se implementó una selección flexible que detecta ambos formatos.
- **Bypass de Cache del Navegador (Cache-Busting)**: Se implementó un parámetro único de marca de tiempo (`_t`) y la cabecera `cache: 'no-store'` en la carga AJAX de la sesión para evitar que el navegador devuelva respuestas cacheadas obsoletas del estado del juego al navegar entre el tablero y el resumen.
- **Visibilidad Permanente:** Se eliminaron los filtros que ocultaban el proyecto del tablero chico o grande cuando el mantenimiento ya había sido resuelto. El proyecto permanece visible tanto en el tablero como en el resumen durante la quincena actual, permitiendo seguir trabajando en él.
## Cómo Realizar las Pruebas (Verificación)
1. **Escenario de Pago de Mantenimiento:**
1. **Escenario de Pago de Mantenimiento / Penalización:**
- Asegúrate de estar en una quincena fin de trimestre (ej. **Q6** del Trimestre 1).
- Ve a la pantalla de resumen. Verás los botones correspondientes en los proyectos en proceso.
- Selecciona un departamento con recursos suficientes y pulsa **Pagar Manto**.
- El proyecto desaparecerá inmediatamente de la lista del resumen.
- Ve al Tablero (`colaborando2.php`) en la misma quincena (Q6) y verifica que el proyecto no se muestra.
- Avanza la quincena a **Q7** (Trimestre 2). Vuelve al Tablero y comprueba que el proyecto reaparece en el tablero.
2. **Escenario de Desecho con Penalización:**
- En la quincena fin de trimestre, ve a resumen.
- Intenta desechar un proyecto cuya penalización sea mayor que tu acumulado actual disponible. Verifica que la aplicación bloquee la acción e informe.
- Intenta desechar un proyecto teniendo fondos suficientes.
- Confirma la alerta; comprueba que el proyecto desaparece y que la penalización se resta en la tabla de progresión general.
- Ve al tablero y verifica que el proyecto desechado ya no vuelve a aparecer en ningún trimestre.
- Ve a la pantalla de resumen. Verás los botones **Pagar Manto** y **Penalizar** en los proyectos en proceso.
- Realiza cualquiera de las dos acciones:
- **Pagar Manto:** Selecciona un departamento con recursos suficientes y pulsa el botón.
- **Penalizar:** Pulsa el botón; confirmará que tengas acumulado financiero suficiente y aplicará la deducción.
- En ambos casos:
- La tarjeta del proyecto en el resumen cambiará inmediatamente a un fondo gris y los botones de acción se deshabilitarán de forma definitiva en la quincena actual.
- Ve al Tablero (`colaborando2.php`) en la misma quincena (Q6) y verifica que el proyecto **sigue estando visible** en el tablero chico y en el slot de proyecto grande.
- Avanza la quincena a **Q7** (Trimestre 2). Vuelve a la pantalla de resumen y verifica que el proyecto recupera su color blanco y los botones ya no aparecen (pues no es fin de trimestre), y que en el tablero continúa disponible con total normalidad.