removed "date_expedition" handling

This commit is contained in:
mickael 2025-12-20 15:23:50 +01:00
parent f0c84c9cb6
commit 5257be0680
2 changed files with 28 additions and 294 deletions

View file

@ -64,7 +64,6 @@ class DevisRequest(BaseModel):
client_id: str
date_devis: Optional[date] = None
date_livraison: Optional[date] = None
date_expedition: Optional[date] = None
reference: Optional[str] = None
lignes: List[Dict]
@ -148,7 +147,6 @@ class CommandeCreateRequest(BaseModel):
client_id: str
date_commande: Optional[date] = None
date_livraison: Optional[date] = None
date_expedition: Optional[date] = None
reference: Optional[str] = None
lignes: List[Dict]
@ -166,7 +164,6 @@ class LivraisonCreateGatewayRequest(BaseModel):
client_id: str
date_livraison: Optional[date] = None
date_livraison_prevue: Optional[date] = None
date_expedition: Optional[date] = None
lignes: List[Dict]
reference: Optional[str] = None
@ -184,7 +181,6 @@ class AvoirCreateGatewayRequest(BaseModel):
client_id: str
date_avoir: Optional[date] = None
date_livraison: Optional[date] = None
date_expedition: Optional[date] = None
lignes: List[Dict]
reference: Optional[str] = None
@ -202,7 +198,6 @@ class FactureCreateGatewayRequest(BaseModel):
client_id: str
date_facture: Optional[date] = None
date_livraison: Optional[date] = None
date_expedition: Optional[date] = None
lignes: List[Dict]
reference: Optional[str] = None

View file

@ -3116,16 +3116,6 @@ class SageConnector:
def creer_devis_enrichi(self, devis_data: dict, forcer_brouillon: bool = False):
"""
Crée un devis dans Sage avec support de la référence et des dates.
Args:
devis_data: dict contenant:
- client: {code: str}
- date_devis: str ou date
- date_expedition: str ou date (optionnel)
- date_livraison: str ou date (optionnel)
- reference: str (optionnel)
- lignes: list[dict]
forcer_brouillon: bool, force le statut brouillon
"""
if not self.cial:
raise RuntimeError("Connexion Sage non établie")
@ -3162,21 +3152,27 @@ class SageConnector:
self.normaliser_date(devis_data.get("date_devis"))
)
if (
"date_expedition" in devis_data
and devis_data["date_expedition"]
):
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(devis_data["date_expedition"])
)
logger.info(
f"📅 Date expédition: {devis_data['date_expedition']}"
)
if "date_livraison" in devis_data and devis_data["date_livraison"]:
try:
if hasattr(doc, 'DO_DateLivr'):
doc.DO_DateLivr = pywintypes.Time(
self.normaliser_date(devis_data["date_livraison"])
)
logger.info(
f"📅 Date livraison: {devis_data['date_livraison']}"
)
else:
logger.warning(
"⚠️ DO_DateLivr non disponible dans l'API COM Sage"
)
except AttributeError as e:
logger.warning(
f"⚠️ Impossible de définir DO_DateLivr: {e}"
)
except Exception as e:
logger.warning(
f"⚠️ Erreur lors de la définition de la date livraison: {e}"
)
# ===== CLIENT =====
factory_client = self.cial.CptaApplication.FactoryClient
@ -3332,7 +3328,6 @@ class SageConnector:
# ===== ATTENTE POUR STABILISATION =====
import time
time.sleep(0.5)
# ===== RÉFÉRENCE (RECHARGER D'ABORD LE DOCUMENT) =====
@ -3353,7 +3348,6 @@ class SageConnector:
doc_reload.Write()
time.sleep(0.5)
doc_reload.Read()
logger.info(f"✅ Référence définie: {nouvelle_reference}")
@ -3389,6 +3383,7 @@ class SageConnector:
logger.error(f"❌ ERREUR CRÉATION DEVIS: {e}", exc_info=True)
raise RuntimeError(f"Échec création devis: {str(e)}")
def _recuperer_numero_devis(self, process, doc):
"""Récupère le numéro du devis créé via plusieurs méthodes."""
numero_devis = None
@ -3441,16 +3436,8 @@ class SageConnector:
reference_final = getattr(doc_final, "DO_Ref", "")
# Dates
date_expedition_final = None
date_livraison_final = None
try:
date_exped = getattr(doc_final, "DO_DateExpedition", None)
if date_exped:
date_expedition_final = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc_final, "DO_DateLivr", None)
if date_livr:
@ -3466,7 +3453,6 @@ class SageConnector:
total_ttc = round(total_calcule * 1.20, 2)
statut_final = 0 if forcer_brouillon else 2
reference_final = devis_data.get("reference", "")
date_expedition_final = devis_data.get("date_expedition")
date_livraison_final = devis_data.get("date_livraison")
logger.info(f"💰 Total HT: {total_ht}")
@ -3474,8 +3460,6 @@ class SageConnector:
logger.info(f"📊 Statut final: {statut_final}")
if reference_final:
logger.info(f"🔖 Référence: {reference_final}")
if date_expedition_final:
logger.info(f"📅 Date expédition: {date_expedition_final}")
if date_livraison_final:
logger.info(f"📅 Date livraison: {date_livraison_final}")
@ -3486,7 +3470,6 @@ class SageConnector:
"nb_lignes": len(devis_data["lignes"]),
"client_code": devis_data["client"]["code"],
"date_devis": str(devis_data.get("date_devis", "")),
"date_expedition": date_expedition_final,
"date_livraison": date_livraison_final,
"reference": reference_final,
"statut": statut_final,
@ -3730,19 +3713,6 @@ class SageConnector:
except Exception as e:
logger.warning(f"⚠️ Impossible de modifier la date: {e}")
# DATE EXPÉDITION - Modifier et sauvegarder immédiatement
if "date_expedition" in devis_data:
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(devis_data["date_expedition"])
)
logger.info(f"📅 Date expédition modifiée: {devis_data['date_expedition']}")
doc.Write()
doc.Read()
champs_modifies.append("date_expedition")
# DATE LIVRAISON - Modifier et sauvegarder immédiatement
if "date_livraison" in devis_data:
try:
if devis_data["date_livraison"]:
@ -4053,16 +4023,8 @@ class SageConnector:
reference = getattr(doc, "DO_Ref", "")
# Extraction des dates
date_expedition = None
date_livraison = None
try:
date_exped = getattr(doc, "DO_DateExpedition", None)
if date_exped:
date_expedition = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc, "DO_DateLivr", None)
if date_livr:
@ -4075,7 +4037,6 @@ class SageConnector:
"total_ht": total_ht,
"total_ttc": total_ttc,
"reference": reference,
"date_expedition": date_expedition,
"date_livraison": date_livraison,
"champs_modifies": champs_modifies,
"statut": statut,
@ -5890,7 +5851,6 @@ class SageConnector:
commande_data: dict contenant:
- client: {code: str}
- date_commande: str ou date
- date_expedition: str ou date (optionnel)
- date_livraison: str ou date (optionnel)
- reference: str (optionnel)
- lignes: list[dict]
@ -5931,21 +5891,7 @@ class SageConnector:
self.normaliser_date(commande_data.get("date_commande"))
)
if (
"date_expedition" in commande_data
and commande_data["date_expedition"]
):
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(commande_data["date_expedition"])
)
logger.info(
f"📅 Date expédition: {commande_data['date_expedition']}"
)
if (
"date_livraison" in commande_data
and commande_data["date_livraison"]
):
if ("date_livraison" in commande_data and commande_data["date_livraison"]):
doc.DO_DateLivr = pywintypes.Time(
self.normaliser_date(commande_data["date_livraison"])
)
@ -6158,17 +6104,8 @@ class SageConnector:
total_ttc = float(getattr(doc_final, "DO_TotalTTC", 0.0))
reference_finale = getattr(doc_final, "DO_Ref", "")
# Dates
date_expedition_final = None
date_livraison_final = None
try:
date_exped = getattr(doc_final, "DO_DateExpedition", None)
if date_exped:
date_expedition_final = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc_final, "DO_DateLivr", None)
if date_livr:
@ -6179,14 +6116,11 @@ class SageConnector:
total_ht = 0.0
total_ttc = 0.0
reference_finale = commande_data.get("reference", "")
date_expedition_final = commande_data.get("date_expedition")
date_livraison_final = commande_data.get("date_livraison")
logger.info(
f"✅✅✅ COMMANDE CRÉÉE: {numero_commande} - {total_ttc}€ TTC ✅✅✅"
)
if date_expedition_final:
logger.info(f"📅 Date expédition: {date_expedition_final}")
if date_livraison_final:
logger.info(f"📅 Date livraison: {date_livraison_final}")
@ -6199,7 +6133,6 @@ class SageConnector:
"date_commande": str(
self.normaliser_date(commande_data.get("date_commande"))
),
"date_expedition": date_expedition_final,
"date_livraison": date_livraison_final,
"reference": reference_finale,
}
@ -6224,7 +6157,6 @@ class SageConnector:
numero: Numéro de la commande
commande_data: dict contenant les champs à modifier:
- date_commande: str ou date (optionnel)
- date_expedition: str ou date (optionnel)
- date_livraison: str ou date (optionnel)
- reference: str (optionnel)
- statut: int (optionnel)
@ -6312,7 +6244,6 @@ class SageConnector:
champs_modifies = []
modif_date = "date_commande" in commande_data
modif_date_expedition = "date_expedition" in commande_data
modif_date_livraison = "date_livraison" in commande_data
modif_statut = "statut" in commande_data
modif_ref = "reference" in commande_data
@ -6322,7 +6253,6 @@ class SageConnector:
logger.info(f"📋 Modifications demandées:")
logger.info(f" Date commande: {modif_date}")
logger.info(f" Date expédition: {modif_date_expedition}")
logger.info(f" Date livraison: {modif_date_livraison}")
logger.info(f" Statut: {modif_statut}")
logger.info(f" Référence: {modif_ref}")
@ -6384,7 +6314,6 @@ class SageConnector:
# ========================================
if not modif_lignes and (
modif_date
or modif_date_expedition
or modif_date_livraison
or modif_statut
or modif_ref
@ -6400,13 +6329,6 @@ class SageConnector:
)
champs_modifies.append("date")
if modif_date_expedition:
logger.info(" 📅 Modification date expédition...")
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(commande_data_temp["date_expedition"])
)
champs_modifies.append("date_expedition")
if modif_date_livraison:
logger.info(" 📅 Modification date livraison...")
doc.DO_DateLivr = pywintypes.Time(
@ -6483,13 +6405,6 @@ class SageConnector:
champs_modifies.append("date")
logger.info(" 📅 Date commande modifiée")
if modif_date_expedition:
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(commande_data_temp["date_expedition"])
)
logger.info(" 📅 Date expédition modifiée")
champs_modifies.append("date_expedition")
if modif_date_livraison:
doc.DO_DateLivr = pywintypes.Time(
self.normaliser_date(commande_data_temp["date_livraison"])
@ -6708,17 +6623,8 @@ class SageConnector:
total_ttc = float(getattr(doc, "DO_TotalTTC", 0.0))
reference_finale = getattr(doc, "DO_Ref", "")
# Extraire les dates
date_expedition_final = None
date_livraison_final = None
try:
date_exped = getattr(doc, "DO_DateExpedition", None)
if date_exped:
date_expedition_final = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc, "DO_DateLivr", None)
if date_livr:
@ -6730,8 +6636,6 @@ class SageConnector:
logger.info(f" 💰 Totaux: {total_ht}€ HT / {total_ttc}€ TTC")
logger.info(f" 👤 Client final: {client_final}")
logger.info(f" 🔖 Référence: {reference_finale}")
if date_expedition_final:
logger.info(f" 📅 Date expédition: {date_expedition_final}")
if date_livraison_final:
logger.info(f" 📅 Date livraison: {date_livraison_final}")
logger.info(f" 📝 Champs modifiés: {champs_modifies}")
@ -6741,7 +6645,6 @@ class SageConnector:
"total_ht": total_ht,
"total_ttc": total_ttc,
"reference": reference_finale,
"date_expedition": date_expedition_final,
"date_livraison": date_livraison_final,
"champs_modifies": champs_modifies,
"statut": getattr(doc, "DO_Statut", 0),
@ -6776,7 +6679,6 @@ class SageConnector:
livraison_data: dict contenant:
- client: {code: str}
- date_livraison: str ou date (date du document)
- date_expedition: str ou date (optionnel - date prévue expédition)
- date_livraison_prevue: str ou date (optionnel - date prévue livraison client)
- reference: str (optionnel)
- lignes: list[dict]
@ -6818,18 +6720,6 @@ class SageConnector:
self.normaliser_date(livraison_data.get("date_livraison"))
)
# Date d'expédition prévue (DO_DateExpedition)
if (
"date_expedition" in livraison_data
and livraison_data["date_expedition"]
):
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(livraison_data["date_expedition"])
)
logger.info(
f"📅 Date expédition: {livraison_data['date_expedition']}"
)
# Date de livraison prévue chez le client (DO_DateLivr)
if (
"date_livraison_prevue" in livraison_data
@ -7031,16 +6921,8 @@ class SageConnector:
reference_finale = getattr(doc_final, "DO_Ref", "")
# Dates
date_expedition_final = None
date_livraison_prevue_final = None
try:
date_exped = getattr(doc_final, "DO_DateExpedition", None)
if date_exped:
date_expedition_final = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc_final, "DO_DateLivr", None)
if date_livr:
@ -7053,7 +6935,6 @@ class SageConnector:
total_ht = 0.0
total_ttc = 0.0
reference_finale = livraison_data.get("reference", "")
date_expedition_final = livraison_data.get("date_expedition")
date_livraison_prevue_final = livraison_data.get(
"date_livraison_prevue"
)
@ -7061,8 +6942,6 @@ class SageConnector:
logger.info(
f"✅✅✅ LIVRAISON CRÉÉE: {numero_livraison} - {total_ttc}€ TTC ✅✅✅"
)
if date_expedition_final:
logger.info(f"📅 Date expédition: {date_expedition_final}")
if date_livraison_prevue_final:
logger.info(
f"📅 Date livraison prévue: {date_livraison_prevue_final}"
@ -7077,7 +6956,6 @@ class SageConnector:
"date_livraison": str(
self.normaliser_date(livraison_data.get("date_livraison"))
),
"date_expedition": date_expedition_final,
"date_livraison_prevue": date_livraison_prevue_final,
"reference": reference_finale,
}
@ -7102,7 +6980,6 @@ class SageConnector:
numero: Numéro de la livraison
livraison_data: dict contenant les champs à modifier:
- date_livraison: str ou date (optionnel - date du document)
- date_expedition: str ou date (optionnel - date prévue expédition)
- date_livraison_prevue: str ou date (optionnel - date prévue livraison client)
- reference: str (optionnel)
- statut: int (optionnel)
@ -7178,7 +7055,6 @@ class SageConnector:
champs_modifies = []
modif_date = "date_livraison" in livraison_data
modif_date_expedition = "date_expedition" in livraison_data
modif_date_livraison_prevue = "date_livraison_prevue" in livraison_data
modif_statut = "statut" in livraison_data
modif_ref = "reference" in livraison_data
@ -7188,7 +7064,6 @@ class SageConnector:
logger.info(f"📋 Modifications demandées:")
logger.info(f" Date livraison: {modif_date}")
logger.info(f" Date expédition: {modif_date_expedition}")
logger.info(f" Date livraison prévue: {modif_date_livraison_prevue}")
logger.info(f" Statut: {modif_statut}")
logger.info(f" Référence: {modif_ref}")
@ -7219,7 +7094,6 @@ class SageConnector:
# ========================================
if not modif_lignes and (
modif_date
or modif_date_expedition
or modif_date_livraison_prevue
or modif_statut
or modif_ref
@ -7235,16 +7109,6 @@ class SageConnector:
)
champs_modifies.append("date")
if modif_date_expedition:
logger.info(" 📅 Modification date expédition...")
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(livraison_data_temp["date_expedition"])
)
logger.info(
f" ✅ Date expédition: {livraison_data_temp['date_expedition']}"
)
champs_modifies.append("date_expedition")
if modif_date_livraison_prevue:
logger.info(" 📅 Modification date livraison prévue...")
doc.DO_DateLivr = pywintypes.Time(
@ -7295,13 +7159,6 @@ class SageConnector:
champs_modifies.append("date")
logger.info(" 📅 Date livraison modifiée")
if modif_date_expedition:
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(livraison_data_temp["date_expedition"])
)
logger.info(" 📅 Date expédition modifiée")
champs_modifies.append("date_expedition")
if modif_date_livraison_prevue:
doc.DO_DateLivr = pywintypes.Time(
self.normaliser_date(
@ -7507,16 +7364,8 @@ class SageConnector:
statut_final = getattr(doc, "DO_Statut", 0)
# Extraire les dates
date_expedition_final = None
date_livraison_prevue_final = None
try:
date_exped = getattr(doc, "DO_DateExpedition", None)
if date_exped:
date_expedition_final = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc, "DO_DateLivr", None)
if date_livr:
@ -7528,8 +7377,7 @@ class SageConnector:
logger.info(f" 💰 Totaux: {total_ht}€ HT / {total_ttc}€ TTC")
logger.info(f" 🔖 Référence: {reference_finale}")
logger.info(f" 📊 Statut: {statut_final}")
if date_expedition_final:
logger.info(f" 📅 Date expédition: {date_expedition_final}")
if date_livraison_prevue_final:
logger.info(
f" 📅 Date livraison prévue: {date_livraison_prevue_final}"
@ -7541,7 +7389,6 @@ class SageConnector:
"total_ht": total_ht,
"total_ttc": total_ttc,
"reference": reference_finale,
"date_expedition": date_expedition_final,
"date_livraison_prevue": date_livraison_prevue_final,
"champs_modifies": champs_modifies,
"statut": statut_final,
@ -7575,7 +7422,6 @@ class SageConnector:
avoir_data: dict contenant:
- client: {code: str}
- date_avoir: str ou date
- date_expedition: str ou date (optionnel)
- date_livraison: str ou date (optionnel)
- reference: str (optionnel)
- lignes: list[dict]
@ -7616,17 +7462,6 @@ class SageConnector:
self.normaliser_date(avoir_data.get("date_avoir"))
)
if (
"date_expedition" in avoir_data
and avoir_data["date_expedition"]
):
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(avoir_data["date_expedition"])
)
logger.info(
f"📅 Date expédition: {avoir_data['date_expedition']}"
)
if "date_livraison" in avoir_data and avoir_data["date_livraison"]:
doc.DO_DateLivr = pywintypes.Time(
self.normaliser_date(avoir_data["date_livraison"])
@ -7820,16 +7655,8 @@ class SageConnector:
reference_finale = getattr(doc_final, "DO_Ref", "")
# Dates
date_expedition_final = None
date_livraison_final = None
try:
date_exped = getattr(doc_final, "DO_DateExpedition", None)
if date_exped:
date_expedition_final = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc_final, "DO_DateLivr", None)
if date_livr:
@ -7840,14 +7667,12 @@ class SageConnector:
total_ht = 0.0
total_ttc = 0.0
reference_finale = avoir_data.get("reference", "")
date_expedition_final = avoir_data.get("date_expedition")
date_livraison_final = avoir_data.get("date_livraison")
logger.info(
f"✅✅✅ AVOIR CRÉÉ: {numero_avoir} - {total_ttc}€ TTC ✅✅✅"
)
if date_expedition_final:
logger.info(f"📅 Date expédition: {date_expedition_final}")
if date_livraison_final:
logger.info(f"📅 Date livraison: {date_livraison_final}")
@ -7860,7 +7685,6 @@ class SageConnector:
"date_avoir": str(
self.normaliser_date(avoir_data.get("date_avoir"))
),
"date_expedition": date_expedition_final,
"date_livraison": date_livraison_final,
"reference": reference_finale,
}
@ -7885,7 +7709,6 @@ class SageConnector:
numero: Numéro de l'avoir
avoir_data: dict contenant les champs à modifier:
- date_avoir: str ou date (optionnel)
- date_expedition: str ou date (optionnel)
- date_livraison: str ou date (optionnel)
- reference: str (optionnel)
- statut: int (optionnel)
@ -7980,7 +7803,6 @@ class SageConnector:
champs_modifies = []
modif_date = "date_avoir" in avoir_data
modif_date_expedition = "date_expedition" in avoir_data
modif_date_livraison = "date_livraison" in avoir_data
modif_statut = "statut" in avoir_data
modif_ref = "reference" in avoir_data
@ -7990,7 +7812,6 @@ class SageConnector:
logger.info(f"📋 Modifications demandées:")
logger.info(f" Date avoir: {modif_date}")
logger.info(f" Date expédition: {modif_date_expedition}")
logger.info(f" Date livraison: {modif_date_livraison}")
logger.info(f" Statut: {modif_statut}")
logger.info(f" Référence: {modif_ref}")
@ -8052,7 +7873,6 @@ class SageConnector:
# ========================================
if not modif_lignes and (
modif_date
or modif_date_expedition
or modif_date_livraison
or modif_statut
or modif_ref
@ -8066,16 +7886,6 @@ class SageConnector:
)
champs_modifies.append("date")
if modif_date_expedition:
logger.info(" 📅 Modification date expédition...")
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(avoir_data_temp["date_expedition"])
)
logger.info(
f" ✅ Date expédition: {avoir_data_temp['date_expedition']}"
)
champs_modifies.append("date_expedition")
if modif_date_livraison:
logger.info(" 📅 Modification date livraison...")
doc.DO_DateLivr = pywintypes.Time(
@ -8150,13 +7960,6 @@ class SageConnector:
champs_modifies.append("date")
logger.info(" 📅 Date avoir modifiée")
if modif_date_expedition:
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(avoir_data_temp["date_expedition"])
)
logger.info(" 📅 Date expédition modifiée")
champs_modifies.append("date_expedition")
if modif_date_livraison:
doc.DO_DateLivr = pywintypes.Time(
self.normaliser_date(avoir_data_temp["date_livraison"])
@ -8381,16 +8184,8 @@ class SageConnector:
statut_final = getattr(doc, "DO_Statut", 0)
# Extraire les dates
date_expedition_final = None
date_livraison_final = None
try:
date_exped = getattr(doc, "DO_DateExpedition", None)
if date_exped:
date_expedition_final = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc, "DO_DateLivr", None)
if date_livr:
@ -8403,8 +8198,7 @@ class SageConnector:
logger.info(f" 👤 Client final: {client_final}")
logger.info(f" 🔖 Référence: {reference_finale}")
logger.info(f" 📊 Statut: {statut_final}")
if date_expedition_final:
logger.info(f" 📅 Date expédition: {date_expedition_final}")
if date_livraison_final:
logger.info(f" 📅 Date livraison: {date_livraison_final}")
logger.info(f" 📝 Champs modifiés: {champs_modifies}")
@ -8414,7 +8208,6 @@ class SageConnector:
"total_ht": total_ht,
"total_ttc": total_ttc,
"reference": reference_finale,
"date_expedition": date_expedition_final,
"date_livraison": date_livraison_final,
"champs_modifies": champs_modifies,
"statut": statut_final,
@ -8449,7 +8242,6 @@ class SageConnector:
facture_data: dict contenant:
- client: {code: str}
- date_facture: str ou date
- date_expedition: str ou date (optionnel)
- date_livraison: str ou date (optionnel)
- reference: str (optionnel)
- lignes: list[dict]
@ -8490,17 +8282,6 @@ class SageConnector:
self.normaliser_date(facture_data.get("date_facture"))
)
if (
"date_expedition" in facture_data
and facture_data["date_expedition"]
):
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(facture_data["date_expedition"])
)
logger.info(
f"📅 Date expédition: {facture_data['date_expedition']}"
)
if (
"date_livraison" in facture_data
and facture_data["date_livraison"]
@ -8755,16 +8536,8 @@ class SageConnector:
reference_finale = getattr(doc_final, "DO_Ref", "")
# Dates
date_expedition_final = None
date_livraison_final = None
try:
date_exped = getattr(doc_final, "DO_DateExpedition", None)
if date_exped:
date_expedition_final = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc_final, "DO_DateLivr", None)
if date_livr:
@ -8775,14 +8548,12 @@ class SageConnector:
total_ht = 0.0
total_ttc = 0.0
reference_finale = facture_data.get("reference", "")
date_expedition_final = facture_data.get("date_expedition")
date_livraison_final = facture_data.get("date_livraison")
logger.info(
f"✅✅✅ FACTURE CRÉÉE: {numero_facture} - {total_ttc}€ TTC ✅✅✅"
)
if date_expedition_final:
logger.info(f"📅 Date expédition: {date_expedition_final}")
if date_livraison_final:
logger.info(f"📅 Date livraison: {date_livraison_final}")
@ -8795,7 +8566,6 @@ class SageConnector:
"date_facture": str(
self.normaliser_date(facture_data.get("date_facture"))
),
"date_expedition": date_expedition_final,
"date_livraison": date_livraison_final,
"reference": reference_finale,
}
@ -8821,7 +8591,6 @@ class SageConnector:
numero: Numéro de la facture
facture_data: dict contenant les champs à modifier:
- date_facture: str ou date (optionnel)
- date_expedition: str ou date (optionnel)
- date_livraison: str ou date (optionnel)
- reference: str (optionnel)
- statut: int (optionnel)
@ -8916,7 +8685,6 @@ class SageConnector:
champs_modifies = []
modif_date = "date_facture" in facture_data
modif_date_expedition = "date_expedition" in facture_data
modif_date_livraison = "date_livraison" in facture_data
modif_statut = "statut" in facture_data
modif_ref = "reference" in facture_data
@ -8926,7 +8694,6 @@ class SageConnector:
logger.info(f"📋 Modifications demandées:")
logger.info(f" Date facture: {modif_date}")
logger.info(f" Date expédition: {modif_date_expedition}")
logger.info(f" Date livraison: {modif_date_livraison}")
logger.info(f" Statut: {modif_statut}")
logger.info(f" Référence: {modif_ref}")
@ -8988,7 +8755,6 @@ class SageConnector:
# ========================================
if not modif_lignes and (
modif_date
or modif_date_expedition
or modif_date_livraison
or modif_statut
or modif_ref
@ -9002,16 +8768,6 @@ class SageConnector:
)
champs_modifies.append("date")
if modif_date_expedition:
logger.info(" 📅 Modification date expédition...")
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(facture_data_temp["date_expedition"])
)
logger.info(
f" ✅ Date expédition: {facture_data_temp['date_expedition']}"
)
champs_modifies.append("date_expedition")
if modif_date_livraison:
logger.info(" 📅 Modification date livraison...")
doc.DO_DateLivr = pywintypes.Time(
@ -9086,13 +8842,6 @@ class SageConnector:
champs_modifies.append("date")
logger.info(" 📅 Date facture modifiée")
if modif_date_expedition:
doc.DO_DateExpedition = pywintypes.Time(
self.normaliser_date(facture_data_temp["date_expedition"])
)
logger.info(" 📅 Date expédition modifiée")
champs_modifies.append("date_expedition")
if modif_date_livraison:
doc.DO_DateLivr = pywintypes.Time(
self.normaliser_date(facture_data_temp["date_livraison"])
@ -9317,16 +9066,8 @@ class SageConnector:
statut_final = getattr(doc, "DO_Statut", 0)
# Extraire les dates
date_expedition_final = None
date_livraison_final = None
try:
date_exped = getattr(doc, "DO_DateExpedition", None)
if date_exped:
date_expedition_final = date_exped.strftime("%Y-%m-%d")
except:
pass
try:
date_livr = getattr(doc, "DO_DateLivr", None)
if date_livr:
@ -9339,8 +9080,7 @@ class SageConnector:
logger.info(f" 👤 Client final: {client_final}")
logger.info(f" 🔖 Référence: {reference_finale}")
logger.info(f" 📊 Statut: {statut_final}")
if date_expedition_final:
logger.info(f" 📅 Date expédition: {date_expedition_final}")
if date_livraison_final:
logger.info(f" 📅 Date livraison: {date_livraison_final}")
logger.info(f" 📝 Champs modifiés: {champs_modifies}")
@ -9350,7 +9090,6 @@ class SageConnector:
"total_ht": total_ht,
"total_ttc": total_ttc,
"reference": reference_finale,
"date_expedition": date_expedition_final,
"date_livraison": date_livraison_final,
"champs_modifies": champs_modifies,
"statut": statut_final,