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)])
|
||||
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))
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue