diff --git a/api.py b/api.py index 03fb2c5..b4592b2 100644 --- a/api.py +++ b/api.py @@ -4,7 +4,7 @@ from fastapi.responses import StreamingResponse, HTMLResponse, Response from fastapi.encoders import jsonable_encoder from pydantic import BaseModel, Field, EmailStr from typing import List, Optional -from datetime import datetime +from datetime import datetime, date import uvicorn import asyncio from contextlib import asynccontextmanager @@ -3240,6 +3240,34 @@ async def get_parametres_encaissement(): raise HTTPException(500, str(e)) +@app.get("/reglements", tags=["Règlements"]) +async def get_tous_reglements( + date_debut: Optional[date] = Query(None), + date_fin: Optional[date] = Query(None), + client_code: Optional[str] = Query(None), + type_reglement: Optional[str] = Query(None), + limit: int = Query(500), +): + """Liste tous les règlements avec filtres optionnels""" + params = {"limit": limit} + if date_debut: + params["date_debut"] = date_debut.isoformat() + if date_fin: + params["date_fin"] = date_fin.isoformat() + if client_code: + params["client_code"] = client_code + if type_reglement: + params["type_reglement"] = type_reglement + + return sage_client.get_tous_reglements(params) + + +@app.get("/reglements/{rg_no}", tags=["Règlements"]) +async def get_reglement_detail(rg_no: int): + """Détail complet d'un règlement""" + return sage_client.get_reglement_detail(rg_no) + + @app.get("/health", tags=["System"]) async def health_check( sage: SageGatewayClient = Depends(get_sage_client_for_user), diff --git a/sage_client.py b/sage_client.py index 6e61085..fc2c7a0 100644 --- a/sage_client.py +++ b/sage_client.py @@ -557,13 +557,6 @@ class SageGatewayClient: def get_comptes_generaux( self, prefixe: str = None, type_compte: str = None ) -> List[dict]: - """ - Récupère les comptes généraux - - Args: - prefixe: Filtre par préfixe (ex: "41", "51") - type_compte: "client", "fournisseur", "banque", "caisse", "tva" - """ params = {} if prefixe: params["prefixe"] = prefixe @@ -597,5 +590,11 @@ class SageGatewayClient: except Exception: return {"status": "down"} + def get_tous_reglements(self, params=None): + return self._get("/sage/reglements", params=params) + + def get_reglement_detail(self, rg_no): + return self._get(f"/sage/reglements/{rg_no}") + sage_client = SageGatewayClient()