perf: optimize revenue forecast effective document links
This commit is contained in:
@@ -320,9 +320,13 @@ def _historical_stage_rates(conn: Any) -> dict[str, dict[str, Any]]:
|
||||
}
|
||||
|
||||
|
||||
def _realised_for_period(conn: Any, *, metric: str, period_start: date, period_end: date) -> dict[str, Any]:
|
||||
def _realised_for_period(
|
||||
conn: Any, *, metric: str, period_start: date, period_end: date,
|
||||
effective_links_prepared: bool = False,
|
||||
) -> dict[str, Any]:
|
||||
from app.document_reconciliation_service import prepare_effective_document_links
|
||||
prepare_effective_document_links(conn)
|
||||
if not effective_links_prepared:
|
||||
prepare_effective_document_links(conn)
|
||||
if metric == "cash_received":
|
||||
rows = conn.execute(text("""
|
||||
WITH latest_doc AS (
|
||||
@@ -385,9 +389,12 @@ def _realised_for_period(conn: Any, *, metric: str, period_start: date, period_e
|
||||
}
|
||||
|
||||
|
||||
def _already_realised_ids(conn: Any, *, metric: str) -> set[str]:
|
||||
def _already_realised_ids(
|
||||
conn: Any, *, metric: str, effective_links_prepared: bool = False,
|
||||
) -> set[str]:
|
||||
from app.document_reconciliation_service import prepare_effective_document_links
|
||||
prepare_effective_document_links(conn)
|
||||
if not effective_links_prepared:
|
||||
prepare_effective_document_links(conn)
|
||||
if metric == "cash_received":
|
||||
sql = """
|
||||
SELECT DISTINCT opportunity_id::text
|
||||
@@ -441,8 +448,13 @@ def get_revenue_forecast(*, limit: int = 1000, month: str | None = None, metric:
|
||||
from app.document_reconciliation_service import prepare_effective_document_links
|
||||
prepare_effective_document_links(conn)
|
||||
historical = _historical_stage_rates(conn)
|
||||
realised = _realised_for_period(conn, metric=metric, period_start=period_start, period_end=period_end)
|
||||
already_realised_ids = _already_realised_ids(conn, metric=metric)
|
||||
realised = _realised_for_period(
|
||||
conn, metric=metric, period_start=period_start, period_end=period_end,
|
||||
effective_links_prepared=True,
|
||||
)
|
||||
already_realised_ids = _already_realised_ids(
|
||||
conn, metric=metric, effective_links_prepared=True,
|
||||
)
|
||||
rows = conn.execute(text("""
|
||||
WITH latest_doc AS (
|
||||
SELECT DISTINCT ON (l.opportunity_id)
|
||||
|
||||
Reference in New Issue
Block a user