better handling of an article on create and modification state

This commit is contained in:
fanilo 2026-01-03 16:17:42 +01:00
parent a0f9eeedec
commit cc1f3aa8b1
3 changed files with 1061 additions and 452 deletions

22
main.py
View file

@ -840,30 +840,44 @@ def modifier_facture_endpoint(req: FactureUpdate):
@app.post("/sage/articles/create", dependencies=[Depends(verify_token)]) @app.post("/sage/articles/create", dependencies=[Depends(verify_token)])
def create_article_endpoint(req: ArticleCreate): def create_article_endpoint(req: ArticleCreate):
try: try:
logger.info(f"[ENDPOINT] Création article : {req.reference}")
logger.debug(f"[ENDPOINT] Données reçues : {req.dict()}")
resultat = sage.creer_article(req.dict()) resultat = sage.creer_article(req.dict())
logger.info(f"[ENDPOINT] Article créé : {resultat.get('reference')}")
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
except ValueError as e: except ValueError as e:
logger.warning(f"Erreur métier création article: {e}") logger.warning(f"[ENDPOINT] Erreur métier création article: {e}")
raise HTTPException(400, str(e)) raise HTTPException(400, str(e))
except Exception as e: except Exception as e:
logger.error(f"Erreur technique création article: {e}") logger.error(
f"[ENDPOINT] Erreur technique création article: {e}", exc_info=True
)
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))
@app.post("/sage/articles/update", dependencies=[Depends(verify_token)]) @app.post("/sage/articles/update", dependencies=[Depends(verify_token)])
def modifier_article_endpoint(req: ArticleUpdate): def modifier_article_endpoint(req: ArticleUpdate):
try: try:
logger.info(f"[ENDPOINT] Modification article : {req.reference}")
logger.debug(f"[ENDPOINT] Champs à modifier : {list(req.article_data.keys())}")
resultat = sage.modifier_article(req.reference, req.article_data) resultat = sage.modifier_article(req.reference, req.article_data)
logger.info(f"[ENDPOINT] Article modifié : {req.reference}")
return {"success": True, "data": resultat} return {"success": True, "data": resultat}
except ValueError as e: except ValueError as e:
logger.warning(f"Erreur métier modification article: {e}") logger.warning(f"[ENDPOINT] Erreur métier modification article: {e}")
raise HTTPException(404, str(e)) raise HTTPException(404, str(e))
except Exception as e: except Exception as e:
logger.error(f"Erreur technique modification article: {e}") logger.error(
f"[ENDPOINT] Erreur technique modification article: {e}", exc_info=True
)
raise HTTPException(500, str(e)) raise HTTPException(500, str(e))

File diff suppressed because it is too large Load diff

View file

@ -16,6 +16,12 @@ from .article_fields import (
valider_donnees_creation, valider_donnees_creation,
mapper_champ_api_vers_sage, mapper_champ_api_vers_sage,
CHAMPS_STOCK_INITIAL, CHAMPS_STOCK_INITIAL,
CHAMPS_ASSIGNABLES_CREATION,
CHAMPS_ASSIGNABLES_MODIFICATION,
CHAMPS_OBJETS_SPECIAUX,
valider_champ,
valider_donnees_modification,
obtenir_champs_assignables
) )
__all__ = [ __all__ = [
@ -33,4 +39,10 @@ __all__ = [
"valider_donnees_creation", "valider_donnees_creation",
"mapper_champ_api_vers_sage", "mapper_champ_api_vers_sage",
"CHAMPS_STOCK_INITIAL", "CHAMPS_STOCK_INITIAL",
"CHAMPS_ASSIGNABLES_MODIFICATION",
"CHAMPS_OBJETS_SPECIAUX",
"CHAMPS_ASSIGNABLES_CREATION",
"valider_champ",
"valider_donnees_modification",
"obtenir_champs_assignables"
] ]