Refactor AdvowareAkte ↔ CDokumente relationship from junction table to direct n:1 relationship

- Removed CAdvowareAktenCDokumente junction table and associated service.
- Updated CDokumente entity to include foreign key cAdvowareAktenId and related fields.
- Changed relationship in CDokumente from hasMany to belongsTo.
- Updated CAdvowareAkten to reflect new direct relationship.
- Implemented CDokumente service with duplicateDocument method for document duplication.
- Refactored hooks to support new relationship and document propagation.
- Removed obsolete API routes related to the junction table.
- Added i18n translations for new fields and updated tooltips.
- Document flow and auto-linking logic enhanced for better integration with Advoware.
- Validation checks passed, and no data migration needed.
This commit is contained in:
2026-03-23 20:36:10 +01:00
parent 0b829e9dfe
commit 22665948e4
22 changed files with 689 additions and 773 deletions

View File

@@ -108,23 +108,27 @@
"dokumenteHnr": {
"type": "int",
"notStorable": true,
"utility": true
"utility": true,
"disabled": true
},
"dokumenteSyncstatus": {
"type": "enum",
"options": ["new", "unclean", "synced", "failed"],
"notStorable": true,
"utility": true
"utility": true,
"disabled": true
},
"dokumenteLastSync": {
"type": "datetime",
"notStorable": true,
"utility": true
"utility": true,
"disabled": true
},
"dokumenteSyncedHash": {
"type": "varchar",
"notStorable": true,
"utility": true
"utility": true,
"disabled": true
},
"dokumentes": {
"type": "linkMultiple",
@@ -135,16 +139,7 @@
"importDisabled": false,
"exportDisabled": false,
"customizationDisabled": false,
"columns": {
"hnr": "advowareAktenHnr",
"syncstatus": "advowareAktenSyncstatus",
"lastSync": "advowareAktenLastSync",
"syncedHash": "advowareAktenSyncedHash"
},
"additionalAttributeList": [
"columns"
],
"view": "views/fields/link-multiple-with-columns",
"disabled": true,
"isCustom": true
}
},
@@ -202,28 +197,10 @@
},
"dokumentes": {
"type": "hasMany",
"relationName": "cAdvowareAktenDokumente",
"foreign": "advowareAktens",
"foreign": "cAdvowareAkten",
"entity": "CDokumente",
"audited": true,
"isCustom": true,
"additionalColumns": {
"hnr": {
"type": "int"
},
"syncstatus": {
"type": "varchar",
"len": 20
},
"lastSync": {
"type": "datetime"
}
},
"columnAttributeMap": {
"hnr": "dokumenteHnr",
"syncstatus": "dokumenteSyncstatus",
"lastSync": "dokumenteLastSync"
}
"isCustom": true
}
},
"collection": {

View File

@@ -1,89 +0,0 @@
{
"fields": {
"id": {
"type": "id",
"dbType": "bigint",
"autoincrement": true
},
"cAdvowareAkten": {
"type": "link"
},
"cAdvowareAktenId": {
"type": "varchar",
"len": 17,
"index": true
},
"cDokumente": {
"type": "link"
},
"cDokumenteId": {
"type": "varchar",
"len": 17,
"index": true
},
"hnr": {
"type": "varchar",
"len": 255,
"isCustom": true,
"tooltip": true
},
"syncStatus": {
"type": "enum",
"required": false,
"options": [
"new",
"changed",
"synced",
"deleted"
],
"style": {
"new": "info",
"changed": "warning",
"synced": "success",
"deleted": "danger"
},
"default": "new",
"isCustom": true,
"tooltip": true
},
"syncedHash": {
"type": "varchar",
"len": 64,
"isCustom": true,
"tooltip": true
},
"deleted": {
"type": "bool",
"default": false
}
},
"links": {
"cAdvowareAkten": {
"type": "belongsTo",
"entity": "CAdvowareAkten"
},
"cDokumente": {
"type": "belongsTo",
"entity": "CDokumente"
}
},
"collection": {
"orderBy": "id",
"order": "desc"
},
"indexes": {
"cAdvowareAktenId": {
"columns": ["cAdvowareAktenId"]
},
"cDokumenteId": {
"columns": ["cDokumenteId"]
},
"syncStatus": {
"columns": ["syncStatus"]
},
"uniqueRelation": {
"type": "unique",
"columns": ["cAdvowareAktenId", "cDokumenteId", "deleted"]
}
}
}

View File

@@ -61,35 +61,52 @@
"isCustom": true,
"tooltip": true
},
"cAdvowareAktenId": {
"type": "varchar",
"len": 17,
"index": true,
"isCustom": true
},
"cAdvowareAktenName": {
"type": "varchar",
"isCustom": true
},
"hnr": {
"type": "int",
"tooltip": true,
"isCustom": true
},
"syncStatus": {
"type": "enum",
"options": [
"new",
"unclean",
"synced",
"failed",
"unsupported"
],
"style": {
"new": "info",
"unclean": "warning",
"synced": "success",
"failed": "danger",
"unsupported": "default"
},
"default": "new",
"tooltip": true,
"isCustom": true
},
"syncedHash": {
"type": "varchar",
"len": 64,
"tooltip": true,
"isCustom": true
},
"puls": {
"type": "link",
"entity": "CPuls",
"isCustom": true
},
"advowareAktenHnr": {
"type": "int",
"notStorable": true,
"utility": true,
"layoutAvailabilityList": [
"listForAdvowareAkten"
]
},
"advowareAktenSyncstatus": {
"type": "varchar",
"notStorable": true,
"utility": true,
"layoutAvailabilityList": [
"listForAdvowareAkten"
]
},
"advowareAktenLastSync": {
"type": "datetime",
"notStorable": true,
"utility": true,
"layoutAvailabilityList": [
"listForAdvowareAkten"
]
},
"aiKnowledgeAiDocumentId": {
"type": "varchar",
"notStorable": true,
@@ -216,18 +233,12 @@
"audited": false,
"isCustom": true
},
"advowareAktens": {
"type": "hasMany",
"relationName": "cAdvowareAktenDokumente",
"cAdvowareAkten": {
"type": "belongsTo",
"foreign": "dokumentes",
"entity": "CAdvowareAkten",
"audited": false,
"isCustom": true,
"columnAttributeMap": {
"hnr": "advowareAktenHnr",
"syncstatus": "advowareAktenSyncstatus",
"lastSync": "advowareAktenLastSync"
}
"audited": true,
"isCustom": true
},
"aIKnowledges": {
"type": "hasMany",