feat(reglements): add endpoints to list and get payment details

This commit is contained in:
Fanilo-Nantenaina 2026-01-16 15:46:58 +03:00
parent b291cbf65f
commit aa89ebdf9e
2 changed files with 35 additions and 8 deletions

30
api.py
View file

@ -4,7 +4,7 @@ from fastapi.responses import StreamingResponse, HTMLResponse, Response
from fastapi.encoders import jsonable_encoder from fastapi.encoders import jsonable_encoder
from pydantic import BaseModel, Field, EmailStr from pydantic import BaseModel, Field, EmailStr
from typing import List, Optional from typing import List, Optional
from datetime import datetime from datetime import datetime, date
import uvicorn import uvicorn
import asyncio import asyncio
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
@ -3240,6 +3240,34 @@ async def get_parametres_encaissement():
raise HTTPException(500, str(e)) 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"]) @app.get("/health", tags=["System"])
async def health_check( async def health_check(
sage: SageGatewayClient = Depends(get_sage_client_for_user), sage: SageGatewayClient = Depends(get_sage_client_for_user),

View file

@ -557,13 +557,6 @@ class SageGatewayClient:
def get_comptes_generaux( def get_comptes_generaux(
self, prefixe: str = None, type_compte: str = None self, prefixe: str = None, type_compte: str = None
) -> List[dict]: ) -> 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 = {} params = {}
if prefixe: if prefixe:
params["prefixe"] = prefixe params["prefixe"] = prefixe
@ -597,5 +590,11 @@ class SageGatewayClient:
except Exception: except Exception:
return {"status": "down"} 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() sage_client = SageGatewayClient()