//fetch de las listas regionales fetch( "https://especiales.larepublica.pe/lista-de-candidatos-elecciones-regionales-2022-quienes-son-y-cuales-son-sus-propuestas-de-los-proximos-gobernadores/listas-regional.json" ) .then((response) => response.json()) .then((res) => { const { data } = res; //Crear los options para el select de regiones const selectRegions = document.getElementById("selectRegions"); const regiones = data.map((item) => item.txRegion); const regionesUnicas = [...new Set(regiones)].sort(); regionesUnicas.forEach((region) => { const option = document.createElement("option"); option.value = region; option.text = region; selectRegions.appendChild(option); }); selectRegions.onchange = function () { setOrganizations(); candidate__container.style.display = "none"; }; //Crear los options para el select de partidos const selectOrganizations = document.getElementById("selectOrganizations"); const setOrganizations = () => { const regionSelected = selectRegions.value; const organizaciones = data .filter((item) => item.txRegion === regionSelected) .map((item) => item.txOrganizacionPolitica); const organizacionesUnicas = [...new Set(organizaciones)].sort(); selectOrganizations.innerHTML = ``; organizacionesUnicas.forEach((organizacion) => { const option = document.createElement("option"); option.value = organizacion; option.text = organizacion; selectOrganizations.appendChild(option); }); }; // Hacer que el contenedor de candidato se muestre si candidate__container existe let candidate__container = null; selectOrganizations.onchange = function () { const interval = setInterval(() => { if (candidate__container) { candidate__container.scrollIntoView({ behavior: "smooth", }); clearInterval(interval); } else { candidate__container = document.getElementById( "candidate__container" ); } }, 500); getTxCodExpedienteExt(); getTxRutaCompleto(); }; //Recuperar plan de gobierno const getTxRutaCompleto = () => { const regionSelected = selectRegions.value; const organizacionSelected = selectOrganizations.value; const plan = data .filter( (item) => item.txRegion === regionSelected && item.txOrganizacionPolitica === organizacionSelected ) .map((item) => item.txRutaCompleto); const planSiteHTML = document.getElementById("plan__site"); planSiteHTML.innerHTML = `
`; }; //Recuperar el txCodExpedienteExt const getTxCodExpedienteExt = () => { const regionSelected = selectRegions.value; const organizacionSelected = selectOrganizations.value; const txCodExpedienteExt = data .filter( (item) => item.txRegion === regionSelected && item.txOrganizacionPolitica === organizacionSelected ) .map((item) => item.txCodExpedienteExt); organizacionSelected && getSelectedList(txCodExpedienteExt[0]); }; }) .catch((err) => { console.log(err); }); /* fetch a la lista seleccionada y pintado de data */ const getSelectedList = (txCodExpedienteExt) => { fetch( `https://apiplataformaelectoral3.jne.gob.pe/api/v1/plan-gobierno/candidatos?IdProcesoElectoral=113&TxCodExpedienteExt=${txCodExpedienteExt}` ) .then((response) => response.json()) .then((res) => { const { data } = res; const candidate__container = document.getElementById( "candidate__container" ); candidate__container.style.display = "block"; const { cargo, feNacimiento, idHojaVida, nombreCompleto, numeroDocumento, organizacionPolitica, postulaDepartamento, rutaArchivo, } = data[0]; const nombreCompletoHTML = document.getElementById("nombreCompleto"); const numeroDocumentoHTML = document.getElementById("numeroDocumento"); const cargoHTML = document.getElementById("cargo"); const organizacionPoliticaHTML = document.getElementById( "organizacionPolitica" ); const postulaDepartamentoHTML = document.getElementById( "postulaDepartamento" ); const rutaArchivoHTML = document.getElementById("rutaArchivo"); const feNacimientoHTML = document.getElementById("feNacimiento"); restartTables(); nombreCompletoHTML.innerHTML = nombreCompleto; numeroDocumentoHTML.innerHTML = `DNI: ${numeroDocumento}`; cargoHTML.innerHTML = cargo[0]; organizacionPoliticaHTML.innerHTML = organizacionPolitica; postulaDepartamentoHTML.innerHTML = postulaDepartamento; rutaArchivoHTML.innerHTML = ``; feNacimientoHTML.innerHTML = `${getEdad(feNacimiento)} años`; /* pintar lista que acompaña al candidato */ const listaHTML = document.getElementById("lista"); const listaContent = data .filter((item) => item.idHojaVida != idHojaVida) .map((item) => { return `DNI: ${item.numeroDocumento}
${item.cargo[0]}
${item.feNacimiento.substring(0, 10)}
Cargando...
"; cargoPartidarioHTML.innerHTML = "Cargando...
"; cargoEleccionHTML.innerHTML = "Cargando...
"; sentenciaPenalHTML.innerHTML = "Cargando...
"; investigacionesHTML.innerHTML = "Cargando...
"; }; const getHojaVida = (idHojaVida) => { fetch( `https://apiplataformaelectoral8.jne.gob.pe/api/v1/candidato/hoja-vida?IdHojaVida=${idHojaVida}` ) .then((response) => response.json()) .then((res) => { const { formacionAcademica, trayectoria, sentenciaPenal } = res; /* pintar la data de formación académica */ const { educacionTecnico, educacionNoUniversitaria, educacionUniversitaria, educacionPosgrado, educacionPosgradoOtro, } = formacionAcademica; const educacionSuperiorHTML = document.getElementById("educacionSuperior"); const educacionTecnicoHTML = educacionTecnico.map((item) => { return `${item.cenEstudioTecnico}
${item.carreraTecnico}
${item.universidad}
${item.carreraUni}
${item.concluidoEduUni}
${item.egresadoEduUni}
${item.txCenEstudioPosgrado}
${item.txEspecialidadPosgrado}
${item.concluidoPosgrado}
${ item.egresadoPosgrado == null ? "NO" : item.egresadoPosgrado }
Educación Técnica
CENTRO DE ESTUDIOS
CARRERA
Educación Universitaria
CENTRO DE ESTUDIOS
CARRERA
CONCLUIDOS
EGRESADOS
Posgrado
CENTRO DE ESTUDIOS
ESPECIALIDAD
CONCLUIDOS
EGRESADOS
No registra
`); /* pintar la data del trayectoria */ const { cargoEleccion, cargoPartidario } = trayectoria; const cargoEleccionHTML = document.getElementById("cargoEleccion"); const cargoPartidarioHTML = document.getElementById("cargoPartidario"); const cargoEleccionContent = cargoEleccion.map((item) => { return `${item.cargoEleccion}
${item.orgPolCargoElec}
${item.anioCargoElecDesde}
${item.anioCargoElecHasta}
${item.cargoPartidario}
${item.orgPolCargoPartidario}
${item.anioCargoPartiDesde}
${item.anioCargoPartiHasta}
CARGO
ORGANIZACIÓN
DESDE
HASTA
No registra
`); cargoPartidarioContent.length ? (cargoPartidarioHTML.innerHTML = `CARGO
ORGANIZACIÓN
DESDE
HASTA
No registra
`); /* pintar data de las sentencias */ const sentenciaPenalHTML = document.getElementById("sentenciaPenal"); const sentenciaPenalContent = sentenciaPenal.map((item) => { return `${item.txDelitoPenal}
${item.feSentenciaPenal}
${item.txOrganoJudiPenal}
DELITO
FECHA
ÓRGANO JUDICIAL
No registra
`); }); }; /* pintar data de las investigaciones por corrupción */ const getInvesCor = (name) => { let parseName = ""; let nameElements = name.split(" "); fetch( "https://especiales.larepublica.pe/lista-de-candidatos-elecciones-regionales-2022-quienes-son-y-cuales-son-sus-propuestas-de-los-proximos-gobernadores/delitos.json" ) .then((response) => response.json()) .then((data) => { if (nameElements.length === 3) { parseName = `${nameElements[1]} ${nameElements[2]} ${nameElements[0]}`; } else if (nameElements.length === 4) { parseName = `${nameElements[2]} ${nameElements[3]} ${nameElements[0]} ${nameElements[1]}`; } const investigacionesHTML = document.getElementById("invesCor"); const investigaciones = data .filter((item) => item.INCULPADO === parseName) .map((item) => { return `${item.DELITO_PRINCIPAL}
${item.AGRAVIADO_PRINCIPAL}
${item.ETAPA_PROCESAL}
${item.CARP_EXP}
${item.FISCALIA_JUZGADO_SALA}
DELITO
AGRAVIADO
ETAPA PROCESAL
EXPEDIENTE
FISCALIA
No registra
`); }); }; const getEdad = (dateString) => { let hoy = new Date(); let fechaNacimiento = new Date(dateString); let edad = hoy.getFullYear() - fechaNacimiento.getFullYear(); let diferenciaMeses = hoy.getMonth() - fechaNacimiento.getMonth(); if ( diferenciaMeses < 0 || (diferenciaMeses === 0 && hoy.getDate() < fechaNacimiento.getDate()) ) { edad--; } return edad; };