. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Modules\Crm\Hooks\Meeting; use Espo\Core\ORM\Repository\Option\SaveOption; use Espo\Entities\Email; use Espo\ORM\EntityManager; use Espo\ORM\Entity; class EmailCreatedEvent { private EntityManager $entityManager; public function __construct(EntityManager $entityManager) { $this->entityManager = $entityManager; } /** * @param array $options */ public function afterRemove(Entity $entity, array $options): void { if (!empty($options[SaveOption::SILENT])) { return; } $updateQuery = $this->entityManager ->getQueryBuilder() ->update() ->in(Email::ENTITY_TYPE) ->set([ 'createdEventId' => null, 'createdEventType' => null, ]) ->where([ 'createdEventId' => $entity->getId(), 'createdEventType' => $entity->getEntityType() ]) ->limit(1) ->build(); $this->entityManager->getQueryExecutor()->execute($updateQuery); } }