Commit 340e78c5 by Tu Nombre

v1 nueva general

1 parent 504c5ee1
########Complat
carpetaDescargas = "/home/taller_5/Descargas/"
cabezaeraDescargas = "Planilla_Diaria-"
grepfile = "/home/taller_5/Pruebas-RTO/grep.sh"
......@@ -7,3 +8,7 @@ delataPositivoNegativo = "-"
ManualLogin = False # PAra hacer pruebas sin tener que loguear
port = 11500
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
from flask import send_from_directory, abort
from iselenium import SeleniumInterface as SI
import random, json, os, datetime, ingenieros,apollo, fosadiaria
import configuracion
import configuracion, time
from matematika import *
from titulos import *
import pruebas
import reportes as Repo
class MyCustomException(Exception):
def __init__(self, message):
......@@ -15,6 +16,8 @@ class MyCustomException(Exception):
ing = ingenieros.ingenieros()
FozaDiaria = fosadiaria.FosaDiaria()
PlanillasCentTMP = {}
app = Flask(__name__)
def create():
......@@ -65,6 +68,16 @@ def protected_static(filename):
else:
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')
def historico():
if "login" not in request.cookies:
......@@ -75,7 +88,6 @@ def historico():
bypass = False
)
@app.route('/buscador')
def buscador():
if "login" not in request.cookies:
......@@ -99,6 +111,7 @@ def login():
print(user,pasw,pruebas.login)
if pruebas.login[user] != pasw:
raise MyCustomException("Ocurrió un error personalizado.")
#
print("Login user desarrollo")
response = make_response(redirect(url_for('historico')))
#response = make_response('', 200)
......@@ -113,6 +126,7 @@ def login():
except Exception as E:
print(f"No se encontro usuariodesarrollo {E}")
try:
#raise()
s = SI(SI.Chrome)
r = make_response(
json.dumps(
......@@ -205,8 +219,43 @@ def anomalies():
anom['header']['patente'] = plate
anom['header']['fecha'] = datetime.datetime.now().strftime("%d/%m/%Y")
anom['header']["hora"] = str(fingfd)
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'])
def report():
if "login" not in request.cookies:
......@@ -230,8 +279,10 @@ def report():
answer['header']['patente'] = plate.upper()
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']["hora"] = apollo.estaticos.Hora()
#print(2,answer)
......@@ -271,6 +322,9 @@ def report():
#print(answer)
answer['header']["hora"] = str(fingfd)
##########Datos de linea#############################################
gotolinea(s, answer)
##################Finalizo Scraping
s.driver.quit()
print("report",answer)
return json.dumps(answer)
......@@ -297,6 +351,46 @@ def login(u, p, s):
else:
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):
s.get("https://rto.cent.gov.ar/rto/RTO/listaDePlanillas")
......
......@@ -32,35 +32,79 @@ function CargarLista() {
};
// Function to create the list items
// Function to create the list items
function createHistoricoList(data) {
//console.log(data)
const historicoDiv = document.getElementById('div_historico');
historicoDiv.innerHTML = "" ;
//historicoDiv.innerText = "Dominios del dia"
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');
button.className = 'PDFButton';
button.id = inspeccion.name;
button.id = inspeccion.numeroplanilla;
button.textContent = 'Ir dominio ';
button.addEventListener('click', () => {
handleButtonClick(inspeccion);
});
const div = document.createElement('div');
//div.textContent = inspeccion.name + " " + inspeccion.resultado + " " + inspeccion.fecha + " ";
const titulo = document.createElement('H4');
titulo.textContent = inspeccion.name + " " + inspeccion.resultado ;
titulo.textContent = inspeccion.name + " " + inspeccion.resultado;
const ftl = document.createElement('H6');
ftl.textContent = "Linea " + inspeccion.linea + ", Planilla " + inspeccion.numeroplanilla + ", Categoria " + inspeccion.categoria;
div.appendChild(titulo);
div.appendChild(ftl);
var status = inspeccion.resultado;
if (!(status === 'Anulado' || status === 'No Inspeccionado')) {
div.appendChild(button);
const separador =document.createElement('hr')
div.appendChild(hiddenInput);
};
const separador = document.createElement('hr');
separador.className = 'custom-hr';
historicoDiv.appendChild(div);
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() {
......
// 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() {
// Function to create the list items
function createHistoricoList(data) {
//console.log(data)
const historicoDiv = document.getElementById('div_historico');
historicoDiv.innerHTML = "" ;
//historicoDiv.innerText = "Dominios del dia"
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');
button.className = 'PDFButton';
button.id = inspeccion.name;
button.id = inspeccion.numeroplanilla;
button.textContent = 'Ir dominio ';
button.addEventListener('click', () => {
handleButtonClick(inspeccion);
});
const div = document.createElement('div');
//div.textContent = inspeccion.name + " " + inspeccion.resultado + " " + inspeccion.fecha + " ";
const titulo = document.createElement('H4');
titulo.textContent = inspeccion.name + " " + inspeccion.resultado ;
titulo.textContent = inspeccion.name + " " + inspeccion.resultado;
const ftl = document.createElement('H6');
ftl.textContent = "Linea " + inspeccion.linea + ", Planilla " + inspeccion.numeroplanilla + ", Categoria " + inspeccion.categoria;
div.appendChild(titulo);
div.appendChild(ftl);
var status = inspeccion.resultado;
if (!(status === 'Anulado' || status === 'No Inspeccionado')) {
div.appendChild(button);
const separador =document.createElement('hr')
div.appendChild(hiddenInput);
};
const separador = document.createElement('hr');
separador.className = 'custom-hr';
historicoDiv.appendChild(div);
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';
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
2 Implementar carbone en test aunquesea
3 Analisi cambiar reporte al cambiar ejes
......@@ -39,7 +39,7 @@
<label for="domain_input">Dominio:</label>
<input type="text" id="domain_input" name="domain_input">
</div>
<button class="PDFButton" type="submit" id="id_boton_busqueda">Buscar</button>
<button class="AdminButton" type="submit" id="id_boton_busqueda">Buscar</button>
</form>
......@@ -58,7 +58,7 @@
<h3>Buscador</h3>
<button class="PDFButton" onclick= "location.href='/historico'">
<button class="AdminButton" onclick= "location.href='/historico'">
Historico
</button>
......
......@@ -7,10 +7,9 @@
<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/div.js') }}"></script>
<script src="{{ url_for('static', filename = 'src/pdf1.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/carbone.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') }}">
<!--INCLUIMOS LA FUENTE
<link rel="stylesheet" media="screen" href="https://fontlibrary.org/face/cmu-typewriter" type="text/css" />
......@@ -26,7 +25,7 @@
</div>
<div class="DataCard">
<h1>Datos Generales</h1>
Patente <input sub="header" type="text" name="patente">
Patente <input sub="header" type="text" id="patente_header" name="patente">
<br>
Fecha <input sub="header" type="text" name="fecha">
<br>
......@@ -34,10 +33,21 @@
<br>
Ingeniero <input sub="header" type="text" name="ingeniero">
<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">
<option value="2" selected>2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
<br>
Peso Total <input sub="trasero" type="text" name="peso_estatico" id="peso_estatico_general">
......@@ -145,17 +155,7 @@
</div>
<div class="PDFButtonContainerFixed">
<button class="PDFButton" onclick=
"window.open(
compile(
(new PDF2()).pdf( collectToConvert() ),
new jsPDF('portrait', 'pt', 'a4')
)
.output('bloburl')
)";
>
Pdf Informe
</button>
<button class="PDFButton" onclick="Reportar()">Pdf Informe</button>
<img id="maha" src="{{ url_for('static', filename = 'assets/maha.png') }}" style="display: none;">
</div>
......@@ -182,10 +182,11 @@
</div>
-->
<div class="PDFButtonContainerFixed" style="bottom: 40%;">
<button class="PDFButton" style="bottom: 40%; display: {% if bypass %} none {% else %} block {% endif %};"
onclick="location.reload()">
<a href="/historico">
<button class="PeligroButton" style="bottom: 40%; display: {% if bypass %} none {% else %} block {% endif %};">
Volver
</button>
</a>
</div>
</div>
......@@ -196,24 +197,24 @@
<div id="form" class="DataCard" style="height: auto; display: {% if bypass %} none {% else %} block {% endif %};">
<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>
<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>
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>
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>
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>
Por defecto: <input name="defecto" id="defectovalor" type="text" value="---">
<div class="PDFButtonContainer">
<button class="PDFButton" onclick="collectToSearch('anomalies')">
<button class="PeligroButton" onclick="collectToSearch('anomalies')">
Anomalías
</button>
......@@ -221,17 +222,17 @@
Ticket Fosa
</button>
<button class="PDFButton" onclick= "location.href='/historico'">
<button class="AdminButton" onclick= "location.href='/historico'">
Historico
</button>
<button class="PDFButton" onclick= "location.href='/buscador'">
<button class="AdminButton" onclick= "location.href='/buscador'">
Buscador
</button>
</div>
<button class="PDFButton loginB" onclick= "location.href='/login'">
Login
<button class="PeligroButton loginB" onclick= "location.href='/login'">
Cambiar Ingeniero
</button>
</div>
......
......@@ -33,12 +33,11 @@
</div>
<div class="PDFButtonContainerFixed">
<h3>Dominios del dia</h3>
<button class="PDFButton" onclick= "location.href='/buscador'">
<button class="AdminButton" onclick= "location.href='/buscador'">
Buscador
</button>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!