Document transformation logics updated
This commit is contained in:
parent
d9fe626cbd
commit
6e8aa332ce
1 changed files with 44 additions and 5 deletions
49
main.py
49
main.py
|
|
@ -488,15 +488,54 @@ def lire_document(numero: str, type_doc: int):
|
||||||
|
|
||||||
|
|
||||||
@app.post("/sage/documents/transform", dependencies=[Depends(verify_token)])
|
@app.post("/sage/documents/transform", dependencies=[Depends(verify_token)])
|
||||||
def transformer_document(req: TransformationRequest):
|
def transformer_document(
|
||||||
"""Transformation de document (devis → commande, etc.)"""
|
numero_source: str = Query(..., description="Numéro du document source"),
|
||||||
|
type_source: int = Query(..., ge=0, le=5, description="Type du document source"),
|
||||||
|
type_cible: int = Query(..., ge=0, le=5, description="Type du document cible"),
|
||||||
|
):
|
||||||
|
"""
|
||||||
|
🔧 Transformation de document (devis → commande, etc.)
|
||||||
|
|
||||||
|
✅ CORRECTION: Utilise Query params au lieu de TransformationRequest
|
||||||
|
|
||||||
|
Types de documents:
|
||||||
|
- 0: Devis
|
||||||
|
- 1: Bon de livraison
|
||||||
|
- 2: Bon de retour
|
||||||
|
- 3: Commande
|
||||||
|
- 4: Préparation
|
||||||
|
- 5: Facture
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
resultat = sage.transformer_document(
|
# Validation de la transformation
|
||||||
req.numero_source, req.type_source, req.type_cible
|
transformations_valides = {
|
||||||
|
(0, 3), # Devis → Commande
|
||||||
|
(0, 5), # Devis → Facture (rare)
|
||||||
|
(3, 1), # Commande → Bon de livraison
|
||||||
|
(3, 5), # Commande → Facture
|
||||||
|
(1, 5), # Bon de livraison → Facture
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type_source, type_cible) not in transformations_valides:
|
||||||
|
raise HTTPException(
|
||||||
|
400, f"Transformation non autorisée: {type_source} → {type_cible}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Vérifier que le document source existe
|
||||||
|
logger.info(
|
||||||
|
f"🔄 Début transformation: {numero_source} ({type_source}) → type {type_cible}"
|
||||||
|
)
|
||||||
|
|
||||||
|
resultat = sage.transformer_document(numero_source, type_source, type_cible)
|
||||||
|
|
||||||
|
logger.info(f"✅ Transformation réussie: {resultat}")
|
||||||
|
|
||||||
return {"success": True, "data": resultat}
|
return {"success": True, "data": resultat}
|
||||||
|
|
||||||
|
except HTTPException:
|
||||||
|
raise
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Erreur transformation: {e}")
|
logger.error(f"❌ Erreur transformation: {e}", exc_info=True)
|
||||||
raise HTTPException(500, str(e))
|
raise HTTPException(500, str(e))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue