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:
|
if not client_obj_cible:
|
||||||
raise ValueError(f"Impossible de charger client {client_code}")
|
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
|
||||||
doc_cible.SetDefaultClient(client_obj_cible)
|
# SetClient définit UNIQUEMENT le client sans réinitialiser les autres champs
|
||||||
|
try:
|
||||||
# CRITIQUE : S'assurer que CT_Num est bien défini
|
doc_cible.SetClient(client_obj_cible)
|
||||||
doc_cible.CT_Num = client_code
|
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()
|
doc_cible.Write()
|
||||||
|
|
||||||
# Vérifier immédiatement que le client est bien attaché
|
# Vérifier que le client est bien attaché
|
||||||
doc_cible.Read()
|
doc_cible.Read()
|
||||||
client_verifie = getattr(doc_cible, "CT_Num", None)
|
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:
|
if not client_verifie:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
f"Échec association client {client_code} - CT_Num reste vide après Write()"
|
f"Échec association client {client_code} - CT_Num reste vide après Write()"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue