updated devis to command logics transformation
This commit is contained in:
parent
c0327f1890
commit
33843e031a
1 changed files with 43 additions and 4 deletions
47
api.py
47
api.py
|
|
@ -529,13 +529,17 @@ async def lister_commandes(
|
||||||
|
|
||||||
@app.post("/workflow/devis/{id}/to-commande", tags=["US-A2"])
|
@app.post("/workflow/devis/{id}/to-commande", tags=["US-A2"])
|
||||||
async def devis_vers_commande(id: str, session: AsyncSession = Depends(get_session)):
|
async def devis_vers_commande(id: str, session: AsyncSession = Depends(get_session)):
|
||||||
"""🔧 Transformation Devis → Commande via gateway Windows"""
|
"""
|
||||||
|
🔧 Transformation Devis → Commande via gateway Windows
|
||||||
|
|
||||||
|
✅ CORRECTION: Envoie les valeurs numériques des enums, pas les noms
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
# Appel HTTP vers Windows
|
# ✅ CRITIQUE: Utiliser .value pour obtenir l'entier
|
||||||
resultat = sage_client.transformer_document(
|
resultat = sage_client.transformer_document(
|
||||||
numero_source=id,
|
numero_source=id,
|
||||||
type_source=TypeDocument.DEVIS,
|
type_source=TypeDocument.DEVIS.value, # ← .value = 0
|
||||||
type_cible=TypeDocument.COMMANDE,
|
type_cible=TypeDocument.COMMANDE.value, # ← .value = 3
|
||||||
)
|
)
|
||||||
|
|
||||||
# Logger en DB
|
# Logger en DB
|
||||||
|
|
@ -569,6 +573,41 @@ async def devis_vers_commande(id: str, session: AsyncSession = Depends(get_sessi
|
||||||
raise HTTPException(500, str(e))
|
raise HTTPException(500, str(e))
|
||||||
|
|
||||||
|
|
||||||
|
@app.post("/workflow/commande/{id}/to-facture", tags=["US-A2"])
|
||||||
|
async def commande_vers_facture(id: str, session: AsyncSession = Depends(get_session)):
|
||||||
|
"""
|
||||||
|
🔧 Transformation Commande → Facture via gateway Windows
|
||||||
|
|
||||||
|
✅ CORRECTION: Envoie les valeurs numériques
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
resultat = sage_client.transformer_document(
|
||||||
|
numero_source=id,
|
||||||
|
type_source=TypeDocument.COMMANDE.value, # ← 3
|
||||||
|
type_cible=TypeDocument.FACTURE.value, # ← 5
|
||||||
|
)
|
||||||
|
|
||||||
|
workflow_log = WorkflowLog(
|
||||||
|
id=str(uuid.uuid4()),
|
||||||
|
document_source=id,
|
||||||
|
type_source=TypeDocument.COMMANDE,
|
||||||
|
document_cible=resultat.get("document_cible", ""),
|
||||||
|
type_cible=TypeDocument.FACTURE,
|
||||||
|
nb_lignes=resultat.get("nb_lignes", 0),
|
||||||
|
date_transformation=datetime.now(),
|
||||||
|
succes=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
session.add(workflow_log)
|
||||||
|
await session.commit()
|
||||||
|
|
||||||
|
return resultat
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Erreur transformation: {e}")
|
||||||
|
raise HTTPException(500, str(e))
|
||||||
|
|
||||||
|
|
||||||
@app.post("/workflow/commande/{id}/to-facture", tags=["US-A2"])
|
@app.post("/workflow/commande/{id}/to-facture", tags=["US-A2"])
|
||||||
async def commande_vers_facture(id: str, session: AsyncSession = Depends(get_session)):
|
async def commande_vers_facture(id: str, session: AsyncSession = Depends(get_session)):
|
||||||
"""🔧 Transformation Commande → Facture via gateway Windows"""
|
"""🔧 Transformation Commande → Facture via gateway Windows"""
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue