Testimonio: Tte. Jonathan Roa Jara


Publicado el:

Categoria:


Nombre: Jonathan Alexis Roa Jara

Cargo /Rol: Teniente de Carabineros de Chile

Fecha: 11/02/2026

Testimonio:

Soy el Teniente de Carabineros, Jonathan Roa Jara. El año 2022, injustamente fui acusado de homicidio, por un procedimiento donde hice uso de un arma de fuego. Procedimiento donde no hubo ningún fallecido.

En ese momento no sabía qué hacer y a quién acudir, y gracias a recomendaciones, conocí a don Héctor Casanova Oyarzún, de quien destaco su profesionalismo, ética y su compromiso con el proceso desde el día uno. Por lo tanto, puedo decirle, desde mi propia experiencia, que recomiendo la labor profesional que lleva don Héctor Casanova.


Publicado el:

Categoria:


`); ventana.document.close(); ventana.onload = function() { ventana.focus(); ventana.print(); }; }function seccionImpresion(item, data, forzar) { // Verificar si hay al menos un campo con datos (no renderizar si todo está vacío) const tieneData = item.campos.some(c => c.tipo !== 'imagen' && val(data, c.key)); if (!tieneData && !forzar) return '';let html = '
'; html += '
' + item.numero + '. ' + item.titulo.toUpperCase() + '
'; html += '
';item.campos.forEach(campo => { if (campo.tipo === 'imagen') { // Imagen no disponible aún return; } const v = val(data, campo.key); if (!v) return;if (campo.tipo === 'texto') { if (campo.label) html += '
' + esc(campo.label) + '
'; html += '
' + esc(v) + '
'; } else { html += '
'; html += '' + esc(campo.label) + ''; html += '' + esc(v) + ''; html += '
'; } });html += '
'; return html; }// ------------------------------------------------------- // HELPERS // ------------------------------------------------------- function val(data, key) { const v = data[key]; return (v !== null && v !== undefined && v !== '' && v !== 'null') ? String(v).trim() : ''; } function esc(str) { return String(str) .replace(/&/g,'&') .replace(//g,'>') .replace(/"/g,'"'); } function dato(label, valor) { return '
' + label + ':' + esc(valor) + '
'; }})();// ===================================================================== // FUNCIONES GLOBALES: Imprimir Consulta dimensional // ===================================================================== (function() {// --- Abrir modal acceso restringido --- window.icMostrarAccesoRestringido = function() { const m = document.getElementById('modal-ic-restringido'); m.style.display = 'flex'; document.body.style.overflow = 'hidden'; }; window.icCerrarRestringido = function() { document.getElementById('modal-ic-restringido').style.display = 'none'; document.body.style.removeProperty('overflow'); };// --- Disparar el flujo de impresión de consulta --- window.icImprimirConsulta = function() { // Reutiliza el mismo modal de encabezado que la ficha técnica window.mftAbrirEncabezadoConsulta(); };window.mftAbrirEncabezadoConsulta = function() { // Marcar modo consulta antes de abrir el modal compartido document.getElementById('modal-encabezado-impresion').dataset.modo = 'consulta'; window.mftAbrirEncabezado(); };// Exponer generador como global para que meiConfirmar (en el primer IIFE) lo invoque window._icGenerarImpresionConsulta = function(enc) { const cotas = window._icCotasIngresadas || []; const tipo = window._icTipoConsulta || 'Metálica';// Leer filas de candidatos desde el DOM const filas = []; document.querySelectorAll('.contenedor-resultados-balisticos table tr:not(:first-child)').forEach(tr => { const celdas = tr.querySelectorAll('td'); if (celdas.length < 7) return;// Reconstruir badges con color desde el DOM const badgesHTML = Array.from(celdas[4].querySelectorAll('span')).map(s => { const texto = s.textContent.trim(); const bg = s.style.backgroundColor || ''; const esVerde = bg === 'rgb(46, 204, 113)'; const esAmarillo = bg === 'rgb(241, 196, 15)'; const color = esVerde ? '#27ae60' : (esAmarillo ? '#b7950b' : '#c0392b'); const bgImp = esVerde ? '#d5f5e3' : (esAmarillo ? '#fef9e7' : '#fadbd8'); const border = esVerde ? '#27ae60' : (esAmarillo ? '#f1c40f' : '#c0392b'); return ''+texto+''; }).join(' ');filas.push({ candidato : celdas[0].textContent.trim(), tipo : celdas[1].textContent.trim(), percusion : celdas[2].textContent.trim(), formaVaina : celdas[3].textContent.trim(), parametrosHTML: badgesHTML || celdas[4].textContent.trim(), coincidencias: celdas[5].textContent.trim(), concordancia : celdas[6].textContent.trim(), }); });const LOGO_URL = 'https://peritobalistico.com/wp-content/uploads/2026/04/MODULO-IC.png';function esc(s) { return String(s||'') .replace(/&/g,'&').replace(//g,'>').replace(/"/g,'"'); } function dato(label, valor) { return '
'+label+':'+esc(valor)+'
'; }let html = '
';// --- Encabezado 3 columnas (idéntico a ficha técnica) --- html += '
'; html += '
Logo
'; html += '
'; html += '
'+esc(enc.anexo)+'
'; html += '
Reporte de Consulta Dimensional — Buscador Balístico Especializado
'; html += '
'; html += '
'; if (enc.institucion) html += dato('Institución', enc.institucion); if (enc.laboratorio) html += dato('Laboratorio', enc.laboratorio); if (enc.informe) html += dato('Inf. Pericial', enc.informe); html += dato('Perito', enc.perito); if (enc.fecha) html += dato('Fecha', enc.fecha); html += '
'; html += '
'; // fin encabezado// --- Sección 1: Cotas ingresadas --- html += '
'; html += '
1. Parámetros de la Consulta — Cartuchería '+esc(tipo)+'
'; html += '
'; if (cotas.length === 0) { html += '
No se registraron cotas ingresadas.
'; } else { cotas.forEach(c => { html += '
'; html += 'Cota '+esc(c.codigo)+''; html += ''+esc(c.valor)+' mm'; html += '
'; }); } html += '
';// --- Sección 2: Candidatos --- html += '
'; html += '
2. Reporte de Candidatos
'; html += '
'; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; [['CANDIDATO','col-candidato'],['TIPO','col-tipo'],['PERCUSIÓN','col-percusion'], ['FORMA DE VAINA','col-forma'],['PARÁMETROS','col-parametros'], ['COINCIDENCIAS','col-coincid'],['CONCORDANCIA','col-concordan']] .forEach(([h,c]) => { html += ''; }); html += '';filas.forEach((f) => { const pct = parseFloat(f.concordancia) || 0; const colorPct = (pct === 100) ? '#27ae60' : (pct >= 50 ? '#d4ac0d' : '#c0392b'); // Convertir badges inline a clases CSS para mejor impresión const badgesClase = f.parametrosHTML.replace( /background:[^;]+;color:([^;]+);font-weight:700;font-size:8pt;padding:[^;]+;border-radius:[^;]+;margin:[^;]+;border:[^"]+/g, (m, color) => color.includes('27ae60') ? 'class="badge-verde"' : 'class="badge-rojo"' ).replace(/ style="[^"]*class=/g, ' ').replace(/style="[^"]*"/g, (m) => m.includes('27ae60') ? 'class="badge-verde"' : 'class="badge-rojo"' ); html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; }); html += '
'+h+'
'+esc(f.candidato)+''+esc(f.tipo)+''+esc(f.percusion)+''+esc(f.formaVaina)+''+f.parametrosHTML+''+esc(f.coincidencias)+''+esc(f.concordancia)+'
';// --- Pie de página --- const ahora = new Date(); const ts = ahora.toLocaleDateString('es-PY',{day:'2-digit',month:'2-digit',year:'numeric'}) + ' ' + ahora.toLocaleTimeString('es-PY',{hour:'2-digit',minute:'2-digit'}); html += ''; html += '
'; // fin imp-pagina// Abrir ventana de impresión const ventana = window.open('', '_blank', 'width=960,height=720'); if (!ventana || ventana.closed) { alert('Tu navegador bloqueó la ventana de impresión.\nPor favor, permití las ventanas emergentes para peritobalistico.com e intentá nuevamente.'); return; } ventana.document.write(`Consulta Dimensional — ${esc(enc.anexo)}${html}`); ventana.document.close(); ventana.onload = function() { ventana.focus(); ventana.print(); }; }})();