diff --git a/cheve.json b/cheve.json index 1182345..8c9ab8d 100644 --- a/cheve.json +++ b/cheve.json @@ -2,8 +2,8 @@ "arregloGeneral": { "usuario": "omar", "empresa": "Ludoteca Empresarial", - "quincena": 2, - "proyectoGdeActual": 71, + "quincena": "4", + "proyectoGdeActual": 56, "nombreSesion": "cheve", "trimestre1": 98100, "trimestre2": 0, @@ -708,15 +708,15 @@ }, { "name": "recursoTiempo", - "value": 30 + "value": 27 }, { "name": "recursoPersonal", - "value": 29 + "value": 27 }, { "name": "recursoCapital", - "value": 29 + "value": 27 }, { "name": "habilidadTiempo", @@ -766,7 +766,7 @@ }, { "name": "activo2", - "value": 20 + "value": 23 }, { "name": "activo2Tipo", @@ -774,15 +774,15 @@ }, { "name": "recursoTiempo", - "value": 26 + "value": 27 }, { "name": "recursoPersonal", - "value": 30 + "value": 27 }, { "name": "recursoCapital", - "value": 26 + "value": 27 }, { "name": "habilidadTiempo", @@ -824,7 +824,7 @@ }, { "name": "activo1", - "value": 20 + "value": 22 }, { "name": "activo1Tipo", @@ -832,7 +832,7 @@ }, { "name": "activo2", - "value": 20 + "value": 22 }, { "name": "activo2Tipo", @@ -840,15 +840,15 @@ }, { "name": "recursoTiempo", - "value": 30 + "value": 28 }, { "name": "recursoPersonal", - "value": 30 + "value": 27 }, { "name": "recursoCapital", - "value": 30 + "value": 27 }, { "name": "habilidadTiempo", @@ -898,7 +898,7 @@ }, { "name": "activo2", - "value": 21 + "value": 25 }, { "name": "activo2Tipo", @@ -906,15 +906,15 @@ }, { "name": "recursoTiempo", - "value": 29 + "value": 27 }, { "name": "recursoPersonal", - "value": 29 + "value": 27 }, { "name": "recursoCapital", - "value": 30 + "value": 27 }, { "name": "habilidadTiempo", @@ -956,7 +956,7 @@ }, { "name": "activo1", - "value": 21 + "value": 23 }, { "name": "activo1Tipo", @@ -964,7 +964,7 @@ }, { "name": "activo2", - "value": 21 + "value": 22 }, { "name": "activo2Tipo", @@ -972,15 +972,15 @@ }, { "name": "recursoTiempo", - "value": 28 + "value": 25 }, { "name": "recursoPersonal", - "value": 28 + "value": 26 }, { "name": "recursoCapital", - "value": 30 + "value": 27 }, { "name": "habilidadTiempo", @@ -1004,7 +1004,7 @@ }, { "name": "accionEspecialLastUsed", - "value": 0 + "value": 4 }, { "name": "accionEspecialPeriodicidad", @@ -1030,7 +1030,7 @@ }, { "name": "activo2", - "value": 21 + "value": 23 }, { "name": "activo2Tipo", @@ -1038,15 +1038,15 @@ }, { "name": "recursoTiempo", - "value": 29 + "value": 27 }, { "name": "recursoPersonal", - "value": 24 + "value": 23 }, { "name": "recursoCapital", - "value": 25 + "value": 27 }, { "name": "habilidadTiempo", @@ -1119,7 +1119,7 @@ "morados": null, "activoAsignado1": 0, "activoAsignado2": 0, - "activoAsignado3": 1, + "activoAsignado3": 0, "mantenimiento": "N\/A", "imagen": "2-onboarding.jpg", "puntosGanados": 1, @@ -1146,7 +1146,7 @@ "morados": null, "activoAsignado1": 0, "activoAsignado2": 0, - "activoAsignado3": 1, + "activoAsignado3": 0, "mantenimiento": "N\/A", "imagen": "3Prestaciones.jpg", "puntosGanados": 1, @@ -1298,7 +1298,7 @@ "morados": null, "activoAsignado1": 0, "activoAsignado2": 0, - "activoAsignado3": 3, + "activoAsignado3": 0, "mantenimiento": "2T 2P 1C", "imagen": "9Capacitacion.jpg", "puntosGanados": 4, @@ -1400,7 +1400,7 @@ "morados": 1, "activoAsignado1": 0, "activoAsignado2": 0, - "activoAsignado3": 1, + "activoAsignado3": 0, "mantenimiento": "N\/A", "imagen": "13PuntoVenta.jpg", "puntosGanados": 1, @@ -1477,7 +1477,7 @@ "morados": 1, "activoAsignado1": 0, "activoAsignado2": 0, - "activoAsignado3": 1, + "activoAsignado3": 0, "mantenimiento": "1T 1P 1C", "imagen": "16EstudioMercado.jpg", "puntosGanados": 2, @@ -1604,7 +1604,7 @@ "morados": null, "activoAsignado1": 2, "activoAsignado2": 2, - "activoAsignado3": 3, + "activoAsignado3": 0, "mantenimiento": "2T 2P 1C", "imagen": "21TiendaLinea.jpg", "puntosGanados": 4, @@ -1755,8 +1755,8 @@ "rojos": null, "morados": 1, "activoAsignado1": 1, - "activoAsignado2": 1, - "activoAsignado3": 1, + "activoAsignado2": 0, + "activoAsignado3": 0, "mantenimiento": "N\/A", "imagen": "27CarteraVencida.jpg", "puntosGanados": 1, @@ -1783,7 +1783,7 @@ "morados": 2, "activoAsignado1": 2, "activoAsignado2": 1, - "activoAsignado3": 2, + "activoAsignado3": 0, "mantenimiento": "1T 1P 1C", "imagen": "28Franquicias.jpg", "puntosGanados": 2, @@ -1810,7 +1810,7 @@ "morados": null, "activoAsignado1": 2, "activoAsignado2": 2, - "activoAsignado3": 1, + "activoAsignado3": 0, "mantenimiento": "1T 1P 1C", "imagen": "29AperturaTiendas.jpg", "puntosGanados": 2, @@ -1936,7 +1936,7 @@ "rojos": 1, "morados": 1, "activoAsignado1": 1, - "activoAsignado2": 1, + "activoAsignado2": 0, "activoAsignado3": 1, "mantenimiento": "N\/A", "imagen": "34HombreDeNegro", @@ -1954,7 +1954,7 @@ "nombreProyecto": "Incidencia", "descripcion": "El d\u00f3lar por las nubes", "departamento": "FINANZAS", - "estatus": "Pendiente", + "estatus": "En siguientes", "dificultad": "Incidencia", "amarillo": 1, "naranjas": null, @@ -2693,7 +2693,7 @@ "nombreProyecto": "Centro de distribuci\u00f3n", "descripcion": "Abrir nuevo centro de distribuci\u00f3n", "departamento": "OPERACIONES", - "estatus": "Pendiente", + "estatus": "En siguientes", "dificultad": 2, "amarillo": 1, "naranjas": 2, @@ -2768,7 +2768,7 @@ "nombreProyecto": "Planta industrial", "descripcion": "Construir la nueva planta industrial", "departamento": "OPERACIONES", - "estatus": "En proceso", + "estatus": "descartado", "dificultad": 3, "amarillo": 3, "naranjas": 2, @@ -2895,7 +2895,7 @@ "nombreProyecto": "Incidencia", "descripcion": "Accidentalmente se entregaron 50 cajas de calcetines sin par", "departamento": "OPERACIONES", - "estatus": "En proceso", + "estatus": "descartado", "dificultad": "Incidencia", "amarillo": null, "naranjas": null, @@ -2903,7 +2903,7 @@ "azules": null, "rojos": 2, "morados": null, - "activoAsignado1": 0, + "activoAsignado1": 1, "activoAsignado2": 0, "activoAsignado3": 0, "mantenimiento": "N\/A", diff --git a/jsCode.js b/jsCode.js index 31a785a..9e215c5 100644 --- a/jsCode.js +++ b/jsCode.js @@ -949,6 +949,82 @@ function llenaSiguienteProyectoChico() { // } } +/** + * Redibuja todo el tablero de proyectos (grande y chicos) basado en el estado actual. + */ +function redibujarTablero() { + console.log('Redibujando tablero de proyectos...') + + // 1. Determinar cuál será el nuevo proyecto grande. + let nuevoProyectoGde = null + // Prioridad 1: El que ya era grande, si sigue 'En proceso'. + if ( + proyectoGdeActual !== '' && + proyectos[proyectoGdeActual] && + proyectos[proyectoGdeActual].estatus === 'En proceso' + ) { + nuevoProyectoGde = proyectos[proyectoGdeActual] + } else { + // Prioridad 2: El primer proyecto 'En proceso' que se encuentre. + nuevoProyectoGde = proyectos.find((p) => p.estatus === 'En proceso') + } + + // Prioridad 3: Si no hay ninguno 'En proceso', tomar el primero de la cola 'En siguientes'. + if (!nuevoProyectoGde) { + nuevoProyectoGde = proyectos.find((p) => p.estatus === 'En siguientes') + } + + // 2. Limpiar todos los slots de proyectos chicos. + for (let i = 1; i <= 7; i++) { + limpiaProyectoChico('proyecto_' + i) + } + ultimoProyectoLlenado = 0 // Resetear contador + + // 3. Llenar o limpiar el proyecto grande. + if (nuevoProyectoGde) { + llenaProyectoGde(nuevoProyectoGde.id) + } else { + limpiarProyectoGde() + proyectoGdeActual = '' // Asegurarse de que el ID del proyecto grande se limpie. + } + + // 4. Llenar los proyectos chicos con los restantes 'En proceso'. + const idProyectoGde = nuevoProyectoGde ? nuevoProyectoGde.id : -1 + const proyectosEnTableroChico = proyectos.filter( + (p) => p.estatus === 'En proceso' && p.id !== idProyectoGde + ) + + proyectosEnTableroChico.forEach((proyecto) => { + llenaProyectoChico(proyecto.id - 1) + }) + + // 5. Asegurarse de que la cola de 'siguientesProyectos' esté actualizada. + obtenerProyectosPendientes() +} + +/** + * Limpia la vista del proyecto grande. + */ +function limpiarProyectoGde() { + $('#TablaProyectoGde').attr('num', '').css('background-color', 'white') + $('#nombreProyectoGde').html('') + $('#descripcionProyectoGde').html('') + $('#TablaProyectoGde #puntosGanados').html('') + $('#puntosPerdidos').html('') + $('#imagenProyectoGde').attr('src', '') + + for (let i = 1; i <= 3; i++) { + $('#activoReqProyectoNom' + i) + .attr('class', 'actNinguno') + .text('') + $('#activoReqProyectoCantX' + i).text('') + $('#activoReqProyectoCant' + i) + .attr('class', 'actNinguno') + .text('') + } + $('#mantoGde').text('MANTENIMIENTO') +} + /** * Checks if the current project is completed and updates its status and the UI accordingly. */ @@ -1932,15 +2008,75 @@ $('#accionHabilidadEspecial').click(function () { 'Descartar un proyecto (se va al limbo con todo y activos)' ) { // Actualizamos lastUsed - setArrayValue(elArreglo, 'accionEspecialLastUsed', quincenaActual) + const proyectosEnProceso = proyectos.filter( + (p) => p.estatus === 'En proceso' + ) - // Aquí el código de Operaciones: "Descartar un proyecto (se va al limbo con todo y activos)" - window.alert('¡Acción especial activada (Operaciones)!') - - // Se guarda el avance - if (typeof guardaSesion === 'function') { - guardaSesion() + if (proyectosEnProceso.length === 0) { + alert('No hay proyectos en proceso para descartar.') + return // No se usa la habilidad si no hay nada que descartar } + + // Crear y mostrar el diálogo de selección + let dialogContent = $( + '
Selecciona el proyecto a descartar: