This commit is contained in:
2026-06-10 21:48:20 -06:00
parent f361c22f4c
commit 0d37dda9de
+312 -67
View File
@@ -232,7 +232,7 @@
================================================================== --> ================================================================== -->
<div class="column column-left"> <div class="column column-left">
<div class="card"> <div class="card">
<img id="logo" src="img/logoColaborando-tablero.png" style="width:100%"> <img id="logo" src="img/logoColaborando-tablero.png">
<div style="display: flex; justify-content: space-between; align-items: center; padding: 5px 10px;"> <div style="display: flex; justify-content: space-between; align-items: center; padding: 5px 10px;">
<div id="nombreSesion" style="font-weight: bold; font-size: 16px; color: #555;"></div> <div id="nombreSesion" style="font-weight: bold; font-size: 16px; color: #555;"></div>
<a href="colaborando2.php?n=<?php echo htmlspecialchars($_GET['n'] ?? $_GET['nombre'] ?? ''); ?>" class="nav-button">Ir al Tablero</a> <a href="colaborando2.php?n=<?php echo htmlspecialchars($_GET['n'] ?? $_GET['nombre'] ?? ''); ?>" class="nav-button">Ir al Tablero</a>
@@ -389,17 +389,23 @@
</td> </td>
</tr> </tr>
<tr style="vertical-align:middle;"> <tr style="vertical-align:middle;">
<td style="text-align:center;"> <td colspan=3>
<img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <table>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div> <tr>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div> </td>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div> </td>
<td style="text-align:center;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div>
</td>
</tr>
</table>
</td> </td>
</tr> </tr>
</table> </table>
@@ -416,17 +422,23 @@
</td> </td>
</tr> </tr>
<tr style="vertical-align:middle;"> <tr style="vertical-align:middle;">
<td style="text-align:center;"> <td colspan=3>
<img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <table>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div> <tr>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div> </td>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div> </td>
<td style="text-align:center;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div>
</td>
</tr>
</table>
</td> </td>
</tr> </tr>
</table> </table>
@@ -443,17 +455,23 @@
</td> </td>
</tr> </tr>
<tr style="vertical-align:middle;"> <tr style="vertical-align:middle;">
<td style="text-align:center;"> <td colspan=3>
<img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <table>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div> <tr>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div> </td>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div> </td>
<td style="text-align:center;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div>
</td>
</tr>
</table>
</td> </td>
</tr> </tr>
</table> </table>
@@ -470,17 +488,23 @@
</td> </td>
</tr> </tr>
<tr style="vertical-align:middle;"> <tr style="vertical-align:middle;">
<td style="text-align:center;"> <td colspan=3>
<img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <table>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div> <tr>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div> </td>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div> </td>
<td style="text-align:center;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div>
</td>
</tr>
</table>
</td> </td>
</tr> </tr>
</table> </table>
@@ -497,17 +521,23 @@
</td> </td>
</tr> </tr>
<tr style="vertical-align:middle;"> <tr style="vertical-align:middle;">
<td style="text-align:center;"> <td colspan=3>
<img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <table>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div> <tr>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div> </td>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div> </td>
<td style="text-align:center;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div>
</td>
</tr>
</table>
</td> </td>
</tr> </tr>
</table> </table>
@@ -524,21 +554,34 @@
</td> </td>
</tr> </tr>
<tr style="vertical-align:middle;"> <tr style="vertical-align:middle;">
<td style="text-align:center;"> <td colspan=3>
<img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <table>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div> <tr>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/tiempoCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="tiempoCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div> </td>
</td> <td style="text-align:center;">
<td style="text-align:center;"> <img src="img/personalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;"> <div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="personalCh" class="draggable recurso-item">0</div>
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div> </td>
<td style="text-align:center;">
<img src="img/capitalCH.png" style="width: 30px; height: 30px; vertical-align: middle;">
<div style="vertical-align:middle; display:inline-block; font-weight:bold; font-size:16px;" id="capitalCh" class="draggable recurso-item">0</div>
</td>
</tr>
</table>
</td> </td>
</tr> </tr>
</table> </table>
</div> </div>
<!-- BOTON DE HABILIDAD ESPECIAL -->
<div class="card" style="padding: 5px; margin-top: 10px;">
<button id="resumenAccionHabilidadEspecial" class="nav-button" style="width: 100%;">
Utilizar Habilidad Especial
</button>
</div>
</div> </div>
<!-- ================================================================= <!-- =================================================================
@@ -944,6 +987,208 @@
setTimeout(actualizarResumenUI, 100); setTimeout(actualizarResumenUI, 100);
}); });
$('#resumenAccionHabilidadEspecial').click(function() {
if (typeof deptoActual === 'undefined' || !deptoActual) {
alert('Primero selecciona un departamento haciendo clic en él.');
return;
}
let elArreglo = arreglosDeptos['arr' + deptoActual];
let accionQuincenal = findArrayValue(elArreglo, 'accionEspecialQuincenal');
if (!accionQuincenal || accionQuincenal === '') {
alert('El departamento seleccionado no tiene una habilidad especial disponible (requiere comprar sus 3 habilidades).');
return;
}
if (deptoActual === 'Finanzas') {
window.alert(
'La habilidad especial de Finanzas (Tener 1 recurso extra) ya está activa y se aplica automáticamente al generar recursos aleatorios.'
);
return;
}
let lastUsed = parseInt(findArrayValue(elArreglo, 'accionEspecialLastUsed')) || 0;
let periodicidad = parseInt(findArrayValue(elArreglo, 'accionEspecialPeriodicidad')) || 2;
let quincenaActual = parseInt($('#etQuincena').val()) || 1;
let puedeUsar = false;
if (lastUsed === 0) {
puedeUsar = true;
} else if (quincenaActual >= lastUsed + periodicidad) {
puedeUsar = true;
}
if (puedeUsar) {
let proximoUso = quincenaActual + periodicidad;
let nombreDepto = findArrayValue(elArreglo, 'nombre').toLowerCase().replace(/(?:^|\s)\S/g, function(a) {
return a.toUpperCase();
});
let textoConfirmacion =
'¿Quieres utilizar la acción especial del departamento "' +
nombreDepto +
'"?<br><br>' +
'Acción: <b>' +
accionQuincenal +
'</b><br><br>' +
'<small><i>Periodicidad: Cada ' +
periodicidad +
' quincenas.</i><br>' +
'<i>Si la usas ahora, podrás usarla de nuevo en la quincena <b>' +
proximoUso +
'</b>.</i></small>';
confirm(textoConfirmacion, function(result) {
if (result) {
console.log('Se activa la accion especial: ' + accionQuincenal);
if (accionQuincenal === 'Generar un activo sin costo') {
let tipoActivo1 = findArrayValue(elArreglo, 'activo1Tipo');
let tipoActivo2 = findArrayValue(elArreglo, 'activo2Tipo');
$('<div>¿Qué activo deseas generar sin costo?</div>').dialog({
modal: true,
title: 'Generar Activo',
width: 450,
open: function() {
var $btnset = $(this).closest('.ui-dialog').find('.ui-dialog-buttonset');
$btnset.css({
display: 'flex',
'flex-wrap': 'wrap',
'justify-content': 'center',
width: '100%',
float: 'none',
});
$btnset.find('button:contains("Cancelar")').before('<div style="flex-basis: 100%; height: 15px;"></div>');
var coloresMapa = {
PersonalCalificado: 'yellow',
Analistas: 'orange',
FlujoDeEfectivo: 'green',
TransporteYMaquinaria: 'blue',
Tecnologia: 'red',
CreditoEInversion: 'purple',
};
$btnset.find('.act' + tipoActivo1).css({
width: 'auto',
padding: '10px 20px',
background: coloresMapa[tipoActivo1] || '',
color: tipoActivo1 === 'PersonalCalificado' || tipoActivo1 === 'FlujoDeEfectivo' ? 'black' : 'white',
});
$btnset.find('.act' + tipoActivo2).css({
width: 'auto',
padding: '10px 20px',
background: coloresMapa[tipoActivo2] || '',
color: tipoActivo2 === 'PersonalCalificado' || tipoActivo2 === 'FlujoDeEfectivo' ? 'black' : 'white',
});
},
buttons: [{
text: tipoActivo1,
class: 'act' + tipoActivo1,
click: function() {
$(this).dialog('close');
generarActivo(1);
},
}, {
text: tipoActivo2,
class: 'act' + tipoActivo2,
click: function() {
$(this).dialog('close');
generarActivo(2);
},
}, {
text: 'Cancelar',
click: function() {
$(this).dialog('close');
},
}, ],
});
function generarActivo(num) {
setArrayValue(elArreglo, 'accionEspecialLastUsed', quincenaActual);
let activoKey = 'activo' + num;
let valorActual = parseInt(findArrayValue(elArreglo, activoKey)) || 0;
let nuevoValor = valorActual + 1;
setArrayValue(elArreglo, activoKey, nuevoValor);
actualizarTarjetaDepto(deptoActual); // Actualiza la tarjeta del depto en la UI de resumen
var audio = new Audio('./Microwave_bell.wav');
audio.play();
window.alert('¡Activo generado con éxito!');
if (typeof guardaSesion === 'function') {
guardaSesion();
}
}
} else if (accionQuincenal === 'Descartar un proyecto (se va al limbo con todo y activos)') {
const proyectosEnProceso = proyectos.filter(p => p.estatus === 'En proceso');
if (proyectosEnProceso.length === 0) {
alert('No hay proyectos en proceso para descartar.');
return;
}
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);
actualizarResumenUI(); // <--- Cambio clave: refresca la UI de resumen
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 {
// Para las demás habilidades que solo muestran un mensaje
setArrayValue(elArreglo, 'accionEspecialLastUsed', quincenaActual);
window.alert(`¡Acción especial '${accionQuincenal}' activada!`);
if (typeof guardaSesion === 'function') {
guardaSesion();
}
}
}
}, 450);
} else {
let quincenasRestantes = lastUsed + periodicidad - quincenaActual;
window.alert('Aún no puedes usar la habilidad especial. Debes esperar ' + quincenasRestantes + ' quincena(s) más.');
}
});
// El listener para el click en .departamentos ya está en jsCode.js y funcionará ahora // El listener para el click en .departamentos ya está en jsCode.js y funcionará ahora
</script> </script>