Connect with us

POLITICA

El Gobierno busca llevar la interpelación a Adorni a comisión para demorar el debate en el Senado

Published

on


Con el objetivo de subsanar las distintas interpretaciones reglamentarias surgidas en torno a la interpelación del jefe de Gabinete, la senadora Patricia Bullrich, jefa del bloque de La Libertad Avanza, volverá a convocar este martes a una reunión de Labor Parlamentaria para revisar lo resuelto el jueves pasado. Para la Casa Rosada, una interpelación sin dictamen de comisión requiere el voto de los dos tercios del recinto para ser aprobada.

Los proyectos impulsados para interpelar al jefe de Gabinete, Manuel Adorni, no solo generaron cruces entre oficialismo y oposición, sino también un debate interno dentro de La Libertad Avanza. La discusión gira en torno a qué mayoría es necesaria para avanzar con esos pedidos: mientras Bullrich aceptó una interpretación sostenida por el peronismo en el Senado, los diputados libertarios se aferran a antecedentes de la Cámara baja, presidida por Martín Menem.

Advertisement

El debate en el Senado

El jueves pasado, la reunión de presidentes de bloque convocada por la vicepresidenta Victoria Villarruel resolvió postergar para el 25 de junio la sesión que buscaba aprobar la interpelación a Adorni. Esa decisión le otorgó un respiro al funcionario y fijó para el 2 de julio el tratamiento de los proyectos, la misma fecha en la que el propio jefe de Gabinete tiene previsto presentar su informe de gestión ante el Congreso.

Manuel Adorni, jefe de Gabinete, durante su presentación en Diputados el pasado 29 de abril. (Foto: Cámara de Diputados/Gustavo Molfino)

Según el acta firmada por los senadores y presentada luego a la prensa por Bullrich, el primer punto del temario será el debate de las mociones de interpelación al jefe de Gabinete en virtud del artículo 101 de la Constitución Nacional y del artículo 214 del Reglamento del Senado.

En esa instancia, la senadora libertaria aceptó los argumentos del bloque Justicialista que conduce José Mayans y acompañó la interpretación según la cual la aprobación de una interpelación —con eventual moción de censura incluida— requiere únicamente la mayoría absoluta de los miembros de la Cámara. En el Senado, eso equivale a 37 votos afirmativos.

Advertisement

Leé también: Qué pasará con Adorni en el Senado, cómo se armó la foto del Gabinete en Rosario y la encuesta que preocupa en la Rosada

Quienes sostienen esta postura argumentan que el artículo 101 de la Constitución, que contempla la figura de la “moción de censura”, es operativo por sí mismo. En consecuencia, consideran que no necesita pasar previamente por comisiones ni reunir una mayoría agravada para habilitar su tratamiento, sino que puede votarse directamente en el recinto y aprobarse con mayoría absoluta.

Esa interpretación generó malestar tanto en la Cámara de Diputados como en sectores de la Casa Rosada, que presionaron a Bullrich para que revierta lo acordado en Labor Parlamentaria.

Advertisement

Por ese motivo, la senadora convocará a una nueva reunión, pese a la negativa de Mayans, aunque con el respaldo de los bloques dialoguistas, la UCR, el PRO y fuerzas provinciales. La propuesta del oficialismo es girar los proyectos a la Comisión de Asuntos Constitucionales, presidida por el libertario Agustín Coto, para que allí sean debatidos antes de llegar al recinto.

En La Libertad Avanza estiman que ese proceso demoraría la discusión hasta la segunda quincena de julio, lo que permitiría ganar tiempo en favor del funcionario cuestionado.

La repercusión en Diputados

Maximiliano Ferraro, diputado nacional de la Coalición Cívica. (Foto: Télam)
Maximiliano Ferraro, diputado nacional de la Coalición Cívica. (Foto: Télam)

Mientras tanto, la oposición en la Cámara baja convocó a una sesión especial para este martes a las 14 con el objetivo de tratar los proyectos de interpelación a Adorni. Sin embargo, la resolución adoptada en el Senado abrió un nuevo debate sobre la posibilidad de aprobar esos pedidos directamente en el recinto, sin necesidad de que pasen previamente por las comisiones de Asuntos Constitucionales y de Peticiones, Poderes y Reglamento, presididas por los libertarios Nicolás Mayoraz y Giselle Castelnuovo.

El pedido de sesión fue impulsado por Unión por la Patria, el Frente de Izquierda, la Coalición Cívica, algunos integrantes de Provincias Unidas y los monobloques de Marcela Pagano y Natalia de la Sota.

Advertisement

Los bloques dialoguistas todavía no definieron una postura común. El PRO mantendrá este lunes una reunión encabezada por Cristian Ritondo, mientras que el sector radical que responde a Pamela Verasay decidió no asistir a la sesión del martes, aunque tampoco acompañará la convocatoria oficialista del miércoles para debatir proyectos de gestión.

“No somos destituyentes y por eso no acompañamos a la oposición dura, pero tampoco somos funcionales al Gobierno que define la situación de Adorni”, resumió un radical del interior.

El espejo del Senado

El diputado de la Coalición Cívica Maximiliano Ferraro tomó como referencia la interpretación adoptada en el Senado y sostuvo que “debemos abrir el recinto, reunir a 129 diputados y votar su interpelación con moción de censura y obligar a que Adorni venga al recinto a dar explicaciones sobre su patrimonio, que hasta hoy no ha podido justificar frente a millones de argentinos. No hace falta ni comisiones ni dictámenes, hay que reunir el quorum y votar la interpelación”.

Advertisement
Nicolás Mayoraz, diputado nacional de La Libertad Avanza. (Foto: Diputados)
Nicolás Mayoraz, diputado nacional de La Libertad Avanza. (Foto: Diputados)

Desde el oficialismo, Nicolás Mayoraz rechazó esa posición y recordó que el artículo 101 de la Constitución “fija la mayoría necesaria para aprobar una interpelación o una moción de censura al jefe de Gabinete. Pero de ninguna manera elimina los requisitos para tratar un asunto en el recinto que fija el Reglamento de la HCDN”.

Leé también: La trastienda de la reunión entre Milei y Adorni que definió a Ravier como vocero y cómo será la primera conferencia de prensa

Mayoraz citó además los antecedentes de 2025, cuando la Cámara de Diputados debatió las interpelaciones al entonces jefe de Gabinete, Guillermo Francos, y a los ministros Luis Caputo y Karina Milei.

“Para habilitar las interpelaciones se exigieron los 2/3 de votos, y al no alcanzarlos, solo se obtuvo el emplazamiento de las comisiones para dictaminar. El tema es clarísimo y la interpretación de la doctrina no deja dudas al sostener que los asuntos sin dictamen deben ser habilitados mediante una votación sobre tablas, que requiere dos tercios según el Reglamento”, sostuvo.

Advertisement

El legislador libertario fue aún más duro al responderle a Ferraro: “Sostener que ‘No hace falta ni comisiones ni dictámenes, hay que reunir el quorum y votar la interpelación’ es hacerle decir a la Constitución lo que no dice. El diputado confunde la habilitación del tratamiento del asunto con la votación de la interpelación propiamente dicha. Una de dos, o perdió la memoria o perdió la cordura”.

Por su parte, la diputada cordobesa Natalia de la Sota adelantó que estará presente en el Congreso este martes para impulsar la remoción de Adorni y reclamó el acompañamiento de los legisladores de Córdoba alineados con el gobernador Martín Llaryora, quienes firmaron el pedido de sesión especial.

“El asunto es suficientemente grave y serio como para que algunos cambien de posición o se hagan los desentendidos. La sociedad merece claridad y coherencia”, afirmó.

Advertisement

Manuel Adorni, Senado, Diputados

POLITICA

Flávio Bolsonaro se sumó al conflicto entre Milei y Lula: la respuesta del mandatario argentino

Published

on


Flávio Bolsonaro, el senador por Río de Janeiro y candidato presidencial de la oposición en Brasil, se metió este jueves en el conflicto entre Javier Milei y Lula da Silva y acusó al Gobierno de su rival de “fabricar una crisis” con los otros países de la región.

A través de un comunicado publicado en X bajo la firma del “futuro presidente de Brasil”, Bolsonaro repudió “con vehemencia” la decisión de Lula de bajar el nivel de la representación diplomática con la Argentina, a la que definió como “nación hermana, nuestro mayor socio comercial en América del Sur y amiga histórica del pueblo brasileño”.

Advertisement

En su descargo, el legislador del Partido Liberal sostuvo que la ruptura con Buenos Aires “no es un hecho inevitable”, sino “el resultado directo de una política exterior ideologizada y confrontativa” que, según su acusación, generó tensiones con tres países de la región en pocos meses: Estados Unidos, Paraguay y ahora la Argentina. En esa línea, afirmó: “Ningún gobierno de la historia reciente logró aislar tanto a Brasil en tan poco tiempo”.

El senador también cuestionó el uso político del discurso oficial sobre la “defensa de la dignidad nacional”, al que calificó de instrumento de propaganda, y fue más allá: “La soberanía y el prestigio de Brasil no se protegen con bravatas electoralistas ni rupturas diplomáticas. Se protegen con una economía fuerte, capacidad de negociación y una política exterior comprometida con los intereses permanentes de la Nación”. Además remarcó que la escalada fue unilateral, dado que el Gobierno argentino ya había señalado que no tomaría represalias frente a la decisión de Brasilia.

Flávio Bolsonaro repudió la decisión del Gobierno de Lula da Silva de degradar la relación diplomática con Argentina tras los dichos de Javier Milei. (Foto: REUTERS/Jean Carniel)

El mensaje de Bolsonaro, el principal rival de Lula en los próximos comicios de octubre, vinculó la crisis con la Argentina al desgaste regional de la izquierda y fue tajante: “El proyecto del Foro de San Pablo está colapsando en América Latina. Los regímenes que apadrinó (…) trajeron miseria, éxodo y violencia a sus pueblos, y ahora caen uno a uno”.

Advertisement

A su vez, el hijo del expresidente brasileño también apuntó contra el costo económico de la crisis y aseguró que sus consecuencias no las pagará el Gobierno que la generó: “Lo pagarán el productor rural, el industrial, el exportador y el trabajador brasileño, que dependen de estas relaciones para producir, vender y emplear, y que no participaron de las decisiones políticas que provocaron esta crisis”.

Un mensaje directo a Javier Milei

Bolsonaro cerró su comunicado con una promesa de campaña: “A partir de 2027, volveremos a tratar a nuestros vecinos como socios, no como adversarios ideológicos, y reconstruiremos los puentes con la Argentina, Paraguay, Estados Unidos y todas las naciones libres del continente”. Y dedicó las últimas líneas a Milei, a quien llamó “mi estimado amigo”: “Esta crisis no es entre nuestras naciones, es obra de un gobierno en su etapa final. Habrá paz y prosperidad para nuestros pueblos”.

El Presidente argentino no tardó en reaccionar y reposteó el comunicado de Bolsonaro en su cuenta de X, acompañado por las banderas de la Argentina y Brasil, un gesto que profundiza el acercamiento entre el mandatario libertario y la oposición brasileña.

Advertisement

Leé también: En plena crisis con el gobierno de Lula, diputados de La Libertad Avanza recibirán a referentes de Bolsonaro en un foro político

La tensión bilateral escaló el martes, cuando Brasil resolvió no reenviar a su embajador, Julio Bitelli, a Buenos Aires y bajó el nivel de la relación diplomática a encargado de negocios tras las reiteradas descalificaciones de Milei contra Lula, a quien llegó a calificar de “corrupto” y “ladrón”.

Flavio Bolsonaro, Javier Milei, Lula Da Silva

Advertisement
Continue Reading

POLITICA

Caso fentanilo: los chats reveladores que complicaron a las jefas de la Anmat y las alusiones a Mario Lugones

Published

on



La exjefa de la Administración Nacional de Medicamentos, Alimentos y Tecnología (Anmat) Nélida Agustina Bisio y la exdirectora del Instituto de Medicamentos Gabriela Mantecón Fumadó están presas desde anteayer, acusadas de haber sido parte de una maniobra de contaminación de fentanilo que provocó al menos 90 muertes. Declararon ayer, durante horas, ante el juez Ernesto Kreplak y la fiscal Laura Roteta, que ahora analizan esas indagatorias para avanzar con el caso.

Las dos funcionarias eran de carrera. Bisio fue la jefa del máximo organismo de control de alimentos y medicamentos desde que asumió Javier Milei hasta el 5 de enero de 2026, cuando esta causa penal llevaba ya más de siete meses. Mantecón Fumadó fue removida de su cargo el 21 de agosto de 2025. Ella contestó ayer decenas de preguntas de los investigadores y dijo que Mario Lugones, ministro de Salud, era informado de las decisiones que se tomaban sobre el laboratorio Ramallo y HLB (productora y comercializadora del fentanilo contaminado) porque todo lo importante se lo reportaban a él. Declaró que el ministro había promovido el cierre del laboratorio, según informaron fuentes que conocieron el contenido de su indagatoria.

Advertisement

Uno de los chats descubiertos se relaciona con esta declaración. “Solo en dos palabras decime si esto da para cierre porque Mario pregunta”, le dijo Bisio a Mantecón. Es un chat del 26 de marzo de 2025. Pero según declaró Mantecón, Lugones seguía el tema desde tiempo antes.

Mensajes entre las autoridades de la Anmat Agustina Bisio y Gabriela Mantecón Fumadó que aluden a que «Mario» estaba preguntando por el laboratorio Ramallo. Para los investigadores es Mario Lugones, el ministro de Salud

El dictamen de Roteta, fiscal del caso, y de Sergio Rodríguez, el responsable de la Procuraduría de Investigaciones Administrativas, les imputa a Visio y Mantecón Fumadó un delito muy grave, que reprime el envenenamiento o adulteración de medicamentos con una pena de entre 10 y 25 años cuando resultare muerta alguna persona.

Expedientes administrativos en poder de la Justicia y los chats obtenidos de los teléfonos secuestrados determinaron a los fiscales a avanzar contra Bisio y Mantecón Fumadó con una sospecha clara: que ellas les dieron “cobertura estatal” a laboratorios que no cumplían con los estándares mínimos para funcionar pese a que sabían que estaban en riesgo las vidas de decenas de pacientes. El resultado fue la mayor tragedia sanitaria investigada en la historia de la justicia argentina.

Advertisement
Una empleada de García Furfaro cuenta que Bisio y Mantecón Fumadó se mostraron «re bien predispuestas» con ellos en una reunión. Las inspectoras de Anmat ya habían advertido sobre los peligros de la producción de Ramallo

Antes de que el fentanilo contaminado saliera del laboratorio Ramallo (la primera partida fue entregada el 30 de enero de 2025), las funcionarias habían recibido un informe de dos inspectoras de la Anmat que revisaron el lugar entre noviembre y diciembre de 2024, detectaron serias irregularidades y les recomendaron a sus jefas, el 3 de enero, que prohibieran toda la producción de ese laboratorio y ordenaran retirar del mercado drogas elaboradas allí.

Pasó más de un mes hasta que Bisio y Mantecón Fumadó tomaron medidas. ¿Qué pasó en ese lapso? La Justicia detectó que el 14 de enero de 2025, las dos funcionarias se reunieron con Ariel García Furfaro (para los investigadores, está probado que los García son los dueños en las sombras de los laboratorios Ramallo y HLB, “en rigor, un mismo laboratorio”) y otras dos personas de la empresa y les ofrecieron no avanzar contra ellos, a cambio de que presentaran un “plan de acción”. Un día después, el 15 de enero, hubo una nueva reunión de los empresarios con Mantecón Fumadó. De acuerdo con las pruebas de la causa, en ese encuentro ella recibió el plan de acción y les dijo a las autoridades de HLB que las iba a ayudar a “conseguir por otro lado” rótulos y prospectos que la empresa no estaba pudiendo obtener.

Según los chats descubiertos, las autoridades de la Anmat informaron que tenían un informe que recomendaba prohibir la producción, pero que no iban a hacerlo. “Re bien predispuestas ambas, las dos”, dice un mensaje de “Victoria” (García), que había participado de la reunión del 14 de enero en “Av de Mayo”, la sede de la Anmat, celebrando la actitud de las funcionarias a cargo de controlarlos.

Advertisement

Finalmente, el 10 de febrero, Bisio y Mantecón Fumadó firmaron la “carta de advertencia” que prohibió toda la producción de Ramallo y la publicaron el 24 de febrero. Ese mismo día, Mantecón Fumadó avanzó con la orden de retiro del mercado de las drogas. Recién entonces se enteraron los hospitales y sanatorios de que algo no estaba bien. Ya era tarde. La primera venta de fentanilo contaminado había sido el 30 de enero y la primera colocación de la droga que provocó una muerte, el 8 de febrero.

Consulta al ministro

Consultada ayer sobre por qué habían demorado tanto en firmar la carta que frenó la producción de Ramallo, Mantecón Fumadó declaró que, en los primeros días de enero, cuando recibió el resultado de la inspección, ella lo remitió a Bisio quien, a su vez, también lo elevó. Según Mantecón Fumadó, su jefa supuestamente lo consultó con el ministro Lugones, que le respondió -siempre según dijo Mantecón que le dijo Bisio- que avanzaran, pero con cautela. Mantecón uso este argumento para justificar la reunión de enero con los dueños del laboratorio.

Advertisement
Mensajes del 31 de marzo de 2025 entre Bisio y Mantecón Fumadó

De acuerdo con el dictamen de la fiscalía, las demoras de las autoridades continuaron incluso después de haber frenado la producción de Ramallo porque no frenaron la comercialización y circulación de las drogas. Desde el 24 de febrero, distintas droguerías y hospitales se comunicaron con el Iname preguntando si podían usar los lotes del laboratorio Ramallo. En un chat en poder de la Justicia, una técnica del organismo le pregunta a su jefa, Mantecón Fumadó, qué debían responder.

Ella le dice que había que ver si estaban identificados los lotes que no se podían comercializar y la técnica le contestó que eran “todos” los elaborados en el laboratorio Ramallo. “Es un montón de guita que está en la calle”, se lamentó entonces la jefa del Iname.

Para la fiscalía, en este chat resulta “evidente que la preocupación de Mantecón Fumado en este caso no fue proteger la salud de la sociedad, sino evitar posibles pérdidas económicas que pudieran sufrir las empresas de los hermanos García”. Sobre todo, porque la técnica le advirtió luego: “Es peligroso. Una persona que reporte evento adverso o se muera es nuestra responsabilidad. No podemos demorar la respuesta”. Y su jefa le respondió: “Sí, lo sé”.

Advertisement
Una técnica le advierte a Mantecón Fumadó sobre los riesgos mortales de la producción de Ramallo y ella le responde que ya lo sabe, pero que hay «un montón de guita» en juego

El 2 de mayo, todo empezó a salir a la luz, según la reconstrucción hecha en el expediente. El Hospital Italiano de La Plata informó a la Anmat que en abril habían tenido un brote de Klebsiella Pneumoniae MLB y Ralstonia Picketti. El 6 de mayo reportó las primeras muertes y todo indicaba que no había existido un contagio intrahospitalario porque los pacientes no habían compartido habitaciones ni médicos. La jefa de farmacia del hospital detectó que a nueve personas fallecidas se les había aplicado fentanilo. El proveniente del laboratorio HLB dio positivo de esas bacterias.

El 11 de mayo, la Anmat prohibió el uso de las drogas de ese lote de fentanilo y ordenó finalmente su recupero. El 12 de mayo, realizó la denuncia penal que dio origen a esta causa. Para entonces, los muertos por el fentanilo contaminado en distintos hospitales y sanatorios del país eran ya 63, cifra que se elevaría a 90 en las semanas siguientes. Murieron desde una beba de 7 meses hasta un hombre de 90. En Rosario fallecieron 36 personas; en Santa Fe, 20; en La Plata, 18; en Córdoba, seis; en Formosa, cinco; en Río Cuarto, dos; también dos en la ciudad de Buenos Aires y uno en Bahía Blanca. Hay además 46 heridos de gravedad.

Viejas señales

Advertisement

Las señales de alerta estaban a la vista desde hacía años. Entre noviembre y diciembre de 2024 se hicieron las inspecciones en Ramallo, pero de acuerdo con la causa judicial, las advertencias sobre las malas prácticas de este grupo empresario, que produjo el fentanilo contaminado, databan de al menos 2023. Ese año, un organismo del Iname dijo, sobre el laboratorio HLB, que implicaba un riesgo sanitario para la población y solicitó la realización de una inspección al laboratorio que -según el dictamen de los fiscales- nunca se llevó a cabo.

En cuanto al laboratorio Ramallo -que producía exclusivamente para HLB- recién el 28 de noviembre de 2024 comenzó la inspección. Un día antes, se le dio aviso a la empresa. En la investigación no está claro aún si ese aviso correspondía. Sus directivos apuraron entonces un operativo de limpieza y emprolijamiento de la situación que quedó registrado en los grupos de WhatsApp de los empleados y directivos del laboratorio. Incluyó desde indicarles a los empleados que no podían comer en el lugar hasta una orden para que se llevaran “los residuos peligrosos a un pallet a la salida del transfer a depósito”. Sin embargo, eso no alcanzó porque, así y todo, las inspectoras detectaron, y dejaron asentadas ya entonces por escrito, las malas condiciones en las que funcionaba el laboratorio.




presas desde anteayer,Declararon ayer,Ariel García Furfaro,operativo de limpieza y emprolijamiento,Paz Rodríguez Niell,Fentanilo Mortal,Conforme a

Advertisement
Continue Reading

POLITICA

Uno por uno, qué senadores votaron a favor y cuáles en contra de la Ley de Propiedad Privada

Published

on



Uno por uno, así votaron los senadores el proyecto de inviolabilidad de la propiedad privada

Advertisement

Advertisement


${status}

`;
}

Advertisement

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 = » + (item.url_foto || «»);
img.addEventListener(«error», () => {
img.style.opacity = «0.35»;
}, {
once: true
});

Advertisement

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();

Advertisement

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;
}

Advertisement

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
};

Advertisement

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);

Advertisement

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];

Advertisement

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);

Advertisement

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;

Advertisement

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);
});

Advertisement

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
};

Advertisement

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));

Advertisement

// 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);
});
}

Advertisement

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 = `

Advertisement

Error: falta data-csv-url

`;
return;
}

try {
const Papa = await ensurePapa();

Advertisement

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
};

Advertisement

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]);
});

Advertisement

// hemiciclo + summary
renderHemiciclo(«big», counts);
renderHemiciclo(«small», counts);
renderSummary(counts);

// filtros + ui
populateFilters(data);
wireUI(data);

setLoaded(true);

Advertisement

// 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)}

Advertisement

`;
}
}
}

init();
})();

Advertisement
Continue Reading

Tendencias

Copyright © 2026 NDM - Noticias del Momento | #Noticias #Chimentos #Política #Fútbol #Economía #Sociedad