feat: Update dateOfBirth mapping and enhance rowId handling in sync process for Beteiligte

This commit is contained in:
2026-02-07 22:27:29 +00:00
parent d5bc17e454
commit d10554ea9d
3 changed files with 14 additions and 3 deletions

View File

@@ -140,10 +140,11 @@ class BeteiligteMapper:
if zusatz: if zusatz:
espo_data['zusatz'] = zusatz espo_data['zusatz'] = zusatz
# GEBURTSDATUM # GEBURTSDATUM (nur Datum-Teil ohne Zeit)
geburtsdatum = advo_entity.get('geburtsdatum') geburtsdatum = advo_entity.get('geburtsdatum')
if geburtsdatum: if geburtsdatum:
espo_data['dateOfBirth'] = geburtsdatum # Advoware gibt '2001-01-05T00:00:00', EspoCRM will nur '2001-01-05'
espo_data['dateOfBirth'] = geburtsdatum.split('T')[0] if 'T' in geburtsdatum else geburtsdatum
# HINWEIS: handelsRegisterNummer und registergericht werden NICHT gemappt # HINWEIS: handelsRegisterNummer und registergericht werden NICHT gemappt
# Advoware ignoriert diese Felder im PUT (trotz Swagger Schema) # Advoware ignoriert diese Felder im PUT (trotz Swagger Schema)
@@ -151,6 +152,9 @@ class BeteiligteMapper:
logger.debug(f"Mapped to EspoCRM STAMMDATEN: name={espo_data.get('name')}") logger.debug(f"Mapped to EspoCRM STAMMDATEN: name={espo_data.get('name')}")
# WICHTIG: Entferne None-Werte (EspoCRM mag keine expliziten None bei required fields)
espo_data = {k: v for k, v in espo_data.items() if v is not None}
return espo_data return espo_data
@staticmethod @staticmethod

View File

@@ -259,6 +259,13 @@ async def handle_update(entity_id, betnr, espo_entity, espocrm, advoware, sync_u
elif isinstance(put_result, dict): elif isinstance(put_result, dict):
new_rowid = put_result.get('rowId') new_rowid = put_result.get('rowId')
# Schreibe neue rowId zurück nach EspoCRM
if new_rowid:
await espocrm.update_entity('CBeteiligte', entity_id, {
'advowareRowId': new_rowid
})
context.logger.info(f"📝 rowId in EspoCRM aktualisiert: {new_rowid[:20]}...")
await sync_utils.release_sync_lock( await sync_utils.release_sync_lock(
entity_id, entity_id,
'clean', 'clean',

2
bitbylaw/types.d.ts vendored
View File

@@ -12,7 +12,7 @@ declare module 'motia' {
} }
interface Handlers { interface Handlers {
'VMH Beteiligte Sync': EventHandler<never, never> 'VMH Beteiligte Sync Handler': EventHandler<never, never>
'VMH Webhook Beteiligte Update': ApiRouteHandler<Record<string, unknown>, unknown, { topic: 'vmh.beteiligte.update'; data: never }> 'VMH Webhook Beteiligte Update': ApiRouteHandler<Record<string, unknown>, unknown, { topic: 'vmh.beteiligte.update'; data: never }>
'VMH Webhook Beteiligte Delete': ApiRouteHandler<Record<string, unknown>, unknown, { topic: 'vmh.beteiligte.delete'; data: never }> 'VMH Webhook Beteiligte Delete': ApiRouteHandler<Record<string, unknown>, unknown, { topic: 'vmh.beteiligte.delete'; data: never }>
'VMH Webhook Beteiligte Create': ApiRouteHandler<Record<string, unknown>, unknown, { topic: 'vmh.beteiligte.create'; data: never }> 'VMH Webhook Beteiligte Create': ApiRouteHandler<Record<string, unknown>, unknown, { topic: 'vmh.beteiligte.create'; data: never }>