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:
@@ -52,6 +52,18 @@ class PropagateDocumentsUp implements AfterRelate, AfterUnrelate
|
||||
|
||||
if ($raumungsklage) {
|
||||
$this->relateDocument($raumungsklage, 'dokumentesvmhraumungsklage', $foreignEntity);
|
||||
|
||||
// Also link to AdvowareAkte if Räumungsklage has one
|
||||
$advowareAkte = $this->entityManager
|
||||
->getRDBRepository('CVmhRumungsklage')
|
||||
->getRelation($raumungsklage, 'advowareAkten')
|
||||
->findOne();
|
||||
|
||||
if ($advowareAkte && !$foreignEntity->get('cAdvowareAktenId')) {
|
||||
$foreignEntity->set('cAdvowareAktenId', $advowareAkte->getId());
|
||||
$foreignEntity->set('syncStatus', 'new');
|
||||
$this->entityManager->saveEntity($foreignEntity, ['silent' => true, 'skipHooks' => true]);
|
||||
}
|
||||
}
|
||||
|
||||
// Prüfe ob Mietinkasso verknüpft ist
|
||||
@@ -62,6 +74,18 @@ class PropagateDocumentsUp implements AfterRelate, AfterUnrelate
|
||||
|
||||
if ($mietinkasso) {
|
||||
$this->relateDocument($mietinkasso, 'dokumentesmietinkasso', $foreignEntity);
|
||||
|
||||
// Also link to AdvowareAkte if Mietinkasso has one
|
||||
$advowareAkte = $this->entityManager
|
||||
->getRDBRepository('CMietinkasso')
|
||||
->getRelation($mietinkasso, 'advowareAkten')
|
||||
->findOne();
|
||||
|
||||
if ($advowareAkte && !$foreignEntity->get('cAdvowareAktenId')) {
|
||||
$foreignEntity->set('cAdvowareAktenId', $advowareAkte->getId());
|
||||
$foreignEntity->set('syncStatus', 'new');
|
||||
$this->entityManager->saveEntity($foreignEntity, ['silent' => true, 'skipHooks' => true]);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
@@ -110,6 +134,9 @@ class PropagateDocumentsUp implements AfterRelate, AfterUnrelate
|
||||
$this->unrelateDocument($mietinkasso, 'dokumentesmietinkasso', $foreignEntity);
|
||||
}
|
||||
|
||||
// Note: We don't remove cAdvowareAktenId on unrelate from AIKnowledge
|
||||
// because the document might still be linked to Räumungsklage/Mietinkasso
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$GLOBALS['log']->error('CAIKnowledge PropagateDocumentsUp (unrelate) Error: ' . $e->getMessage());
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user