From 1eebc62039d6c83e34ffb01ef6ef021e823f297d Mon Sep 17 00:00:00 2001 From: bsiggel Date: Sat, 7 Feb 2026 23:13:41 +0100 Subject: [PATCH] feat: Add advowareRowId field to CBeteiligte entity and update related metadata and layouts --- .../Resources/i18n/de_DE/CBeteiligte.json | 2 ++ .../Resources/i18n/en_US/CBeteiligte.json | 6 +++-- .../Resources/layouts/CBeteiligte/detail.json | 6 +++++ .../metadata/entityDefs/CBeteiligte.json | 23 +++++++++++++------ data/config.php | 2 +- data/state.php | 4 ++-- 6 files changed, 31 insertions(+), 12 deletions(-) diff --git a/custom/Espo/Custom/Resources/i18n/de_DE/CBeteiligte.json b/custom/Espo/Custom/Resources/i18n/de_DE/CBeteiligte.json index 746dea54..fb99a894 100644 --- a/custom/Espo/Custom/Resources/i18n/de_DE/CBeteiligte.json +++ b/custom/Espo/Custom/Resources/i18n/de_DE/CBeteiligte.json @@ -28,6 +28,7 @@ "advowareDeletedAt": "In Advoware gelöscht am", "syncErrorMessage": "Sync-Fehler Details", "syncRetryCount": "Sync-Wiederholungsversuche", + "advowareRowId": "Advoware Datensatz-ID", "disgTyp": "Persönlichkeitstyp (nach DISG)" }, "links": { @@ -60,6 +61,7 @@ "advowareDeletedAt": "Zeitpunkt wann Beteiligter in Advoware gelöscht wurde", "syncErrorMessage": "Detaillierte Fehlermeldung bei Sync-Problemen", "syncRetryCount": "Anzahl der bisherigen Wiederholungsversuche bei fehlgeschlagenem Sync", + "advowareRowId": "Eindeutige Datensatz-ID aus der Advoware-Datenbank (ROWID)", "rechtsform": "Rechtsform des Beteiligten (natürliche Person oder juristische Person)", "firmenname": "Name der Firma oder Organisation (nur bei juristischen Personen)", "handelsregisterNummer": "Nummer im Handelsregister (z.B. 12345)", diff --git a/custom/Espo/Custom/Resources/i18n/en_US/CBeteiligte.json b/custom/Espo/Custom/Resources/i18n/en_US/CBeteiligte.json index 7f6ab50b..6fca6018 100644 --- a/custom/Espo/Custom/Resources/i18n/en_US/CBeteiligte.json +++ b/custom/Espo/Custom/Resources/i18n/en_US/CBeteiligte.json @@ -20,7 +20,8 @@ "syncStatus": "Sync Status", "advowareDeletedAt": "Deleted in Advoware At", "syncErrorMessage": "Sync Error Details", - "syncRetryCount": "Sync Retry Count" + "syncRetryCount": "Sync Retry Count", + "advowareRowId": "Advoware Record ID" }, "links": { "meetings": "Meetings", @@ -50,7 +51,8 @@ "syncStatus": "Synchronization status:\n\npending_sync = Waiting for sync\nclean = Synchronized\ndirty = Changed (to be synced)\nsyncing = Sync in progress...\nfailed = Sync failed\nconflict = Conflict (EspoCRM wins)\ndeleted_in_advoware = Deleted in Advoware", "advowareDeletedAt": "Timestamp when participant was deleted in Advoware", "syncErrorMessage": "Detailed error message for sync problems", - "syncRetryCount": "Number of retry attempts for failed sync" + "syncRetryCount": "Number of retry attempts for failed sync", + "advowareRowId": "Unique record ID from Advoware database (ROWID)" }, "options": { "syncStatus": { diff --git a/custom/Espo/Custom/Resources/layouts/CBeteiligte/detail.json b/custom/Espo/Custom/Resources/layouts/CBeteiligte/detail.json index 0afd4cfe..a9cbb918 100644 --- a/custom/Espo/Custom/Resources/layouts/CBeteiligte/detail.json +++ b/custom/Espo/Custom/Resources/layouts/CBeteiligte/detail.json @@ -63,6 +63,12 @@ "name": "syncStatus" } ], + [ + { + "name": "advowareRowId" + }, + {} + ], [ { "name": "advowareLastSync" diff --git a/custom/Espo/Custom/Resources/metadata/entityDefs/CBeteiligte.json b/custom/Espo/Custom/Resources/metadata/entityDefs/CBeteiligte.json index 387e3298..74b8e0fa 100644 --- a/custom/Espo/Custom/Resources/metadata/entityDefs/CBeteiligte.json +++ b/custom/Espo/Custom/Resources/metadata/entityDefs/CBeteiligte.json @@ -54,7 +54,7 @@ "lastName": { "type": "varchar", "maxLength": 100, - "required": true, + "required": false, "copyToClipboard": true }, "dateOfBirth": { @@ -125,15 +125,18 @@ "isCustom": true }, "advowareLastSync": { + "notNull": false, "type": "datetime", "required": false, - "readOnly": true, + "readOnly": false, "tooltip": true, - "isCustom": true + "isCustom": true, + "audited": true, + "minuteStep": 1 }, "syncStatus": { "type": "enum", - "required": true, + "required": false, "options": [ "pending_sync", "clean", @@ -159,14 +162,12 @@ "advowareDeletedAt": { "type": "datetime", "required": false, - "readOnly": true, "tooltip": true, "isCustom": true }, "syncErrorMessage": { "type": "text", "required": false, - "readOnly": true, "maxLength": 2000, "tooltip": true, "isCustom": true @@ -174,11 +175,19 @@ "syncRetryCount": { "type": "int", "required": false, - "readOnly": true, "default": 0, "tooltip": true, "isCustom": true }, + "advowareRowId": { + "type": "varchar", + "maxLength": 50, + "required": false, + "readOnly": false, + "tooltip": true, + "isCustom": true, + "options": [] + }, "handelsregisterNummer": { "type": "varchar", "required": false, diff --git a/data/config.php b/data/config.php index eef0aa15..49b90894 100644 --- a/data/config.php +++ b/data/config.php @@ -357,7 +357,7 @@ return [ 0 => 'youtube.com', 1 => 'google.com' ], - 'microtime' => 1770478069.62583, + 'microtime' => 1770501824.337884, 'siteUrl' => 'https://crm.bitbylaw.com', 'fullTextSearchMinLength' => 4, 'webSocketUrl' => 'ws://api.bitbylaw.com:5000/espocrm/ws', diff --git a/data/state.php b/data/state.php index 69ec2f4a..89c1af1f 100644 --- a/data/state.php +++ b/data/state.php @@ -1,7 +1,7 @@ 1770478069, - 'microtimeState' => 1770478069.750671, + 'cacheTimestamp' => 1770501824, + 'microtimeState' => 1770501824.458453, 'currencyRates' => [ 'EUR' => 1.0 ],