From a4dd2c40baa5caafc0ce40c17017bb6fc8fc8cd1 Mon Sep 17 00:00:00 2001 From: Fanilo-Nantenaina Date: Fri, 28 Nov 2025 11:56:14 +0300 Subject: [PATCH] fix: Improve client association logic by using `SetClient` with fallback to `SetDefaultClient` and enhanced verification. --- sage_connector.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) 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()"