18/09/2026 19:28
Eduardo Castex 21°
Titulares
Trump dice que su hijo devolvió el dinero al ruso que financió las fiestas de la boda Prisión preventiva para la funcionaria del Patronato de Liberados de Provincia acusada de lavado de dinero Un informe erróneo generado con IA puso a un buque chino en la mira del Gobierno de EE.UU. Quiniela de Córdoba: resultado del sorteo de la Vespertina de hoy, viernes 18 de septiembre Quiniela de la Provincia: resultado del sorteo de la Vespertina de hoy, viernes 18 de septiembre Fallo contra el tarifazo eléctrico en la Provincia: suspenden una resolución de Kicillof y vuelven al cuadro tarifario anterior Trump dice que congresista republicana que rechaza su política migratoria ganó gracias él Quiniela de Santa Fe: resultado del sorteo de la Nocturna de hoy, viernes 18 de septiembre Trump dice que su hijo devolvió el dinero al ruso que financió las fiestas de la boda Prisión preventiva para la funcionaria del Patronato de Liberados de Provincia acusada de lavado de dinero Un informe erróneo generado con IA puso a un buque chino en la mira del Gobierno de EE.UU. Quiniela de Córdoba: resultado del sorteo de la Vespertina de hoy, viernes 18 de septiembre Quiniela de la Provincia: resultado del sorteo de la Vespertina de hoy, viernes 18 de septiembre Fallo contra el tarifazo eléctrico en la Provincia: suspenden una resolución de Kicillof y vuelven al cuadro tarifario anterior Trump dice que congresista republicana que rechaza su política migratoria ganó gracias él Quiniela de Santa Fe: resultado del sorteo de la Nocturna de hoy, viernes 18 de septiembre
Impacto Castex
POLITICA

Inocencia Fiscal II: qué senadores votaron a favor y cuáles en contra de un proyecto clave para Milei

Inocencia Fiscal II: qué senadores votaron a favor y cuáles en contra de un proyecto clave para Milei

Fue aprobado por 44 votos a favor y 23 en contra. Se convirtió en ley. Cómo se pronunciaron La Libertad Avanza, el peronismo y el resto de los espacios este jueves 17.

El Senado aprobó este jueves el proyecto de Ley de Inocencia Fiscal II impulsado por el gobierno de Javier Milei. La iniciativa, que ya tenía media sanción en Diputados, se convirtió en ley. Obtuvo 44 votos a favor y 23 en contra, sin abstenciones. Antes, también se habían aprobado el traspaso de la Justicia de Menores a la Ciudad y los pliegos de dos candidatos a camaristas.

El proyecto que se debatió en la Cámara alta amplía el régimen simplificado para el Impuesto a las Ganancias y modifica las condiciones bajo las cuales ARCA podrá cuestionar las declaraciones de los contribuyentes, a la vez que apunta a reducir la información que deben presentar las personas físicas y a limitar las facultades de fiscalización del organismo.

Además, profundiza el espíritu de la ley de Inocencia Fiscal que el oficialismo ya había logrado aprobar en diciembre de 2025.

Además del apoyo de la Libertad Avanza, el proyecto también obtuvo el visto bueno del PRO y la UCR durante la votación. En contra, se pronunciaron los senadores de Unión por la Patria (bloque Justicialista). Los bloques provinciales no votaron de manera unificada.

Uno por uno, así votaron los senadores el proyecto de Inocencia Fiscal II

Negativo

0

Abstención

0

Ausente

0

Por provincia

Provincia...

Por bloque

Bloque...

${status}

`; } function createCard(item, borderColor) { const card = document.createElement("div"); card.className = "vs2__card"; const fotoWrap = document.createElement("div"); fotoWrap.className = "vs2__foto"; if (borderColor) { fotoWrap.style.borderColor = borderColor; } else { fotoWrap.style.opacity = "0.3"; fotoWrap.style.border = "none"; } const img = document.createElement("img"); img.loading = "lazy"; img.decoding = "async"; img.alt = "foto-senador"; img.src = "https://www.clarin.com/redaccionfiler/clarin/desarrollo/2024/politica/senadores/bn/" + (item.url_foto || ""); img.addEventListener("error", () => { img.style.opacity = "0.35"; }, { once: true }); fotoWrap.appendChild(img); const nombre = document.createElement("p"); nombre.className = "vs2__nombre"; nombre.textContent = String(item.nombres || "").toLowerCase(); const apellido = document.createElement("p"); apellido.className = "vs2__apellido"; apellido.textContent = String(item.apellido || "").toLowerCase(); const bloque = document.createElement("span"); bloque.className = "vs2__bloque"; bloque.textContent = String(item.bloque || ""); card.appendChild(fotoWrap); card.appendChild(nombre); card.appendChild(apellido); card.appendChild(bloque); return card; } function seatClass(kind) { if (kind === "AFIRMATIVO") return "vs2__seat--afirmativo"; if (kind === "NEGATIVO") return "vs2__seat--negativo"; if (kind === "ABSTENCIÓN") return "vs2__seat--abstencion"; if (kind === "AUSENTE") return "vs2__seat--ausente"; return "vs2__seat--empty"; } function hemicicloParams(which) { if (which === "big") { return { centerX: 300, baseY: 450, rows: 5, seatsPerRow: [21, 18, 16, 11, 6], verticalOffset: 2, radiusStart: 300, radiusStep: 55 }; } return { centerX: 300, baseY: 450, rows: 5, seatsPerRow: [21, 18, 16, 12, 7], verticalOffset: 0, radiusStart: 170, radiusStep: 30 }; } function computeRowSeatCounts(seatsPerRow, totals) { const totalSeats = seatsPerRow.reduce((a, b) => a + b, 0); return seatsPerRow.map(seatsInRow => { const exact = { AFIRMATIVO: (totals.AFIRMATIVO / totalSeats) * seatsInRow, NEGATIVO: (totals.NEGATIVO / totalSeats) * seatsInRow, "ABSTENCIÓN": (totals["ABSTENCIÓN"] / totalSeats) * seatsInRow, AUSENTE: (totals.AUSENTE / totalSeats) * seatsInRow }; const floor = { AFIRMATIVO: Math.floor(exact.AFIRMATIVO), NEGATIVO: Math.floor(exact.NEGATIVO), "ABSTENCIÓN": Math.floor(exact["ABSTENCIÓN"]), AUSENTE: Math.floor(exact.AUSENTE) }; let assigned = floor.AFIRMATIVO + floor.NEGATIVO + floor["ABSTENCIÓN"] + floor.AUSENTE; let diff = seatsInRow - assigned; const rems = [{ k: "AFIRMATIVO", r: exact.AFIRMATIVO - floor.AFIRMATIVO }, { k: "NEGATIVO", r: exact.NEGATIVO - floor.NEGATIVO }, { k: "ABSTENCIÓN", r: exact["ABSTENCIÓN"] - floor["ABSTENCIÓN"] }, { k: "AUSENTE", r: exact.AUSENTE - floor.AUSENTE }, ].sort((a, b) => b.r - a.r); while (diff > 0) { for (const it of rems) { if (diff <= 0) break; floor[it.k] += 1; diff--; } } return floor; }); } function renderHemiciclo(which, totals) { const el = byRole(which === "big" ? "hemiciclo-big" : "hemiciclo-small"); if (!el) return; el.innerHTML = ""; const p = hemicicloParams(which); let rowSeatCounts = computeRowSeatCounts(p.seatsPerRow, totals); const maxSeatsInRow = p.seatsPerRow[0]; for (let col = 0; col < maxSeatsInRow; col++) { for (let row = 0; row < p.rows; row++) { if (col >= p.seatsPerRow[row]) continue; const seatsInThisRow = p.seatsPerRow[row]; const radius = p.radiusStart - row * (p.radiusStep - p.verticalOffset); const angleRange = Math.PI; const angleStep = (seatsInThisRow > 1) ? angleRange / (seatsInThisRow - 1) : 0; const angle = (Math.PI - angleRange) / 2 + col * angleStep; const x = p.centerX + radius * Math.cos(angle); const y = p.baseY - radius * Math.sin(angle); let kind = "EMPTY"; if (rowSeatCounts[row].AFIRMATIVO > 0) { kind = "AFIRMATIVO"; rowSeatCounts[row].AFIRMATIVO--; } else if (rowSeatCounts[row].NEGATIVO > 0) { kind = "NEGATIVO"; rowSeatCounts[row].NEGATIVO--; } else if (rowSeatCounts[row]["ABSTENCIÓN"] > 0) { kind = "ABSTENCIÓN"; rowSeatCounts[row]["ABSTENCIÓN"]--; } else if (rowSeatCounts[row].AUSENTE > 0) { kind = "AUSENTE"; rowSeatCounts[row].AUSENTE--; } const seat = document.createElement("div"); seat.className = "vs2__seat " + seatClass(kind); seat.style.left = x + "px"; seat.style.top = y + "px"; el.appendChild(seat); } } } function populateFilters(data) { const selProv = byRole("select-provincia"); const selBloq = byRole("select-bloque"); if (!selProv || !selBloq) return; const provSet = new Set(); const bloqSet = new Map(); // bloque -> full data.forEach(r => { if (r.provincia) provSet.add(r.provincia); if (r.bloque) bloqSet.set(r.bloque, r.bloque_full || r.bloque); }); Array.from(provSet).sort().forEach(p => { const opt = document.createElement("option"); opt.value = p; opt.textContent = p; selProv.appendChild(opt); }); Array.from(bloqSet.entries()) .sort((a, b) => String(a[0]).localeCompare(String(b[0]))) .forEach(([code, full]) => { const opt = document.createElement("option"); opt.value = code; opt.textContent = `${full} (${code})`; selBloq.appendChild(opt); }); } function renderFiltered(data, field, value, targetEl) { targetEl.innerHTML = ""; const rows = data.filter(r => value === "all" || r[field] === value); const order = ["AFIRMATIVO", "NEGATIVO", "ABSTENCIÓN", "AUSENTE"]; const colorBy = { AFIRMATIVO: "#00A377", NEGATIVO: "#c90808", "ABSTENCIÓN": "#444", AUSENTE: null }; order.forEach(voto => { rows.filter(r => normalizeVoto(r.voto) === voto).forEach(r => { targetEl.appendChild(createCard(r, colorBy[voto])); }); }); } function wireUI(data) { // toggles $$('[data-role="section"], [data-role="filter-provincia"], [data-role="filter-bloque"]').forEach(sec => { const btn = sec.querySelector('[data-role="toggle"]'); if (!btn) return; btn.addEventListener("click", () => { const open = sec.getAttribute("data-open") !== "true"; openPanel(sec, open); }); }); // abrir por defecto secciones principales, y dejar filtros cerrados $$('[data-role="section"]').forEach(sec => openPanel(sec, true)); $$('[data-role="filter-provincia"], [data-role="filter-bloque"]').forEach(sec => openPanel(sec, false)); // go top const goTop = byRole("go-top"); if (goTop) { goTop.addEventListener("click", () => root.scrollIntoView({ behavior: "smooth" })); const obs = new IntersectionObserver((entries) => { entries.forEach(e => { goTop.style.display = e.isIntersecting ? "block" : "none"; }); }, { threshold: 0.1 }); obs.observe(root); } // filtros const selProv = byRole("select-provincia"); const selBloq = byRole("select-bloque"); const provOut = byRole("provincia-results"); const bloqOut = byRole("bloque-results"); if (selProv && provOut) { selProv.addEventListener("change", (e) => { renderFiltered(data, "provincia", e.target.value, provOut); const sec = byRole("filter-provincia"); if (sec) openPanel(sec, true); }); } if (selBloq && bloqOut) { selBloq.addEventListener("change", (e) => { renderFiltered(data, "bloque", e.target.value, bloqOut); const sec = byRole("filter-bloque"); if (sec) openPanel(sec, true); }); } } async function init() { setLoaded(false); const csvUrl = root.dataset.csvUrl; if (!csvUrl) { const summary = byRole("summary"); if (summary) summary.innerHTML = `

Error: falta data-csv-url

`; return; } try { const Papa = await ensurePapa(); Papa.parse(csvUrl, { download: true, header: true, skipEmptyLines: true, complete: function(res) { const data = (res && res.data) ? res.data : []; // panels por voto const panelByVote = {}; $$('[data-role="section"]').forEach(sec => { const voto = sec.getAttribute("data-voto"); const panel = sec.querySelector('[data-role="panel"]'); if (voto && panel) panelByVote[voto] = panel; }); const counts = { AFIRMATIVO: 0, NEGATIVO: 0, "ABSTENCIÓN": 0, AUSENTE: 0 }; const colorBy = { AFIRMATIVO: "#00A377", NEGATIVO: "#c90808", "ABSTENCIÓN": "#444", AUSENTE: null }; data.forEach(row => { const voto = normalizeVoto(row.voto); if (!counts.hasOwnProperty(voto)) return; counts[voto]++; const panel = panelByVote[voto]; if (panel) { panel.appendChild(createCard(row, colorBy[voto])); } }); // counts en UI $$('[data-role="count"]').forEach(el => { const k = el.getAttribute("data-kind"); if (k && counts.hasOwnProperty(k)) el.textContent = String(counts[k]); }); // hemiciclo + summary renderHemiciclo("big", counts); renderHemiciclo("small", counts); renderSummary(counts); // filtros + ui populateFilters(data); wireUI(data); setLoaded(true); // recalcular heights en secciones abiertas $$('[data-role="section"]').forEach(sec => openPanel(sec, true)); } }); } catch (err) { console.error(err); const summary = byRole("summary"); if (summary) { summary.innerHTML = `

Error: ${escapeHtml(err.message || err)}

`; } } } init(); })();

Comentarios

Debes iniciar sesion o registrarte con una cuenta de lector para comentar.

Todavia no hay comentarios aprobados.