feat: Enhance sync conflict detection and resolution logic in BeteiligteSync class
This commit is contained in:
@@ -30,8 +30,9 @@ class BeteiligteMapper:
|
||||
"""
|
||||
logger.debug(f"Mapping EspoCRM → Advoware STAMMDATEN: {espo_entity.get('id')}")
|
||||
|
||||
# Bestimme ob Person oder Firma
|
||||
is_firma = bool(espo_entity.get('firmenname'))
|
||||
# Bestimme ob Person oder Firma (über firmenname-Feld)
|
||||
firmenname = espo_entity.get('firmenname')
|
||||
is_firma = bool(firmenname and firmenname.strip())
|
||||
rechtsform = espo_entity.get('rechtsform', '')
|
||||
|
||||
# Basis-Struktur (nur Stammdaten, keine Kontaktdaten!)
|
||||
@@ -41,11 +42,11 @@ class BeteiligteMapper:
|
||||
|
||||
# NAME: Person vs. Firma
|
||||
if is_firma:
|
||||
# Firma: name = firmenname
|
||||
advo_data['name'] = espo_entity.get('firmenname', '')
|
||||
# Firma: Lese von firmenname-Feld
|
||||
advo_data['name'] = firmenname
|
||||
advo_data['vorname'] = None
|
||||
else:
|
||||
# Person: name = lastName, vorname = firstName
|
||||
# Natürliche Person: Lese von lastName/firstName
|
||||
advo_data['name'] = espo_entity.get('lastName', '')
|
||||
advo_data['vorname'] = espo_entity.get('firstName', '')
|
||||
|
||||
@@ -100,17 +101,19 @@ class BeteiligteMapper:
|
||||
'advowareRowId': advo_entity.get('rowId'), # Änderungserkennung
|
||||
}
|
||||
|
||||
# NAME: Person vs. Firma
|
||||
# NAME: Person vs. Firma (EspoCRM blendet lastName/firstName aus bei Firmen)
|
||||
if is_person:
|
||||
# Person
|
||||
# Natürliche Person → lastName/firstName verwenden
|
||||
espo_data['firstName'] = vorname
|
||||
espo_data['lastName'] = advo_entity.get('name', '')
|
||||
espo_data['name'] = f"{vorname} {advo_entity.get('name', '')}".strip()
|
||||
espo_data['firmenname'] = None
|
||||
espo_data['firmenname'] = None # Firma-Feld leer lassen
|
||||
else:
|
||||
# Firma
|
||||
espo_data['firmenname'] = advo_entity.get('name', '')
|
||||
espo_data['name'] = advo_entity.get('name', '')
|
||||
# Firma → firmenname verwenden (EspoCRM zeigt dann nur dieses Feld)
|
||||
firma_name = advo_entity.get('name', '')
|
||||
espo_data['firmenname'] = firma_name
|
||||
espo_data['name'] = firma_name
|
||||
# lastName/firstName nicht setzen (EspoCRM blendet sie aus bei Firmen)
|
||||
espo_data['firstName'] = None
|
||||
espo_data['lastName'] = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user