diff --git a/sage_connector.py b/sage_connector.py index 4a0fd70..0179f36 100644 --- a/sage_connector.py +++ b/sage_connector.py @@ -1266,18 +1266,35 @@ class SageConnector: if not client_obj_cible: raise ValueError(f"Impossible de charger client {client_code}") - # ✅ CORRECTION : Utiliser SetDefault puis définir manuellement CT_Num - doc_cible.SetDefaultClient(client_obj_cible) - - # CRITIQUE : S'assurer que CT_Num est bien défini - doc_cible.CT_Num = client_code + # ✅ SOLUTION : Utiliser SetClient au lieu de SetDefaultClient + # SetClient définit UNIQUEMENT le client sans réinitialiser les autres champs + try: + doc_cible.SetClient(client_obj_cible) + logger.info( + f"[TRANSFORM] SetClient() appelé pour {client_code}" + ) + except Exception as e: + logger.warning( + f"[TRANSFORM] SetClient() échoué: {e}, tentative SetDefaultClient()" + ) + doc_cible.SetDefaultClient(client_obj_cible) doc_cible.Write() - # Vérifier immédiatement que le client est bien attaché + # Vérifier que le client est bien attaché doc_cible.Read() client_verifie = getattr(doc_cible, "CT_Num", None) + if not client_verifie: + # Dernière tentative : récupérer via la propriété Client + try: + client_test = getattr(doc_cible, "Client", None) + if client_test: + client_test.Read() + client_verifie = getattr(client_test, "CT_Num", None) + except: + pass + if not client_verifie: raise ValueError( f"Échec association client {client_code} - CT_Num reste vide après Write()"