Document transformation logics updated

This commit is contained in:
Fanilo-Nantenaina 2025-11-28 05:44:56 +03:00
parent d9fe626cbd
commit 6e8aa332ce

49
main.py
View file

@ -488,15 +488,54 @@ def lire_document(numero: str, type_doc: int):
@app.post("/sage/documents/transform", dependencies=[Depends(verify_token)])
def transformer_document(req: TransformationRequest):
"""Transformation de document (devis → commande, etc.)"""
def transformer_document(
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:
resultat = sage.transformer_document(
req.numero_source, req.type_source, req.type_cible
# Validation de la transformation
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}
except HTTPException:
raise
except Exception as e:
logger.error(f"Erreur transformation: {e}")
logger.error(f"Erreur transformation: {e}", exc_info=True)
raise HTTPException(500, str(e))