document.addEventListener("DOMContentLoaded", function () { /* --------------------------------------------------------------- FERIAS JUDICIALES — SCBA Fuente: hoja "feria judicial" del listado de expedientes. Actualizar agregando nuevas filas al array según acordadas SCBA. IMPORTANTE: Solo se descuentan ferias cuyo INICIO sea estrictamente posterior a la fecha del último acto procesal. --------------------------------------------------------------- */ var FERIAS = [ {i: "2021-07-19", f: "2021-08-01", d: "Feria Judicial de Invierno SCBA 2021"}, {i: "2022-01-01", f: "2022-01-31", d: "Feria Judicial de Verano SCBA 2022"}, {i: "2022-07-18", f: "2022-07-31", d: "Feria Judicial de Invierno SCBA 2022"}, {i: "2023-01-01", f: "2023-01-31", d: "Feria Judicial de Verano SCBA 2023"}, {i: "2023-07-17", f: "2023-07-30", d: "Feria Judicial de Invierno SCBA 2023"}, {i: "2024-01-01", f: "2024-01-31", d: "Feria Judicial de Verano SCBA 2024"}, {i: "2024-07-15", f: "2024-07-28", d: "Feria Judicial de Invierno SCBA 2024"}, {i: "2025-01-01", f: "2025-01-31", d: "Feria Judicial de Verano SCBA 2025"}, {i: "2025-07-21", f: "2025-08-01", d: "Feria Judicial de Invierno SCBA 2025"}, {i: "2026-01-01", f: "2026-01-31", d: "Feria Judicial de Verano SCBA 2026"} /* Agregar aquí la feria de invierno 2026 cuando se publique la acordada */ ]; var PLAZO = 180; function toDate(str) { var p = str.split("-"); return new Date(parseInt(p[0]), parseInt(p[1]) - 1, parseInt(p[2])); } function diffDias(a, b) { return Math.round((b - a) / 86400000); } function formatFecha(d) { return d.toLocaleDateString("es-AR", { weekday: "long", day: "numeric", month: "long", year: "numeric" }).toUpperCase(); } function calcCaducidad() { var valActo = document.getElementById("cad_acto").value; var valConsulta = document.getElementById("cad_consulta").value; if (!valActo || !valConsulta) return; var fechaActo = toDate(valActo); var fechaConsulta = toDate(valConsulta); /* Sumar días de ferias cuyo inicio es POSTERIOR al último acto */ var totalFeriasDias = 0; var feriasAplicadas = []; for (var k = 0; k < FERIAS.length; k++) { var fer = FERIAS[k]; var inicio = toDate(fer.i); var fin = toDate(fer.f); if (inicio > fechaActo) { var duracion = diffDias(inicio, fin) + 1; /* inclusive */ totalFeriasDias += duracion; feriasAplicadas.push({ d: fer.d, desde: inicio.toLocaleDateString("es-AR"), hasta: fin.toLocaleDateString("es-AR"), dias: duracion }); } } /* E22 = DAYS(consulta, acto) - ferias - 1 */ var diasBrutos = diffDias(fechaActo, fechaConsulta); var diasEfect = diasBrutos - totalFeriasDias - 1; /* E23 = consulta + (180 - E22) */ var diasRestantes = PLAZO - diasEfect; var fechaCaducidad = new Date(fechaConsulta); fechaCaducidad.setDate(fechaCaducidad.getDate() + diasRestantes); var caducado = diasEfect >= PLAZO; /* ── RESULTADO PRINCIPAL ─────────────────────────────── */ var resDiv = document.getElementById("cad_res"); var estadoDiv = document.getElementById("cad_estado"); var fechaDiv = document.getElementById("cad_fecha"); var detDiv = document.getElementById("cad_det"); var listDiv = document.getElementById("cad_ferias_list"); var ferBox = document.getElementById("cad_ferias_box"); if (caducado) { estadoDiv.style.color = "#c0392b"; estadoDiv.innerHTML = "⚠ SE PUEDE SOLICITAR LA CADUCIDAD DE INSTANCIA"; fechaDiv.innerHTML = "El plazo venció el:
" + "" + formatFecha(fechaCaducidad) + ""; } else { estadoDiv.style.color = "#002147"; estadoDiv.innerHTML = "FALTAN " + diasRestantes + " DÍA" + (diasRestantes === 1 ? "" : "S") + " PARA QUE EL PLAZO DE CADUCIDAD SE ENCUENTRE VENCIDO"; fechaDiv.innerHTML = "Fecha de vencimiento:
" + "" + formatFecha(fechaCaducidad) + ""; } /* Detalle numérico */ detDiv.innerHTML = "
" + "Días corridos transcurridos" + diasBrutos + "
" + "
" + "Días de ferias descontados" + totalFeriasDias + "
" + "
" + "Días efectivos del plazo" + diasEfect + " / " + PLAZO + "
"; /* Lista de ferias descontadas */ listDiv.innerHTML = ""; if (feriasAplicadas.length > 0) { for (var j = 0; j < feriasAplicadas.length; j++) { var fa = feriasAplicadas[j]; listDiv.innerHTML += "
" + "" + fa.d + " (" + fa.desde + " — " + fa.hasta + ")" + "−" + fa.dias + " días
"; } ferBox.style.display = "block"; } else { ferBox.style.display = "none"; } resDiv.style.display = "block"; } var btn = document.getElementById("cad_btn"); if (btn) btn.addEventListener("click", calcCaducidad); /* Fecha de consulta = hoy por defecto */ var hoy = new Date().toISOString().split("T")[0]; var fc = document.getElementById("cad_consulta"); if (fc) fc.value = hoy; });