getLinkMultipleIdList('vmhMietverhltnises'); if (empty($mietverhältnisList)) { return; } // Get EntityManager from entity $entityManager = $entity->getEntityManager(); // Link the document to the Mietverhältnis foreach ($mietverhältnisList as $mietverhältnisId) { $mietverhältnis = $entityManager->getEntityById('CVmhMietverhltnis', $mietverhältnisId); if (!$mietverhältnis) { continue; } // Link document to Mietverhältnis if not already linked $repository = $entityManager->getRDBRepositoryByClass('CVmhMietverhltnis'); $isRelated = $repository->getRelation($mietverhältnis, 'dokumentesvmhMietverhltnisse') ->isRelatedById($foreignEntity->getId()); if (!$isRelated) { $repository->getRelation($mietverhältnis, 'dokumentesvmhMietverhltnisse') ->relateById($foreignEntity->getId()); } } } /** * After a document is unrelated from Kündigung, optionally unrelate from Mietverhältnis * Note: We don't automatically unrelate from Mietverhältnis because the document might * have been added to Mietverhältnis independently */ public function afterUnrelate(Entity $entity, string $relationName, Entity $foreignEntity, UnrelateOptions $options): void { // Only process when unrelating documents from Kündigung if ($relationName !== 'dokumenteskuendigung') { return; } // Note: We intentionally do NOT remove documents from Mietverhältnis // because they might have been added there independently. // Users must manually remove documents from Mietverhältnis if needed. } }