fix: Improve client association logic by using SetClient with fallback to SetDefaultClient and enhanced verification.
This commit is contained in:
parent
b06720eace
commit
a4dd2c40ba
1 changed files with 23 additions and 6 deletions
|
|
@ -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
|
||||
# ✅ 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)
|
||||
|
||||
# CRITIQUE : S'assurer que CT_Num est bien défini
|
||||
doc_cible.CT_Num = client_code
|
||||
|
||||
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()"
|
||||
|
|
|
|||
Loading…
Reference in a new issue