Spaces:
No application file
No application file
| from flask import Flask, render_template, request, redirect, url_for | |
| from supabase import create_client, Client | |
| from datetime import datetime | |
| import os | |
| app = Flask(__name__) | |
| # Configuração Supabase | |
| SUPABASE_URL = os.getenv("SUPABASE_URL") | |
| SUPABASE_KEY = os.getenv("SUPABASE_KEY") | |
| supabase: Client = create_client(SUPABASE_URL, SUPABASE_KEY) | |
| # --- Rota: Listagem de orçamentos --- | |
| def index(): | |
| response = supabase.table("orcamentos").select("*").order("id", desc=True).execute() | |
| orcamentos = response.data | |
| return render_template("index.html", orcamentos=orcamentos) | |
| # --- Rota: Novo Orçamento --- | |
| def novo(): | |
| if request.method == "POST": | |
| dados = { | |
| "cliente": request.form["cliente"], | |
| "endereco": request.form["endereco"], | |
| "area_total": request.form["area_total"], | |
| "quartos": request.form["quartos"], | |
| "banheiros": request.form["banheiros"], | |
| "total": calcular_total(request.form), # Função que calcula o total | |
| "data_criacao": datetime.now().isoformat() | |
| } | |
| supabase.table("orcamentos").insert(dados).execute() | |
| return redirect(url_for('index')) | |
| return render_template("novo.html") | |
| # --- Rota: Detalhe --- | |
| def orcamento(id): | |
| response = supabase.table("orcamentos").select("*").eq("id", id).single().execute() | |
| orcamento = response.data | |
| return render_template("relatorio.html", orcamento=orcamento) | |
| # --- Rota: Excluir --- | |
| def delete(id): | |
| supabase.table("orcamentos").delete().eq("id", id).execute() | |
| return redirect(url_for('index')) | |
| # --- Função de cálculo (exemplo simplificado) --- | |
| def calcular_total(form): | |
| area = float(form.get("area_total", 0)) | |
| quartos = int(form.get("quartos", 0)) | |
| banheiros = int(form.get("banheiros", 0)) | |
| base_m2 = 500 | |
| return area * base_m2 + quartos * 3000 + banheiros * 4000 | |
| if __name__ == "__main__": | |
| app.run(host="0.0.0.0", port=7860) | |