| 123456789101112131415161718192021222324252627 |
- from sqlalchemy import text
- from sqlalchemy.orm import Session
- CURRENT_SUMMARY_SQL = text("""
- SELECT TOP 1 Beleg_Nr, Beleg_Datum, Kunde_Text, Beleg_Betrag, Beleg_Offen
- FROM dbo.Forderungen_Kopf
- WHERE Client_DB = :client_db AND Beleg_Nr = :beleg_nr
- """)
- HISTORY_SUMMARY_SQL = text("""
- SELECT TOP 1 Beleg_Nr, Beleg_Datum, Auszifferung_Datum
- FROM dbo.Forderungen_Historie
- WHERE Client_DB = :client_db AND Beleg_Nr = :beleg_nr
- ORDER BY Auszifferung_Datum DESC, Beleg_Datum DESC
- """)
- def get_forderung_summary(db: Session, client_db: str, beleg_nr: str) -> dict:
- """Explicitly permitted minimal information, independent of the detail scope."""
- params = {"client_db": client_db, "beleg_nr": beleg_nr}
- current = db.execute(CURRENT_SUMMARY_SQL, params).mappings().first()
- if current is not None:
- return {"kind": "open", "forderung": dict(current)}
- historical = db.execute(HISTORY_SUMMARY_SQL, params).mappings().first()
- if historical is not None:
- return {"kind": "settled", "forderung": dict(historical)}
- return {"kind": "missing", "forderung": None}
|