mirror of
https://github.com/cheveguerra/Colaborando.git
synced 2026-08-19 00:46:37 +00:00
- Boton de habilidades especiales en resumen
- Descartar un proyecto implementado
This commit is contained in:
+44
-44
@@ -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",
|
||||
|
||||
@@ -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 = $(
|
||||
'<div><p>Selecciona el proyecto a descartar:</p></div>'
|
||||
)
|
||||
let projectList = $('<form>')
|
||||
proyectosEnProceso.forEach((p) => {
|
||||
projectList.append(
|
||||
`<div style="display: flex; align-items: flex-start; margin: 8px 0; text-align: left;">
|
||||
<input type="radio" id="proj-discard-${p.id}" name="proyectoADescartar" value="${p.id}" style="margin-top: 2px; flex-shrink: 0;">
|
||||
<label for="proj-discard-${p.id}" style="margin-left: 8px; cursor: pointer;">
|
||||
${p.nombreProyecto} <span style="color: #555; font-size: 0.9em;">(${p.departamento})</span>
|
||||
</label>
|
||||
</div>`
|
||||
)
|
||||
})
|
||||
dialogContent.append(projectList)
|
||||
|
||||
dialogContent.dialog({
|
||||
modal: true,
|
||||
title: 'Descartar Proyecto',
|
||||
width: 450,
|
||||
buttons: {
|
||||
Descartar: function () {
|
||||
const selectedProjectId = $(
|
||||
'input[name="proyectoADescartar"]:checked'
|
||||
).val()
|
||||
|
||||
if (!selectedProjectId) {
|
||||
alert('Por favor, selecciona un proyecto.')
|
||||
return
|
||||
}
|
||||
|
||||
const proyectoADescartar = proyectos.find(
|
||||
(p) => p.id == selectedProjectId
|
||||
)
|
||||
if (proyectoADescartar) {
|
||||
proyectoADescartar.estatus = 'descartado'
|
||||
setArrayValue(
|
||||
elArreglo,
|
||||
'accionEspecialLastUsed',
|
||||
quincenaActual
|
||||
)
|
||||
redibujarTablero()
|
||||
var audio = new Audio('./Microwave_bell.wav')
|
||||
audio.play()
|
||||
alert('¡Proyecto descartado con éxito!')
|
||||
if (typeof guardaSesion === 'function') {
|
||||
guardaSesion()
|
||||
}
|
||||
}
|
||||
$(this).dialog('close')
|
||||
},
|
||||
Cancelar: function () {
|
||||
$(this).dialog('close')
|
||||
},
|
||||
},
|
||||
close: function () {
|
||||
$(this).dialog('destroy').remove()
|
||||
},
|
||||
})
|
||||
} else {
|
||||
// Acción desconocida (o Finanzas si llegara hasta aquí por error, aunque se bloquea antes)
|
||||
window.alert(
|
||||
|
||||
Reference in New Issue
Block a user