feat: Enhance mapping logic in BeteiligteMapper for additional fields and improved comments

This commit is contained in:
2026-02-07 21:36:50 +00:00
parent f3d41dbb7f
commit 99fb2e22c7

View File

@@ -33,11 +33,10 @@ class BeteiligteMapper:
# Bestimme ob Person oder Firma (über firmenname-Feld) # Bestimme ob Person oder Firma (über firmenname-Feld)
firmenname = espo_entity.get('firmenname') firmenname = espo_entity.get('firmenname')
is_firma = bool(firmenname and firmenname.strip()) is_firma = bool(firmenname and firmenname.strip())
rechtsform = espo_entity.get('rechtsform', '')
# Basis-Struktur (nur Stammdaten, keine Kontaktdaten!) # Basis-Struktur (nur die 8 funktionierenden Felder!)
advo_data = { advo_data = {
'rechtsform': rechtsform, 'rechtsform': espo_entity.get('rechtsform', ''),
} }
# NAME: Person vs. Firma # NAME: Person vs. Firma
@@ -50,28 +49,33 @@ class BeteiligteMapper:
advo_data['name'] = espo_entity.get('lastName', '') advo_data['name'] = espo_entity.get('lastName', '')
advo_data['vorname'] = espo_entity.get('firstName', '') advo_data['vorname'] = espo_entity.get('firstName', '')
# ANREDE # ANREDE & TITEL (funktionierende Felder)
salutation = espo_entity.get('salutationName', '') salutation = espo_entity.get('salutationName')
if salutation: if salutation:
advo_data['anrede'] = salutation advo_data['anrede'] = salutation
titel = espo_entity.get('titel')
if titel:
advo_data['titel'] = titel
# BRIEFANREDE (bAnrede)
brief_anrede = espo_entity.get('briefAnrede')
if brief_anrede:
advo_data['bAnrede'] = brief_anrede
# ZUSATZ
zusatz = espo_entity.get('zusatz')
if zusatz:
advo_data['zusatz'] = zusatz
# GEBURTSDATUM # GEBURTSDATUM
date_of_birth = espo_entity.get('dateOfBirth') date_of_birth = espo_entity.get('dateOfBirth')
if date_of_birth: if date_of_birth:
advo_data['geburtsdatum'] = date_of_birth advo_data['geburtsdatum'] = date_of_birth
# HANDELSREGISTER (nur für Firmen) # HINWEIS: handelsRegisterNummer und registergericht funktionieren NICHT!
if is_firma: # Advoware ignoriert diese Felder im PUT (trotz Swagger Schema)
hr_nummer = espo_entity.get('handelsregisterNummer') # Siehe: docs/ADVOWARE_BETEILIGTE_FIELDS.md
if hr_nummer:
advo_data['handelsRegisterNummer'] = hr_nummer
# Registergericht
registergericht = espo_entity.get('registergericht')
if registergericht:
advo_data['registergericht'] = registergericht
# TODO: Weitere Stammdaten-Felder hier ergänzen (Steuernummer, etc.)
logger.debug(f"Mapped to Advoware STAMMDATEN: name={advo_data.get('name')}, vorname={advo_data.get('vorname')}, rechtsform={rechtsform}") logger.debug(f"Mapped to Advoware STAMMDATEN: name={advo_data.get('name')}, vorname={advo_data.get('vorname')}, rechtsform={rechtsform}")
@@ -117,29 +121,33 @@ class BeteiligteMapper:
espo_data['firstName'] = None espo_data['firstName'] = None
espo_data['lastName'] = None espo_data['lastName'] = None
# ANREDE # ANREDE & TITEL
anrede = advo_entity.get('anrede') anrede = advo_entity.get('anrede')
if anrede: if anrede:
espo_data['salutationName'] = anrede espo_data['salutationName'] = anrede
titel = advo_entity.get('titel')
if titel:
espo_data['titel'] = titel
# BRIEFANREDE
b_anrede = advo_entity.get('bAnrede')
if b_anrede:
espo_data['briefAnrede'] = b_anrede
# ZUSATZ
zusatz = advo_entity.get('zusatz')
if zusatz:
espo_data['zusatz'] = zusatz
# GEBURTSDATUM # GEBURTSDATUM
geburtsdatum = advo_entity.get('geburtsdatum') geburtsdatum = advo_entity.get('geburtsdatum')
if geburtsdatum: if geburtsdatum:
espo_data['dateOfBirth'] = geburtsdatum espo_data['dateOfBirth'] = geburtsdatum
# HANDELSREGISTER (nur für Firmen) # HINWEIS: handelsRegisterNummer und registergericht werden NICHT gemappt
if not is_person: # Advoware ignoriert diese Felder im PUT (trotz Swagger Schema)
hr_nummer = advo_entity.get('handelsRegisterNummer') # Siehe: docs/ADVOWARE_BETEILIGTE_FIELDS.md
if hr_nummer:
espo_data['handelsregisterNummer'] = hr_nummer
# Registergericht
registergericht = advo_entity.get('registergericht')
if registergericht:
espo_data['registergericht'] = registergericht
# TODO: Weitere Stammdaten-Felder hier ergänzen
# HINWEIS: Kontaktdaten (Telefon, Email, Fax) werden über separate Endpoints gesynct
logger.debug(f"Mapped to EspoCRM STAMMDATEN: name={espo_data.get('name')}") logger.debug(f"Mapped to EspoCRM STAMMDATEN: name={espo_data.get('name')}")