Commit 340e78c5 by Tu Nombre

v1 nueva general

1 parent 504c5ee1
########Complat ########Complat
carpetaDescargas = "/home/taller_5/Descargas/" carpetaDescargas = "/home/taller_5/Descargas/"
cabezaeraDescargas = "Planilla_Diaria-" cabezaeraDescargas = "Planilla_Diaria-"
grepfile = "/home/taller_5/Pruebas-RTO/grep.sh" grepfile = "/home/taller_5/Pruebas-RTO/grep.sh"
...@@ -7,3 +8,7 @@ delataPositivoNegativo = "-" ...@@ -7,3 +8,7 @@ delataPositivoNegativo = "-"
ManualLogin = False # PAra hacer pruebas sin tener que loguear ManualLogin = False # PAra hacer pruebas sin tener que loguear
port = 11500 port = 11500
codigo_cent = "61" codigo_cent = "61"
reporte_defecto = {
"2":"/home/administrador/repo_laika_hgt/uploads/Reporte\ MAHA\ Vertical105_V04.docx",
"3":"/home/administrador/repo_laika_hgt/uploads/CONPLAT\ liviano\ 2\ ejes\ CVA\ linea\ 1.docx"
}
...@@ -3,10 +3,11 @@ from flask import Flask, render_template, request, url_for, make_response, redir ...@@ -3,10 +3,11 @@ from flask import Flask, render_template, request, url_for, make_response, redir
from flask import send_from_directory, abort from flask import send_from_directory, abort
from iselenium import SeleniumInterface as SI from iselenium import SeleniumInterface as SI
import random, json, os, datetime, ingenieros,apollo, fosadiaria import random, json, os, datetime, ingenieros,apollo, fosadiaria
import configuracion import configuracion, time
from matematika import * from matematika import *
from titulos import * from titulos import *
import pruebas import pruebas
import reportes as Repo
class MyCustomException(Exception): class MyCustomException(Exception):
def __init__(self, message): def __init__(self, message):
...@@ -15,6 +16,8 @@ class MyCustomException(Exception): ...@@ -15,6 +16,8 @@ class MyCustomException(Exception):
ing = ingenieros.ingenieros() ing = ingenieros.ingenieros()
FozaDiaria = fosadiaria.FosaDiaria() FozaDiaria = fosadiaria.FosaDiaria()
PlanillasCentTMP = {}
app = Flask(__name__) app = Flask(__name__)
def create(): def create():
...@@ -65,6 +68,16 @@ def protected_static(filename): ...@@ -65,6 +68,16 @@ def protected_static(filename):
else: else:
return abort(403) return abort(403)
@app.route('/reporte_doc', methods = ['POST'])
def consulta_reporte():
linea = request.json['linea']
tipo = request.json['tipo']
ejes = request.json['cantidadEjes']
combustible = request.json['conbustible']
return json.dumps({"reporte":Repo.BuscarReporteDefecto(linea,tipo,ejes)})
@app.route('/historico') @app.route('/historico')
def historico(): def historico():
if "login" not in request.cookies: if "login" not in request.cookies:
...@@ -75,7 +88,6 @@ def historico(): ...@@ -75,7 +88,6 @@ def historico():
bypass = False bypass = False
) )
@app.route('/buscador') @app.route('/buscador')
def buscador(): def buscador():
if "login" not in request.cookies: if "login" not in request.cookies:
...@@ -99,6 +111,7 @@ def login(): ...@@ -99,6 +111,7 @@ def login():
print(user,pasw,pruebas.login) print(user,pasw,pruebas.login)
if pruebas.login[user] != pasw: if pruebas.login[user] != pasw:
raise MyCustomException("Ocurrió un error personalizado.") raise MyCustomException("Ocurrió un error personalizado.")
#
print("Login user desarrollo") print("Login user desarrollo")
response = make_response(redirect(url_for('historico'))) response = make_response(redirect(url_for('historico')))
#response = make_response('', 200) #response = make_response('', 200)
...@@ -113,6 +126,7 @@ def login(): ...@@ -113,6 +126,7 @@ def login():
except Exception as E: except Exception as E:
print(f"No se encontro usuariodesarrollo {E}") print(f"No se encontro usuariodesarrollo {E}")
try: try:
#raise()
s = SI(SI.Chrome) s = SI(SI.Chrome)
r = make_response( r = make_response(
json.dumps( json.dumps(
...@@ -205,8 +219,43 @@ def anomalies(): ...@@ -205,8 +219,43 @@ def anomalies():
anom['header']['patente'] = plate anom['header']['patente'] = plate
anom['header']['fecha'] = datetime.datetime.now().strftime("%d/%m/%Y") anom['header']['fecha'] = datetime.datetime.now().strftime("%d/%m/%Y")
anom['header']["hora"] = str(fingfd) anom['header']["hora"] = str(fingfd)
return render_template("anomalies.html", anomalies = anom) return render_template("anomalies.html", anomalies = anom)
@app.route('/planilla', methods = ['POST'])
def DevolverDatosTemporales():
planilla = {"error":True}
#######ALMASENO DATOS DE LA PLANILLA
try:
d = request.json
planilla = PlanillasCentTMP[d["planilla"]]
planilla["error"] = False
except Exception as E:
print(f"Error generando datos de planilla cent {E}")
return json.dumps(planilla)
@app.route('/report_static', methods = ['POST','GET'])
def ReporteEstatico():
planilla = "0"
estado = "OK"
if "login" not in request.cookies:
return redirect(url_for("login"))
if request.method == "GET":
return render_template(
"form.html"
)
#######ALMASENO DATOS DE LA PLANILLA
try:
d = request.json
planilla = d["numeroplanilla"]
PlanillasCentTMP[planilla] = d
#print(PlanillasCentTMP)
except Exception as E:
estado = str(E)
return json.dumps({"url":f"/report_static?planilla_cent={planilla}","estado":estado})
@app.route('/report', methods = ['POST']) @app.route('/report', methods = ['POST'])
def report(): def report():
if "login" not in request.cookies: if "login" not in request.cookies:
...@@ -230,8 +279,10 @@ def report(): ...@@ -230,8 +279,10 @@ def report():
answer['header']['patente'] = plate.upper() answer['header']['patente'] = plate.upper()
answer['header']["fecha-hora"] = apollo.estaticos.FechaHora() answer['header']["fecha-hora"] = apollo.estaticos.FechaHora()
#print(1,answer) answer['header']['CodigoTaller'] = configuracion.codigo_cent
print(answer)
answer['header']["ingeniero"] = ing.LeerDatosUsuario(request.cookies["login"])['nombreyapellido'] answer['header']["ingeniero"] = ing.LeerDatosUsuario(request.cookies["login"])['nombreyapellido']
#answer['header']["hora"] = apollo.estaticos.Hora() #answer['header']["hora"] = apollo.estaticos.Hora()
#print(2,answer) #print(2,answer)
...@@ -271,6 +322,9 @@ def report(): ...@@ -271,6 +322,9 @@ def report():
#print(answer) #print(answer)
answer['header']["hora"] = str(fingfd) answer['header']["hora"] = str(fingfd)
##########Datos de linea#############################################
gotolinea(s, answer)
##################Finalizo Scraping
s.driver.quit() s.driver.quit()
print("report",answer) print("report",answer)
return json.dumps(answer) return json.dumps(answer)
...@@ -297,6 +351,46 @@ def login(u, p, s): ...@@ -297,6 +351,46 @@ def login(u, p, s):
else: else:
raise Exception("Fallo del login") raise Exception("Fallo del login")
def gotolinea(driver_abs,answer):
driver = driver_abs.driver
element = driver.find_element_by_xpath('//*[@id="ui-id-5"]')
element.click()
time.sleep(1)
element2 = driver.find_element_by_xpath('//*[@id="f-cont"]/div[1]/span[2]/label')
text = element2.text
datos = text.split("-")
linea = datos[0].replace(" ","")
#Tipo tengo que armar un rabol objetto para procesarlo
administrativo = driver.find_element_by_xpath("""//*[@id="tabs"]/ul/li[6]/a[2]/span""")
#print("Administrativo",administrativo)
administrativo.click()
time.sleep(1)
categoria = driver_abs.find(SI.By.ID,"categoriaVehiculoId")
time.sleep(1)
cat = "N1"
conv = "Nafta"
#Este esta ffallando
try:
print(categoria.text)
except Exception as E:
print(E)
try:
CatVeh = categoria.find_element_by_css_selector("option[selected='selected']").get_attribute("text")
print(CatVeh)
cat = CatVeh
except Exception as E:
print(E)
element_1 = driver.find_element_by_xpath('//*[@id="ui-id-1"]')
element_1.click()
answer["header"]["linea_numero"] = linea
answer["header"]["vehiculo_tipo"] = cat
answer['header']["ReporteInspeccion"] = Repo.BuscarReporteDefecto(linea,cat)
def gototec(s, r): def gototec(s, r):
s.get("https://rto.cent.gov.ar/rto/RTO/listaDePlanillas") s.get("https://rto.cent.gov.ar/rto/RTO/listaDePlanillas")
......
...@@ -32,35 +32,79 @@ function CargarLista() { ...@@ -32,35 +32,79 @@ function CargarLista() {
}; };
// Function to create the list items // Function to create the list items
// Function to create the list items
function createHistoricoList(data) { function createHistoricoList(data) {
//console.log(data)
const historicoDiv = document.getElementById('div_historico'); const historicoDiv = document.getElementById('div_historico');
historicoDiv.innerHTML = "" ; historicoDiv.innerHTML = "" ;
//historicoDiv.innerText = "Dominios del dia"
data.inspecciones.forEach(inspeccion => { data.inspecciones.forEach(inspeccion => {
// Crear un campo oculto para almacenar el objeto data como JSON string
const hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden';
hiddenInput.id = inspeccion.numeroplanilla + 'data-json';
hiddenInput.value = JSON.stringify(inspeccion);
//historicoDiv.appendChild(hiddenInput);
const button = document.createElement('button'); const button = document.createElement('button');
button.className = 'PDFButton'; button.className = 'PDFButton';
button.id = inspeccion.name; button.id = inspeccion.numeroplanilla;
button.textContent = 'Ir dominio '; button.textContent = 'Ir dominio ';
button.addEventListener('click', () => {
handleButtonClick(inspeccion);
});
const div = document.createElement('div'); const div = document.createElement('div');
//div.textContent = inspeccion.name + " " + inspeccion.resultado + " " + inspeccion.fecha + " ";
const titulo = document.createElement('H4'); const titulo = document.createElement('H4');
titulo.textContent = inspeccion.name + " " + inspeccion.resultado ; titulo.textContent = inspeccion.name + " " + inspeccion.resultado;
const ftl = document.createElement('H6'); const ftl = document.createElement('H6');
ftl.textContent = "Linea " + inspeccion.linea + ", Planilla " + inspeccion.numeroplanilla + ", Categoria " + inspeccion.categoria; ftl.textContent = "Linea " + inspeccion.linea + ", Planilla " + inspeccion.numeroplanilla + ", Categoria " + inspeccion.categoria;
div.appendChild(titulo); div.appendChild(titulo);
div.appendChild(ftl); div.appendChild(ftl);
div.appendChild(button); var status = inspeccion.resultado;
const separador =document.createElement('hr') if (!(status === 'Anulado' || status === 'No Inspeccionado')) {
div.appendChild(button);
div.appendChild(hiddenInput);
};
const separador = document.createElement('hr');
separador.className = 'custom-hr'; separador.className = 'custom-hr';
historicoDiv.appendChild(div); historicoDiv.appendChild(div);
historicoDiv.appendChild(separador); historicoDiv.appendChild(separador);
}); });
} }
function handleButtonClick(inspeccion) {
// Aquí puedes definir lo que quieres que suceda cuando se haga clic en el botón
console.log('Botón clicado para:', inspeccion);
// Por ejemplo, podrías redirigir a una página basada en el dominio de inspección
// window.location.href = `http://ejemplo.com/dominio/${inspeccion.name}`;
fetch('/report_static', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(inspeccion)
})
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
// Asume que el servidor devuelve una URL para la página generada
window.location.href = data.url;
})
.catch(error => {
console.error('There has been a problem with your fetch operation:', error);
});
}
async function fetchChat() { async function fetchChat() {
......
// Función para obtener el valor de un parámetro de URL por nombre
function getParameterByName(name, url = window.location.href) {
name = name.replace(/[\[\]]/g, '\\$&');
const regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)');
const results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, ' '));
}
// Función que se ejecuta cuando la página se carga
window.onload = function() {
// Extrae el valor de planilla_cent de la URL
const planillaCentValue = getParameterByName('planilla_cent');
// Si el parámetro existe, se puede usar en otra función
if (planillaCentValue) {
console.log('Valor de planilla_cent:', planillaCentValue);
// Llama a otra función con el valor del parámetro
usePlanillaCentValue(planillaCentValue);
}
};
function isStatusActive(status) {
return status === 'Anulado' || status === 'No Inspeccionado';
}
// Ejemplo de una función que utiliza el valor del parámetro
function usePlanillaCentValue(planillaCentValue) {
// Aquí puedes implementar la lógica que desees con el valor
console.log('Usando el valor de planilla_cent:', planillaCentValue);
// Por ejemplo, podrías hacer una solicitud a un servidor, mostrar un mensaje, etc.
fetch('/planilla', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({planilla:planillaCentValue})
})
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
// Asume que el servidor devuelve una URL para la página generada
//window.location.href = data.url;
llendoTentativo(data)
})
.catch(error => {
console.log('There has been a problem with your fetch operation:', error);
});
}
function llendoTentativo(data) {
//console.log(data)
//const patenteField = document.querySelector('input[name="patente"]');
// Establece el valor del campo de entrada con data.name
//console.log(data)
const patenteFields = document.querySelectorAll('input[name="patente"]');
patenteFields.forEach(field => {
field.value = data.name;
});
if (isStatusActive(name.resultado)) {
return None
} else {
document.getElementById("report").style.display = "block";
document.getElementById("form").style.display = "none";
let linea = JSON.parse(data.json_cent);
let inspaccion = linea.rta
//console.log(inspaccion)
fillResults(inspaccion);
LLenarDatosAuxiliareas(data,inspaccion)
};
}
function LLenarDatosAuxiliareas(data,inspeccion) {
//console.log(data)
let linea = JSON.parse(data.linea_excel);
let conbustible = "Gas Oil";
console.log(inspeccion)
EscribirValores('input[name="fecha"]',formatDateToHuman(data.fecha));
EscribirValores('input[name="hora"]',linea.fin);
EscribirValores('input[name="ingeniero"]',inspeccion.header.ingeniero);
EscribirValores('input[name="linea_numero"]',data.linea);
EscribirValores('input[name="vehiculo_tipo"]',data.categoria);
EscribirValores('input[name="CodigoTaller"]',linea.codigoTaller);
EscribirValores('input[name="peso_estatico"]',inspeccion.frenos.pesoTotalFreno);
ControlEjesCantidad();
//const ejes = document.querySelectorAll('input[name="cantidad_ejes"]');
if (inspeccion.gaseshumos.opacidad_logaritmica === "?"){
if (inspeccion.gaseshumos.co === "?" && inspeccion.gaseshumos.hc === "?"){
conbustible = "";
}else{
conbustible = "Nafta";
};
};
EscribirValores('input[name="conbustible"]', conbustible);
ReporteTipo(conbustible,data.linea,data.categoria)
//const reporte = document.querySelectorAll('input[name="ReporteInspeccion"]');
}
function ControlEjesCantidad() {
const ect_3= document.getElementById('eficacia_freno_3');
const ect_4= document.getElementById('eficacia_freno_4');
const selectElement = document.getElementById('cantidad_ejes');
if (ect_3.value !== "?") {
selectElement.value = "3";
};
if (ect_4.value !== "?") {
selectElement.value = "4";
};
}
function ReporteTipo(conbustible,linea,categoria) {
let ejes = getSelectedEjes();
const consulta = {
linea:linea,
tipo:categoria,
cantidadEjes:ejes,
conbustible:conbustible
};
fetch('/reporte_doc', {
method: 'POST',
headers: {
'Accept': 'application/json',
"Content-Type": "application/json"
},
body: JSON.stringify(consulta)
})
.then(response => response.json())
.then(data => {
EscribirValores('input[name="ReporteInspeccion"]',data.reporte)
})
.catch(error => {
console.error('Error:', error);
})
}
function EscribirValores(query,valor) {
console.log(query + " " + valor)
const campo= document.querySelectorAll(query);
campo.forEach(field => {
field.value = valor;
});
}
// Función para obtener el valor seleccionado del select
function getSelectedEjes() {
// Selecciona el elemento select por su id
const selectElement = document.getElementById('cantidad_ejes');
// Obtiene el valor seleccionado
const selectedValue = selectElement.value;
// Retorna o utiliza el valor seleccionado
return selectedValue;
}
function fillResults(results) {
const r = document.getElementById("report")
const inputs = r.getElementsByTagName("input");
Array.from(inputs).forEach(input => {
if (input.name == "defecto") return;
const sub = input.getAttribute("sub");
const value = results[sub] && results[sub][input.name] !== undefined ? results[sub][input.name] : "?";
input.value = value;
});
}
function formatDateToHuman(dateString) {
// Dividir la fecha en año, mes y día
const [year, month, day] = dateString.split('-');
// Devolver la fecha en formato DD/MM/YYYY
return `${day}/${month}/${year}`;
}
...@@ -28,34 +28,77 @@ function CargarLista() { ...@@ -28,34 +28,77 @@ function CargarLista() {
// Function to create the list items // Function to create the list items
function createHistoricoList(data) { function createHistoricoList(data) {
//console.log(data)
const historicoDiv = document.getElementById('div_historico'); const historicoDiv = document.getElementById('div_historico');
historicoDiv.innerHTML = "" ; historicoDiv.innerHTML = "" ;
//historicoDiv.innerText = "Dominios del dia"
data.inspecciones.forEach(inspeccion => { data.inspecciones.forEach(inspeccion => {
// Crear un campo oculto para almacenar el objeto data como JSON string
const hiddenInput = document.createElement('input');
hiddenInput.type = 'hidden';
hiddenInput.id = inspeccion.numeroplanilla + 'data-json';
hiddenInput.value = JSON.stringify(inspeccion);
//historicoDiv.appendChild(hiddenInput);
const button = document.createElement('button'); const button = document.createElement('button');
button.className = 'PDFButton'; button.className = 'PDFButton';
button.id = inspeccion.name; button.id = inspeccion.numeroplanilla;
button.textContent = 'Ir dominio '; button.textContent = 'Ir dominio ';
button.addEventListener('click', () => {
handleButtonClick(inspeccion);
});
const div = document.createElement('div'); const div = document.createElement('div');
//div.textContent = inspeccion.name + " " + inspeccion.resultado + " " + inspeccion.fecha + " ";
const titulo = document.createElement('H4'); const titulo = document.createElement('H4');
titulo.textContent = inspeccion.name + " " + inspeccion.resultado ; titulo.textContent = inspeccion.name + " " + inspeccion.resultado;
const ftl = document.createElement('H6'); const ftl = document.createElement('H6');
ftl.textContent = "Linea " + inspeccion.linea + ", Planilla " + inspeccion.numeroplanilla + ", Categoria " + inspeccion.categoria; ftl.textContent = "Linea " + inspeccion.linea + ", Planilla " + inspeccion.numeroplanilla + ", Categoria " + inspeccion.categoria;
div.appendChild(titulo); div.appendChild(titulo);
div.appendChild(ftl); div.appendChild(ftl);
div.appendChild(button); var status = inspeccion.resultado;
const separador =document.createElement('hr') if (!(status === 'Anulado' || status === 'No Inspeccionado')) {
div.appendChild(button);
div.appendChild(hiddenInput);
};
const separador = document.createElement('hr');
separador.className = 'custom-hr'; separador.className = 'custom-hr';
historicoDiv.appendChild(div); historicoDiv.appendChild(div);
historicoDiv.appendChild(separador); historicoDiv.appendChild(separador);
}); });
} }
function handleButtonClick(inspeccion) {
// Aquí puedes definir lo que quieres que suceda cuando se haga clic en el botón
console.log('Botón clicado para:', inspeccion);
// Por ejemplo, podrías redirigir a una página basada en el dominio de inspección
// window.location.href = `http://ejemplo.com/dominio/${inspeccion.name}`;
fetch('/report_static', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(inspeccion)
})
.then(response => {
if (!response.ok) {
throw new Error('Network response was not ok');
}
return response.json();
})
.then(data => {
// Asume que el servidor devuelve una URL para la página generada
window.location.href = data.url;
})
.catch(error => {
console.error('There has been a problem with your fetch operation:', error);
});
}
const chatUrl = 'https://api.hgt.com.ar/poll/rto_61_update/dewfrfgbeolkgkteprlk,hptrlk,hqff'; const chatUrl = 'https://api.hgt.com.ar/poll/rto_61_update/dewfrfgbeolkgkteprlk,hptrlk,hqff';
let pendingRequests = 0; let pendingRequests = 0;
......
import json, configuracion
def BuscarReporteDefecto(linea,tipo,cantidadEjes=2):
linea = str(linea)
cantidadEjes = str(cantidadEjes)
tipo = str(tipo).upper()
with open("data/reportes.json", 'r') as f:
data = json.load(f)
try:
rta = data[linea][tipo][cantidadEjes]
except:
print(f"reporte defecto linea: {linea}, tipo: {tipo}, ejes {cantidadEjes}")
rta = configuracion.reporte_defecto[cantidadEjes]
if rta in ["",False]:
rta = configuracion.reporte_defecto[cantidadEjes]
#print(rta)
return rta
// script.js
function agregarCampoAObjeto(nombreCampo,reportCampo, objeto) {
var valor = document.getElementsByName(nombreCampo)[0].value;
if (valor !== '') {
objeto[reportCampo] = String(valor);
}else {
var valor = document.getElementById("defectovalor").value;
objeto[reportCampo] = valor;
}
}
function agregarCampoAObjetoID(nombreCampo,reportCampo, objeto) {
var valor = document.getElementById(nombreCampo);
if (valor) {
objeto[reportCampo] = String(valor.value);
}else {
var valor = document.getElementById("defectovalor").value;
objeto[reportCampo] = valor;
}
}
function Reportar (){
///ACA hay que determinar el template
const template = document.getElementById('ReporteInspeccion');
generarReporteTemplate(template.value)
}
function generarReporteTemplate (template) {
//REPORTE VIA CARBONE
var solicitud = {};
const patente = document.getElementById('patente_header');
message("Recuperando reporte "+ patente.value )
/////////////////////////ADAPTO_DATOS////////////////////////////
agregarCampoAObjeto('patente', 'dom',solicitud);
agregarCampoAObjeto('fecha', 'fec',solicitud);
agregarCampoAObjeto('hora', 'ora',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);
/////////////////////////SOLICITO REPORTE Y ABRO PDF/////////////
var datos = {
solicitud: solicitud,
template: template,
salida: patente.value +'_REPORT_HIST.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 => {
var pdfUrl = data.full_url;
openPdfInPopup(pdfUrl);
document.getElementById("message").click();
})
.catch(error => {
message('Error:'+ error);
});
}
function openPdfInPopup(url) {
// Especifica las características de la ventana emergente
const width = 800;
const height = 600;
const left = (screen.width - width) / 2;
const top = (screen.height - height) / 2;
// Abre la ventana emergente
window.open(url, '_blank', `width=${width},height=${height},top=${top},left=${left}`);
}
function message(msg) {
let m = document.getElementById("message");
m.style.display = "block";
m = document.getElementById("msg");
m.innerHTML = msg;
}
\ No newline at end of file \ No newline at end of file
2 Implementar carbone en test aunquesea
3 Analisi cambiar reporte al cambiar ejes
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
<label for="domain_input">Dominio:</label> <label for="domain_input">Dominio:</label>
<input type="text" id="domain_input" name="domain_input"> <input type="text" id="domain_input" name="domain_input">
</div> </div>
<button class="PDFButton" type="submit" id="id_boton_busqueda">Buscar</button> <button class="AdminButton" type="submit" id="id_boton_busqueda">Buscar</button>
</form> </form>
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<h3>Buscador</h3> <h3>Buscador</h3>
<button class="PDFButton" onclick= "location.href='/historico'"> <button class="AdminButton" onclick= "location.href='/historico'">
Historico Historico
</button> </button>
......
...@@ -7,10 +7,9 @@ ...@@ -7,10 +7,9 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js"></script>
<script src="{{ url_for('static', filename = 'src/ajax.js') }}"></script> <script src="{{ url_for('static', filename = 'src/ajax.js') }}"></script>
<script src="{{ url_for('static', filename = 'src/div.js') }}"></script> <script src="{{ url_for('static', filename = 'src/div.js') }}"></script>
<script src="{{ url_for('static', filename = 'src/pdf1.js') }}"></script> <script src="{{ url_for('static', filename = 'src/carbone.js') }}"></script>
<script src="{{ url_for('static', filename = 'src/pdf2.js') }}"></script>
<script src="{{ url_for('static', filename = 'src/pdf3.js') }}"></script>
<script src="{{ url_for('static', filename = 'src/forms.js') }}"></script> <script src="{{ url_for('static', filename = 'src/forms.js') }}"></script>
<script src="/protected_static/cargarapida.js"></script>
<link rel="stylesheet" href="{{ url_for('static', filename = 'styles/general.css') }}"> <link rel="stylesheet" href="{{ url_for('static', filename = 'styles/general.css') }}">
<!--INCLUIMOS LA FUENTE <!--INCLUIMOS LA FUENTE
<link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/cmu-typewriter" type="text/css" /> <link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/cmu-typewriter" type="text/css" />
...@@ -26,7 +25,7 @@ ...@@ -26,7 +25,7 @@
</div> </div>
<div class="DataCard"> <div class="DataCard">
<h1>Datos Generales</h1> <h1>Datos Generales</h1>
Patente <input sub="header" type="text" name="patente"> Patente <input sub="header" type="text" id="patente_header" name="patente">
<br> <br>
Fecha <input sub="header" type="text" name="fecha"> Fecha <input sub="header" type="text" name="fecha">
<br> <br>
...@@ -34,10 +33,21 @@ ...@@ -34,10 +33,21 @@
<br> <br>
Ingeniero <input sub="header" type="text" name="ingeniero"> Ingeniero <input sub="header" type="text" name="ingeniero">
<br> <br>
Linea <input sub="header" type="text" name="linea_numero">
<br>
Tipo <input sub="header" type="text" name="vehiculo_tipo">
<br>
Combustible <input sub="header" type="text" name="conbustible">
<br>
CodigoTaller <input sub="header" type="text" name="CodigoTaller" readonly="1">
<br>
Reporte <input sub="header" type="text" name="ReporteInspeccion" id="ReporteInspeccion" readonly="1">
<br>
Cantidad Ejes <select type="text" sub="alineador" id="cantidad_ejes" name="cantidad_ejes"> Cantidad Ejes <select type="text" sub="alineador" id="cantidad_ejes" name="cantidad_ejes">
<option value="2" selected>2</option> <option value="2" selected>2</option>
<option value="3">3</option> <option value="3">3</option>
<option value="4">4</option> <option value="4">4</option>
<option value="5">5</option>
</select> </select>
<br> <br>
Peso Total <input sub="trasero" type="text" name="peso_estatico" id="peso_estatico_general"> Peso Total <input sub="trasero" type="text" name="peso_estatico" id="peso_estatico_general">
...@@ -145,17 +155,7 @@ ...@@ -145,17 +155,7 @@
</div> </div>
<div class="PDFButtonContainerFixed"> <div class="PDFButtonContainerFixed">
<button class="PDFButton" onclick= <button class="PDFButton" onclick="Reportar()">Pdf Informe</button>
"window.open(
compile(
(new PDF2()).pdf( collectToConvert() ),
new jsPDF('portrait', 'pt', 'a4')
)
.output('bloburl')
)";
>
Pdf Informe
</button>
<img id="maha" src="{{ url_for('static', filename = 'assets/maha.png') }}" style="display: none;"> <img id="maha" src="{{ url_for('static', filename = 'assets/maha.png') }}" style="display: none;">
</div> </div>
...@@ -182,10 +182,11 @@ ...@@ -182,10 +182,11 @@
</div> </div>
--> -->
<div class="PDFButtonContainerFixed" style="bottom: 40%;"> <div class="PDFButtonContainerFixed" style="bottom: 40%;">
<button class="PDFButton" style="bottom: 40%; display: {% if bypass %} none {% else %} block {% endif %};" <a href="/historico">
onclick="location.reload()"> <button class="PeligroButton" style="bottom: 40%; display: {% if bypass %} none {% else %} block {% endif %};">
Volver Volver
</button> </button>
</a>
</div> </div>
</div> </div>
...@@ -196,24 +197,24 @@ ...@@ -196,24 +197,24 @@
<div id="form" class="DataCard" style="height: auto; display: {% if bypass %} none {% else %} block {% endif %};"> <div id="form" class="DataCard" style="height: auto; display: {% if bypass %} none {% else %} block {% endif %};">
<h1>Generación de PDF</h1> <h1>Generación de PDF</h1>
Patente <input required type="text" sub="header" name="patente"> Patente <input required type="text" sub="header" ide="patente" name="patente">
<br> <br>
<h1>Datos de Suspensión</h1> <h1>Datos de Suspensión</h1>
Rendimiento Izquierdo - Eje 1 <input type="number" step="any" sub="suspension" name="rendimiento_izquierdo_1"> Rend. Iz. - Eje 1 <input type="number" step="any" sub="suspension" name="rendimiento_izquierdo_1">
<br> <br>
Rendimiento Derecho - Eje 1 <input type="number" step="any" sub="suspension" name="rendimiento_derecho_1"> Rend. De. - Eje 1 <input type="number" step="any" sub="suspension" name="rendimiento_derecho_1">
<br> <br>
Rendimiento Izquierdo - Eje 2 <input type="number" step="any" sub="suspension" name="rendimiento_izquierdo_2"> Rend. Iz. - Eje 2 <input type="number" step="any" sub="suspension" name="rendimiento_izquierdo_2">
<br> <br>
Rendimiento Derecho - Eje 2 <input type="number" step="any" sub="suspension" name="rendimiento_derecho_2"> Rend. De. - Eje 2 <input type="number" step="any" sub="suspension" name="rendimiento_derecho_2">
<br> <br>
Por defecto: <input name="defecto" id="defectovalor" type="text" value="---"> Por defecto: <input name="defecto" id="defectovalor" type="text" value="---">
<div class="PDFButtonContainer"> <div class="PDFButtonContainer">
<button class="PDFButton" onclick="collectToSearch('anomalies')"> <button class="PeligroButton" onclick="collectToSearch('anomalies')">
Anomalías Anomalías
</button> </button>
...@@ -221,17 +222,17 @@ ...@@ -221,17 +222,17 @@
Ticket Fosa Ticket Fosa
</button> </button>
<button class="PDFButton" onclick= "location.href='/historico'"> <button class="AdminButton" onclick= "location.href='/historico'">
Historico Historico
</button> </button>
<button class="PDFButton" onclick= "location.href='/buscador'"> <button class="AdminButton" onclick= "location.href='/buscador'">
Buscador Buscador
</button> </button>
</div> </div>
<button class="PDFButton loginB" onclick= "location.href='/login'"> <button class="PeligroButton loginB" onclick= "location.href='/login'">
Login Cambiar Ingeniero
</button> </button>
</div> </div>
......
...@@ -33,12 +33,11 @@ ...@@ -33,12 +33,11 @@
</div> </div>
<div class="PDFButtonContainerFixed"> <div class="PDFButtonContainerFixed">
<h3>Dominios del dia</h3> <h3>Dominios del dia</h3>
<button class="PDFButton" onclick= "location.href='/buscador'"> <button class="AdminButton" onclick= "location.href='/buscador'">
Buscador Buscador
</button> </button>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!