From 5257be0680cba4b71d8e784d621bdcfe7cbd336c Mon Sep 17 00:00:00 2001 From: mickael Date: Sat, 20 Dec 2025 15:23:50 +0100 Subject: [PATCH] removed "date_expedition" handling --- main.py | 5 - sage_connector.py | 317 ++++------------------------------------------ 2 files changed, 28 insertions(+), 294 deletions(-) diff --git a/main.py b/main.py index c6da58f..6960877 100644 --- a/main.py +++ b/main.py @@ -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 diff --git a/sage_connector.py b/sage_connector.py index 4bb15eb..3673ab2 100644 --- a/sage_connector.py +++ b/sage_connector.py @@ -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"]: - doc.DO_DateLivr = pywintypes.Time( - self.normaliser_date(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}") @@ -3388,6 +3382,7 @@ class SageConnector: except Exception as e: 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.""" @@ -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( @@ -7293,14 +7157,7 @@ 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") + logger.info(" 📅 Date livraison modifiée") if modif_date_livraison_prevue: doc.DO_DateLivr = pywintypes.Time( @@ -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,