def cmg(): """ Función que lleva a cmg.html o inicio.html según si hay sesión abierta o no. """ # SI hay 'user' en sesión: if session.get("user"): # Creando todos objetos formularios necesarios: traer = formularios.Traer() bajar = formularios.Local() # Si se presionó el botón de buscar resultados: if traer.validate_on_submit() and traer.submit.data: # Obteniendo palabra desde un IntegerField del formulario (si hay datos): if traer.buscar.data: cmg.cantidad = traer.buscar.data # Creando objeto consulta y obteniendo resultados: consulta = consultas.Consultas(ARC_CSV, ERROR) cmg.resultados, cmg.columnas = consulta.listar_los_mas_x( cmg.cantidad, "CLIENTE", "PRECIO") return render_template("cmg.html", traer_cmg=traer, bajar=bajar, resultados=cmg.resultados, columnas=cmg.columnas) # Si se presionó el botón de guardar resultados: elif bajar.validate_on_submit() and bajar.submit.data: # Si no hubo problemas se descargan los resultados en un CSV: import datetime as dt fecha = dt.datetime.now().strftime("%d/%m/%Y - %H:%M:%S") titulo = "[Consulta: Clientes que más gastaron] [Usuario: {}] [Fecha: {}]".format( session["user"], fecha) exportar = guardar.Exportar(RUTA + TEMP) exp_ok = exportar.local(cmg.resultados, titulo) # Si se pudo crear CSV: if exp_ok: session["nombre"] = exportar.nombre_completo() session["ruta"] = exportar.ruta return redirect(url_for("descargar")) # Caso contrario, se muestra mensaje de error: else: error = "Hubo un problema al intentar crear el archivo CSV." return render_template("cmg.html", error=error, traer_cmg=traer) # Si NO se envia aún ninguna búsqueda: else: return render_template("cmg.html", traer_cmg=traer) # Si NO hay 'user' en sesión: else: return redirect(url_for("inicio"))
def usuario(): """ Función que lleva a usuario.html o inicio.html según condición. """ # SI hay 'user' en sesión: if session.get("user"): # Creando objeto consulta: consulta = consultas.Consultas(ARC_CSV, ERROR) # Chequeando que validación del CSV haya sido correcta: if consulta.csv.ok: # Borrando variable de error, si aún estaba fijada: session.pop("error_csv", None) CANTIDAD = 5 resultados, nro_filas = consulta.ultimos_resultados(CANTIDAD) return render_template("usuario.html", usuario=True, resultados=resultados, nro_filas=nro_filas, cantidad=CANTIDAD) # En caso de que el CSV no se haya validado correctamente: else: session["error_csv"] = True error = "Surgieron errores durante la validación del CSV" return render_template("usuario.html", usuario=True, error=error, mensajes_error=consulta.csv.mensajes_error) # Si NO hay 'user' en sesión: else: return redirect(url_for("inicio"))
def cxp(): """ Función que lleva a cxp.html o inicio.html según determinadas condiciones. """ # SI hay 'user' en sesión: if session.get("user"): # Creando todos objetos formularios necesarios: busqueda = formularios.Busqueda() bajar = formularios.Local() # Creando objeto consulta y obteniendo sugerencias: consulta = consultas.Consultas(ARC_CSV, ERROR) sugerencias = consulta.listar_x("PRODUCTO") # Si se presionó el botón de buscar resultados: if busqueda.validate_on_submit() and busqueda.submit.data: # Obteniendo palabra desde input del formulario (si hay): if busqueda.buscar.data: cxp.palabra = busqueda.buscar.data.lower() # Obteniendo resultados: cxp.resultados, cxp.columnas = consulta.listar_x_en_y( cxp.palabra, "CLIENTE", "PRODUCTO") # Si hubo resultados: if len(cxp.resultados) > 1: return render_template("cxp.html", busqueda_cxp=busqueda, bajar=bajar, sugerencias=sugerencias, resultados=cxp.resultados, columnas=cxp.columnas) # Si NO hubo resultados: else: error = "No hubo resultados con ese término" return render_template("cxp.html", error=error, busqueda_cxp=busqueda, sugerencias=sugerencias) # Si se presionó el botón de descargar resultados: elif bajar.validate_on_submit() and bajar.submit.data: # Si no hubo problemas se descargan los resultados en un CSV: import datetime as dt fecha = dt.datetime.now().strftime("%d/%m/%Y - %H:%M:%S") titulo = "[Consulta: Clientes por Producto] [Usuario: {}] [Fecha: {}]".format( session["user"], fecha) exportar = guardar.Exportar(RUTA + TEMP) exp_ok = exportar.local(cxp.resultados, titulo) # Si se pudo crear CSV: if exp_ok: session["nombre"] = exportar.nombre_completo() session["ruta"] = exportar.ruta return redirect(url_for("descargar")) # Caso contrario, se muestra mensaje de error: else: error = "Hubo un problema al intentar crear el archivo CSV." return render_template("cxp.html", error=error, busqueda_cxp=busqueda, sugerencias=sugerencias) # Si no se envia aún ninguna búsqueda: else: return render_template("cxp.html", busqueda_cxp=busqueda, sugerencias=sugerencias) # Si NO hay 'user' en sesión: else: return redirect(url_for("inicio"))