Update cacheTimestamp and microtime values in config.php for improved caching
This commit is contained in:
@@ -1,75 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace Espo\Custom\Hooks\CKndigung;
|
||||
|
||||
use Espo\Core\Hook\Hook\AfterRelate;
|
||||
use Espo\Core\Hook\Hook\AfterUnrelate;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\ORM\Repository\Option\RelateOptions;
|
||||
use Espo\ORM\Repository\Option\UnrelateOptions;
|
||||
|
||||
/**
|
||||
* Hook for synchronizing documents bidirectionally between Kündigung and Mietverhältnis
|
||||
* When documents are added to Kündigung, they should also be linked to the related Mietverhältnis
|
||||
*/
|
||||
class DocumentSync implements AfterRelate, AfterUnrelate
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* After a document is related to Kündigung, also relate it to the linked Mietverhältnis
|
||||
*/
|
||||
public function afterRelate(Entity $entity, string $relationName, Entity $foreignEntity, RelateOptions $options): void
|
||||
{
|
||||
// Only process when relating documents to Kündigung
|
||||
if ($relationName !== 'dokumenteskuendigung') {
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the related Mietverhältnis
|
||||
$mietverhältnisList = $entity->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.
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user