report.js 10.6 KB
// script.js
function agregarCampoAObjeto(nombreCampo,reportCampo, objeto) {
    try {
        var valor = document.getElementsByName(nombreCampo)[0].value;
        if (valor !== '') {
            objeto[reportCampo] = String(valor).replace(".",",");;
        }else {
            var valor = document.getElementById("defectovalor").value;
            objeto[reportCampo] = valor;
        }
        } catch (error) {
            console.log(error);
            // Expected output: ReferenceError: nonExistentFunction is not defined
            // (Note: the exact output may be browser-dependent)
        }
}

function agregarCampoAObjetoID(nombreCampo,reportCampo, objeto) {
    var valor = document.getElementById(nombreCampo).value;
    if (valor !== '') {
        objeto[reportCampo] = String(valor).replace(".",",");;
    }
}

function agregaNullAObjeto(reportCampo, objeto) {
    objeto[reportCampo] = "---";
}

var solicitud = {
    prueba:"prueba"
};

var ListenerEje1 = ["fuerza_izquierda_1","fuerza_derecha_1",
    "resistencia_izquierda_1","resistencia_derecha_1",
    "peso_freno_estatico_1","fuerza_izquierda_2","fuerza_derecha_2",
    "resistencia_izquierda_2","resistencia_derecha_2",
    "peso_freno_estatico_2","fuerza_izquierda_3","fuerza_derecha_3",
    "resistencia_izquierda_3","resistencia_derecha_3",
    "peso_freno_estatico_3","fuerza_izquierda_4","fuerza_derecha_4",
    "resistencia_izquierda_4","resistencia_derecha_4",
    "peso_freno_estatico_4","peso_estatico_general"];
for (var i = 0; i < ListenerEje1.length; i++) {
    agregaCampoAListenerEje1(ListenerEje1[i]);
}

var ListenerFrenoMano = ["fuerza_izquierda_freno_mano","fuerza_derecha_freno_mano","peso_estatico_freno_mano"];
for (var i = 0; i < ListenerFrenoMano.length; i++) {
    agregaCampoAListenerFrenoMano(ListenerFrenoMano[i]);
}

var peso_genral_campo = document.getElementById("peso_estatico_general");
peso_genral_campo.addEventListener('input', propagarCampoPeso);

var cantidad_ejes = document.getElementById("cantidad_ejes");
cantidad_ejes.addEventListener('input', propagarCantidadEjes);

function propagarCantidadEjes() {
    let ejes = cantidad_ejes.value;
    let campos = ["eje_freno_est"]
    for (var i = 0; i < campos.length; i++) {
        document.getElementById(campos[i]).value = ejes;
    }
    console.log("Cambiando num ejes")
}

function propagarCampoPeso() {
    let peso = peso_genral_campo.value;
    let campos = ["peso_freno_estatico_1","peso_freno_estatico_4","peso_freno_estatico_3",
    "peso_freno_estatico_4","peso_estatico_1","peso_estatico_2","peso_estatico_freno_mano",
    "peso_freno_estatico_2"]
    for (var i = 0; i < campos.length; i++) {
        document.getElementById(campos[i]).value = peso;
    }
    console.log("Agregando peso")
}

function agregaCampoAListenerFrenoMano(reportCampo) {
    try {
        var numero1Input = document.getElementById(reportCampo);
        numero1Input.addEventListener('input', calcularResultadoFrenoMamo);
    } catch (error) {
        console.log(error);
        // Expected output: ReferenceError: nonExistentFunction is not defined
        // (Note: the exact output may be browser-dependent)
    }
}

function agregaCampoAListenerEje1(reportCampo) {
    try {
        var numero1Input = document.getElementById(reportCampo);
        numero1Input.addEventListener('input', calcularResultado);
    } catch (error) {
        console.log(error);
        // Expected output: ReferenceError: nonExistentFunction is not defined
        // (Note: the exact output may be browser-dependent)
    }
}

function calcularDiferenciaPorcentaje(numeroBase, numeroNuevo) {
    // Calcular la diferencia absoluta
    let diferenciaAbsoluta = Math.abs(numeroBase - numeroNuevo);
    
    // Calcular el porcentaje de cambio
    let porcentajeCambio = (diferenciaAbsoluta / Math.abs(numeroBase)) * 100;

    return porcentajeCambio.toFixed(2);
}

//Calculos campos Generales
var CamposLanzanCalculoGeneral = [ListenerFrenoMano,ListenerEje1];

for (var i = 0; i < CamposLanzanCalculoGeneral.length; i++) {
    let agr = CamposLanzanCalculoGeneral[i];
    for (var j = 0; j < agr.length; j++) {
        let bgr = agr[j];
        //console.log(bgr);
    }

}

function calcularResultadoFrenoMamo() {
    var numero1Input = document.getElementById("fuerza_izquierda_freno_mano");
    var numero2Input = document.getElementById("fuerza_derecha_freno_mano");
    var diferencia_freno_1 = document.getElementById("diferencia_freno_mano");
    var eficacia_freno_1 = document.getElementById("eficacia_freno_mano");
    var peso = document.getElementById("peso_estatico_freno_mano");

    // Obtener los valores de los campos de entrada
    const numero1 = parseFloat(numero1Input.value);
    const numero2 = parseFloat(numero2Input.value);
    const pesoFloat = parseFloat(peso.value);

    
    // Realizar el cálculo deseado (en este caso, suma)
    //const resultado2 = numero1 - numero2;
    var efc = (1000000 * (numero1 + numero2)) / (pesoFloat * 9.81);

    
    // Actualizar el campo de salida con el resultado
    diferencia_freno_1.value = calcularDiferenciaPorcentaje(numero1,numero2);
    //eficacia_freno_1.value = resultado2.toFixed(2);
    eficacia_freno_1.value = efc.toFixed(2);
}

// Función para calcular el resultado y actualizar el campo de salida
function calcularResultado() {
    calcularResultadoSub("1");
    calcularResultadoSub("2");
    calcularResultadoSub("3");
    calcularResultadoSub("4");
}
function calcularResultadoSub(num) {
    var numero1Input = document.getElementById("fuerza_izquierda_"+num).value.replace(",",".");
    var numero2Input = document.getElementById("fuerza_derecha_"+num).value.replace(",",".");
    var diferencia_freno_1 = document.getElementById("diferencia_freno_"+num)
    var eficacia_freno_1 = document.getElementById("eficacia_freno_"+num)
    var peso = document.getElementById("peso_freno_estatico_1").value.replace(",",".");

    //console.log(numero1Input)
    //console.log(numero2Input)
    //console.log(peso)

    // Obtener los valores de los campos de entrada
    const numero1 = parseFloat(numero1Input);
    const numero2 = parseFloat(numero2Input);
    const pesoFloat = parseFloat(peso);
    //console.log(numero1)
    //console.log(numero2)
    //console.log(pesoFloat)

    
    // Realizar el cálculo deseado (en este caso, suma)
    //const resultado2 = numero1 - numero2;
    var efc = (100000 * (numero1 + numero2)) / (pesoFloat * 9.81);

    
    // Actualizar el campo de salida con el resultado
    diferencia_freno_1.value = String(calcularDiferenciaPorcentaje(numero1,numero2)).replace(".",",");
    //eficacia_freno_1.value = resultado2.toFixed(2);
    eficacia_freno_1.value = String(efc.toFixed(0)).replace(".",",");
}
//EficaCIA GENERAL SUMA FRENO DE SERVICIO NO PROMEDIO

//EL PESO TOTAL ES LA SUMA DE LOS EJES

document.getElementById('boton_pdf_maha_reporte2').addEventListener('click',reporteLinea1);
document.getElementById('boton_pdf_maha_reporte').addEventListener('click',reporteLinea2);

function reporteLinea1() {
    generarReporteTemplate('/home/administrador/repo_laika_hgt/uploads/Reporte MAHA Vertical105_V02.docx')
}

function reporteLinea2() {
    generarReporteTemplate('/home/administrador/repo_laika_hgt/uploads/Reporte_MAHA_V04.docx')
}

function generarReporteTemplate (template) {
    //REPORTE VIA CARBONE
    
    var solicitud = {
        prueba:"prueba"
    };

    var strings = ["b","c","d","f","g","h","i",//Alineador al pasdo
        "fs7","ff7","fe7","fs8","ff8","fe8",//Obalidad
        "fsp1","fsp2","ffp1","ffp2","fep1","fep2",//P1 y P2
        ];
    for (var i = 0; i < strings.length; i++) {
        agregaNullAObjeto(strings[i],solicitud);
    }


    agregarCampoAObjeto('patente','dominio',solicitud);
    agregarCampoAObjeto('fecha','fecha',solicitud);
    agregarCampoAObjeto('hora','hora',solicitud);
    agregarCampoAObjeto('cantidad_ejes','ejes',solicitud);
    agregarCampoAObjeto('eje_delantero','ed',solicitud);
    agregarCampoAObjeto('eje_trazero','et',solicitud);
    //Suspencion
    //eje Delantera
    agregarCampoAObjeto('rendimiento_izquierdo_1','DiE',solicitud);
    agregarCampoAObjeto('rendimiento_derecho_1','DdE',solicitud);
    agregarCampoAObjeto('peso_estatico_1','DP',solicitud);
    //Falta Valores absolutos
    //eje Trazeros
    agregarCampoAObjeto('rendimiento_izquierdo_2','TiD',solicitud);
    agregarCampoAObjeto('rendimiento_derecho_2','TdE',solicitud);
    agregarCampoAObjeto('peso_estatico_2','TP',solicitud);
    //Falta Valores absolutos
    //Frenometro
    //Eje Delantero
    agregarCampoAObjeto('fuerza_izquierda_1','fs3',solicitud);
    agregarCampoAObjeto('fuerza_derecha_1','fs4',solicitud);
    agregarCampoAObjeto('diferencia_freno_1','fs6',solicitud);
    agregarCampoAObjeto('eficacia_freno_1','fs9',solicitud);
    agregarCampoAObjetoID('peso_freno_estatico_1','fs0',solicitud);
    agregarCampoAObjetoID('resistencia_derecha_1','fs2',solicitud);
    agregarCampoAObjetoID('resistencia_izquierda_1','fs1',solicitud);
    //Fr. Estacionam.

    //Eje Trasero
    agregarCampoAObjeto('fuerza_izquierda_2','g',solicitud);
    agregarCampoAObjeto('fuerza_derecha_2','j',solicitud);
    agregarCampoAObjeto('ovalidad_izquierda_2','n',solicitud);
    agregarCampoAObjeto('ovalidad_derecha_2','s',solicitud);

    agregarCampoAObjetoID('peso_freno_estatico_1','p_e',solicitud);
    //Estacionamiento

    //let listaNumeros = [10, 5, 20, 15, 30];
    //let numeroMaximo = Math.max(...listaNumeros);
    //agregarCampoAObjetoID('eficacia_freno_mano','sf3',solicitud);
    //agregarCampoAObjetoID('diferencia_freno_mano','sf1',solicitud);
    //agregarCampoAObjetoID('diferencia_freno_mano','sf2',solicitud);

    //Resultados Finales
    //freno servicio
    agregarCampoAObjetoID('rf_servicio_fuerza_max','sf1',solicitud);
    agregarCampoAObjetoID('rf_servicio_fuerza_diferencia','sf2',solicitud);
    agregarCampoAObjetoID('rf_servicio_eficacia_estatica','sf3',solicitud);
    //freno estacionamiento
    agregarCampoAObjetoID('rf_estacionamiento_fuerza_max','ef1',solicitud);
    agregarCampoAObjetoID('rf_estacionamiento_fuerza_diferencia','ef2',solicitud);
    agregarCampoAObjetoID('rf_estacionamiento_eficacia_estatica','ef3',solicitud);

    var datos = {
        solicitud: solicitud,
        template: template, 
        salida: 'test_maha_2.pdf', 
        'convert_pdf': true
    };
    //console.log(datos);

    fetch('https://reporte.hgt.com.ar/consulta/carbone', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(datos)
    })
    .then(response => response.json())
    .then(data => {
        //console.log(data);
        var pdfUrl = data.full_url;
        window.open(pdfUrl);
    })
    .catch(error => {
        console.error('Error:', error);
    });
}