"""Finance routes. Moved from app.admin_dashboard in v4.7.2. The handlers still reuse legacy helpers to keep this refactor behavior-preserving. """ from fastapi import APIRouter from urllib.parse import quote import app.admin_dashboard as legacy from app.admin_dashboard import * # noqa: F401,F403 router = APIRouter() @router.get("/finance", response_class=HTMLResponse) @router.get("/financeiro", response_class=HTMLResponse) async def finance_page(q: Optional[str] = None): finance_tasks = list_tasks(status=None, route="financeiro", q=q, limit=200) return_to = "/finance" + (f"?q={quote(str(q), safe='')}" if q else "") finance_actions = {"SEND_PROFORMA", "SEND_INVOICE", "CONFIRM_PAYMENT"} finance_tasks = [t for t in finance_tasks if str(t.get("action_code") or "") in finance_actions or str(t.get("route") or "") == "financeiro"] opportunities = list_opportunities(status="all", q=q, limit=300) payment_opps = [o for o in opportunities if str(o.get("stage") or "") in {"PROFORMA_REQUESTED", "PROFORMA_SENT", "INVOICE_REQUESTED", "INVOICE_SENT", "WAITING_PAYMENT", "PAYMENT_CONFIRMED"}] rows = "" for task in finance_tasks[:80]: tid = str(task.get("id") or "") customer = customer_display(task) code = str(task.get("action_code") or "") rows += f"""
{esc(code)}| Ação | Cliente | Estado | Criada |
|---|