mirror of
https://github.com/cheveguerra/Colaborando.git
synced 2026-08-18 16:36:39 +00:00
96fee5ccd3
* **Alineación de Departamentos:** Se fijó la altura (38px) de la celda de habilidad especial en el tablero y se restauró el tamaño de letra original (14px) con un line-height controlado (1.2) para evitar desfases de altura cuando el texto ocupa dos líneas sin perder legibilidad.
5.1 KiB
5.1 KiB
Gestión de Mantenimiento y Penalización de Proyectos Activos (Fin de Trimestre)
Este plan revisado describe las modificaciones necesarias en el código para permitir que los usuarios paguen el mantenimiento de proyectos activos o los desechen (pagando la penalización correspondiente) únicamente en las quincenas de fin de trimestre (6, 12, 18 y 24).
Revisión del Usuario Requerida
Important
Lógica de Visibilidad del Proyecto:
- Cuando un proyecto activo paga su mantenimiento en el fin de un trimestre (por ejemplo, en la quincena 6, que es el fin del Trimestre 1), el proyecto se marca con
mantenimientoPagadoEnTrimestre = 1.- Durante el resto del trimestre actual (mientras sigan en la quincena 6), el proyecto se ocultará tanto del resumen como del tablero.
- En cuanto la quincena avance al siguiente trimestre (quincena 7, Trimestre 2), el proyecto reaparecerá automáticamente en el tablero para continuar trabajando en él.
Lógica de Desecho:
- Si se decide no pagar el mantenimiento, el usuario puede desechar el proyecto pagando la penalización (que se resta del acumulado general del trimestre actual). El estatus del proyecto cambiará a
'descartado'y desaparecerá permanentemente.
Cambios Propuestos
Componente Frontend y Lógica del Juego
[MODIFY] resumen.php
-
Modificar
crearTarjetaProyecto:- Agregar botones de acción solo si el proyecto está activo (
!esCompletado), tiene costo de mantenimiento (proyecto.mantenimiento !== 'N/A') y la quincena actual es un fin de trimestre (quincena % 6 === 0). - Botón Pagar Manto: Llama a
pagarMantenimientoProyecto(proyecto.id). - Botón Desechar: Llama a
desecharProyecto(proyecto.id).
- Agregar botones de acción solo si el proyecto está activo (
-
Actualizar
actualizarResumenUI:- Filtrar los proyectos activos para mostrar solo aquellos cuyo mantenimiento no ha sido pagado en el trimestre actual:
proyecto.mantenimientoPagadoEnTrimestre !== trimestreActual - Ocultar los proyectos que tengan mantenimiento
'N/A'de la lista de pagos pendientes, o mostrarlos sin botones de acción (ya que no requieren pago).
- Filtrar los proyectos activos para mostrar solo aquellos cuyo mantenimiento no ha sido pagado en el trimestre actual:
-
Funciones de Control:
parseMantenimiento(mantenimientoStr): Parsea el formato'1T 1P 1C'en un objeto{ t, p, c }.pagarMantenimientoProyecto(projectId):- Valida la selección de departamento y que este cuente con los recursos necesarios.
- Deduce los recursos y actualiza la tarjeta del departamento.
- Guarda el trimestre actual en el proyecto:
proyecto.mantenimientoPagadoEnTrimestre = trimestreActual. - Guarda la sesión y refresca la UI del resumen.
desecharProyecto(projectId):- Solicita confirmación al usuario.
- Deduce la penalización de
arregloGeneral['trimestre' + trimestreActual]. - Cambia el estatus del proyecto a
'descartado'. - Guarda la sesión y refresca la UI del resumen.
-
Event Listeners:
- Registrar delegación de clics con jQuery para
.btn-pagar-mantenimientoy.btn-desechar-proyecto.
- Registrar delegación de clics con jQuery para
[MODIFY] jsCode.js
-
Definir
limpiaProyectoGrande():- Función helper para limpiar visualmente el contenedor del proyecto grande en el tablero cuando este está en espera del pago de mantenimiento.
-
Modificar
continuamos():- Calcular el trimestre actual de la quincena cargada:
const trimestreActual = Math.floor((parseInt(arregloGeneral.quincena) - 1) / 6) + 1; - Modificar el filtro de proyectos para el tablero (tablero chico):
Un proyecto se muestra solo si está en proceso y no se ha pagado su mantenimiento en el trimestre actual (o no requiere mantenimiento):
const proyectosEnTablero = proyectos.filter( (p) => p.estatus === 'En proceso' && (!proyectoGde || p.id !== proyectoGde.id) && (p.mantenimiento === 'N/A' || p.mantenimientoPagadoEnTrimestre !== trimestreActual) ) - Modificar la asignación de
proyectoGde: Si el proyecto grande actual está en proceso pero ya pagó su mantenimiento para el siguiente trimestre, no se muestra en el tablero actual. Se llama alimpiaProyectoGrande().
- Calcular el trimestre actual de la quincena cargada:
Plan de Verificación
Verificación Manual
- Iniciar o cargar una sesión en la quincena 6 (fin del Trimestre 1).
- Ir a Resumen y verificar que los proyectos activos que requieren mantenimiento muestren los botones "Pagar Manto" y "Desechar".
- Seleccionar un departamento y hacer clic en Pagar Manto:
- Verificar que se deduzcan los recursos del departamento.
- Verificar que el proyecto desaparezca de la lista en el resumen.
- Ir al tablero y comprobar que no aparece en la quincena 6.
- Avanzar a la quincena 7 (Trimestre 2) y comprobar que el proyecto reaparece en el tablero.
- Volver a la quincena 6, seleccionar otro proyecto activo y hacer clic en Desechar:
- Confirmar y verificar que la penalización se reste del acumulado general de T1.
- Verificar que el proyecto cambie su estatus a
'descartado'en el JSON de sesión y no vuelva a aparecer en ningún lado.