diff --git a/bitbylaw/services/espocrm_mapper.py b/bitbylaw/services/espocrm_mapper.py index f6b06f3e..4de9c9ef 100644 --- a/bitbylaw/services/espocrm_mapper.py +++ b/bitbylaw/services/espocrm_mapper.py @@ -33,11 +33,10 @@ class BeteiligteMapper: # 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!) + # Basis-Struktur (nur die 8 funktionierenden Felder!) advo_data = { - 'rechtsform': rechtsform, + 'rechtsform': espo_entity.get('rechtsform', ''), } # NAME: Person vs. Firma @@ -50,28 +49,33 @@ class BeteiligteMapper: advo_data['name'] = espo_entity.get('lastName', '') advo_data['vorname'] = espo_entity.get('firstName', '') - # ANREDE - salutation = espo_entity.get('salutationName', '') + # ANREDE & TITEL (funktionierende Felder) + salutation = espo_entity.get('salutationName') if 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 date_of_birth = espo_entity.get('dateOfBirth') if date_of_birth: advo_data['geburtsdatum'] = date_of_birth - # HANDELSREGISTER (nur für Firmen) - if is_firma: - hr_nummer = espo_entity.get('handelsregisterNummer') - 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.) + # HINWEIS: handelsRegisterNummer und registergericht funktionieren NICHT! + # Advoware ignoriert diese Felder im PUT (trotz Swagger Schema) + # Siehe: docs/ADVOWARE_BETEILIGTE_FIELDS.md 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['lastName'] = None - # ANREDE + # ANREDE & TITEL anrede = advo_entity.get('anrede') if 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 = advo_entity.get('geburtsdatum') if geburtsdatum: espo_data['dateOfBirth'] = geburtsdatum - # HANDELSREGISTER (nur für Firmen) - if not is_person: - hr_nummer = advo_entity.get('handelsRegisterNummer') - 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 + # HINWEIS: handelsRegisterNummer und registergericht werden NICHT gemappt + # Advoware ignoriert diese Felder im PUT (trotz Swagger Schema) + # Siehe: docs/ADVOWARE_BETEILIGTE_FIELDS.md logger.debug(f"Mapped to EspoCRM STAMMDATEN: name={espo_data.get('name')}")