refactor: simplify invoice validation methods and error handling
This commit is contained in:
parent
a824592398
commit
f505dad8a7
2 changed files with 12 additions and 37 deletions
31
api.py
31
api.py
|
|
@ -2968,82 +2968,63 @@ async def preview_societe():
|
||||||
@app.post("/factures/{numero_facture}/valider", status_code=200, tags=["Factures"])
|
@app.post("/factures/{numero_facture}/valider", status_code=200, tags=["Factures"])
|
||||||
async def valider_facture(
|
async def valider_facture(
|
||||||
numero_facture: str,
|
numero_facture: str,
|
||||||
session: AsyncSession = Depends(get_session),
|
_: AsyncSession = Depends(get_session),
|
||||||
):
|
):
|
||||||
"""
|
|
||||||
Valide une facture (pose le cadenas)
|
|
||||||
"""
|
|
||||||
try:
|
try:
|
||||||
resultat = sage_client.valider_facture(numero_facture)
|
resultat = sage_client.valider_facture(numero_facture)
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Facture {numero_facture} validée: {resultat.get('action_effectuee')}"
|
f"Facture {numero_facture} validée: {resultat.get('action_effectuee')}"
|
||||||
)
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"success": True,
|
"success": True,
|
||||||
"message": resultat.get("message", "Facture validée"),
|
"message": resultat.get("message", "Facture validée"),
|
||||||
"data": resultat,
|
"data": resultat,
|
||||||
}
|
}
|
||||||
|
|
||||||
except HTTPException:
|
except HTTPException:
|
||||||
raise
|
raise
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Erreur validation facture {numero_facture}: {e}")
|
logger.error(f"Erreur validation facture {numero_facture}: {e}")
|
||||||
raise HTTPException(500, str(e))
|
raise HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
||||||
|
|
||||||
@app.post("/factures/{numero_facture}/devalider", status_code=200, tags=["Factures"])
|
@app.post("/factures/{numero_facture}/devalider", status_code=200, tags=["Factures"])
|
||||||
async def devalider_facture(
|
async def devalider_facture(
|
||||||
numero_facture: str,
|
numero_facture: str,
|
||||||
session: AsyncSession = Depends(get_session),
|
_: AsyncSession = Depends(get_session),
|
||||||
):
|
):
|
||||||
"""
|
|
||||||
Dévalide une facture (retire le cadenas)
|
|
||||||
|
|
||||||
Impossible si la facture a des règlements.
|
|
||||||
"""
|
|
||||||
try:
|
try:
|
||||||
resultat = sage_client.devalider_facture(numero_facture)
|
resultat = sage_client.devalider_facture(numero_facture)
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
f"Facture {numero_facture} dévalidée: {resultat.get('action_effectuee')}"
|
f"Facture {numero_facture} dévalidée: {resultat.get('action_effectuee')}"
|
||||||
)
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"success": True,
|
"success": True,
|
||||||
"message": resultat.get("message", "Facture dévalidée"),
|
"message": resultat.get("message", "Facture dévalidée"),
|
||||||
"data": resultat,
|
"data": resultat,
|
||||||
}
|
}
|
||||||
|
|
||||||
except HTTPException:
|
except HTTPException:
|
||||||
raise
|
raise
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Erreur dévalidation facture {numero_facture}: {e}")
|
logger.error(f"Erreur dévalidation facture {numero_facture}: {e}")
|
||||||
raise HTTPException(500, str(e))
|
raise HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
||||||
|
|
||||||
@app.get("/factures/{numero_facture}/statut-validation", tags=["Factures"])
|
@app.get("/factures/{numero_facture}/statut-validation", tags=["Factures"])
|
||||||
async def get_statut_validation_facture(
|
async def get_statut_validation_facture(
|
||||||
numero_facture: str,
|
numero_facture: str,
|
||||||
session: AsyncSession = Depends(get_session),
|
_: AsyncSession = Depends(get_session),
|
||||||
):
|
):
|
||||||
"""
|
|
||||||
Retourne le statut de validation d'une facture
|
|
||||||
"""
|
|
||||||
try:
|
try:
|
||||||
resultat = sage_client.get_statut_validation(numero_facture)
|
resultat = sage_client.get_statut_validation(numero_facture)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"success": True,
|
"success": True,
|
||||||
"data": resultat,
|
"data": resultat,
|
||||||
}
|
}
|
||||||
|
|
||||||
except HTTPException:
|
except HTTPException:
|
||||||
raise
|
raise
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Erreur lecture statut {numero_facture}: {e}")
|
logger.error(f"Erreur lecture statut {numero_facture}: {e}")
|
||||||
raise HTTPException(500, str(e))
|
raise HTTPException(status_code=500, detail=str(e))
|
||||||
|
|
||||||
|
|
||||||
@app.get("/health", tags=["System"])
|
@app.get("/health", tags=["System"])
|
||||||
|
|
|
||||||
|
|
@ -432,22 +432,16 @@ class SageGatewayClient:
|
||||||
return self._get("/sage/societe/info").get("data")
|
return self._get("/sage/societe/info").get("data")
|
||||||
|
|
||||||
def valider_facture(self, numero_facture: str) -> dict:
|
def valider_facture(self, numero_facture: str) -> dict:
|
||||||
"""Valide une facture"""
|
response = self._post(f"/sage/factures/{numero_facture}/valider", {})
|
||||||
return self._post(f"/sage/factures/{numero_facture}/valider", {}).get(
|
return response.get("data", {})
|
||||||
"data", {}
|
|
||||||
)
|
|
||||||
|
|
||||||
def devalider_facture(self, numero_facture: str) -> dict:
|
def devalider_facture(self, numero_facture: str) -> dict:
|
||||||
"""Dévalide une facture"""
|
response = self._post(f"/sage/factures/{numero_facture}/devalider", {})
|
||||||
return self._post(f"/sage/factures/{numero_facture}/devalider", {}).get(
|
return response.get("data", {})
|
||||||
"data", {}
|
|
||||||
)
|
|
||||||
|
|
||||||
def get_statut_validation(self, numero_facture: str) -> dict:
|
def get_statut_validation(self, numero_facture: str) -> dict:
|
||||||
"""Récupère le statut de validation"""
|
response = self._get(f"/sage/factures/{numero_facture}/statut-validation")
|
||||||
return self._get(f"/sage/factures/{numero_facture}/statut-validation").get(
|
return response.get("data", {})
|
||||||
"data", {}
|
|
||||||
)
|
|
||||||
|
|
||||||
def refresh_cache(self) -> Dict:
|
def refresh_cache(self) -> Dict:
|
||||||
return self._post("/sage/cache/refresh")
|
return self._post("/sage/cache/refresh")
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue