diff --git a/application/Espo/Hooks/LayoutSet/Removal.php b/application/Espo/Hooks/LayoutSet/Removal.php new file mode 100644 index 0000000000..5dd71d2491 --- /dev/null +++ b/application/Espo/Hooks/LayoutSet/Removal.php @@ -0,0 +1,85 @@ +entityManager = $entityManager; + } + + /** + * @param LayoutSet $entity + */ + public function afterRemove(Entity $entity): void + { + $updateQuery1 = $this->entityManager + ->getQueryBuilder() + ->update() + ->in(Team::ENTITY_TYPE) + ->set([ + 'layoutSetId' => null, + ]) + ->where([ + 'layoutSetId' => $entity->getId(), + ]) + ->build(); + + $this->entityManager + ->getQueryExecutor() + ->execute($updateQuery1); + + $updateQuery2 = $this->entityManager + ->getQueryBuilder() + ->update() + ->in(Portal::ENTITY_TYPE) + ->set([ + 'layoutSetId' => null, + ]) + ->where([ + 'layoutSetId' => $entity->getId(), + ]) + ->build(); + + $this->entityManager + ->getQueryExecutor() + ->execute($updateQuery2); + } +} diff --git a/application/Espo/Repositories/LayoutSet.php b/application/Espo/Repositories/LayoutSet.php index 84793c14f6..9402223226 100644 --- a/application/Espo/Repositories/LayoutSet.php +++ b/application/Espo/Repositories/LayoutSet.php @@ -64,6 +64,8 @@ class LayoutSet extends \Espo\Core\Repositories\Database protected function afterRemove(Entity $entity, array $options = []) { + parent::afterRemove($entity); + $layoutList = $this->entityManager ->getRDBRepository('LayoutRecord') ->where([