From 79ef327953792d4288d7eb3e7e4dfcbbaba5993a Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Thu, 14 Nov 2024 14:22:23 +0200 Subject: [PATCH] ref --- .../Core/Mail/Importer/DefaultImporter.php | 2 +- application/Espo/Core/ORM/Entity.php | 3 ++- application/Espo/Entities/Email.php | 20 ++++++------------- .../Classes/RecordHooks/Case/AfterCreate.php | 3 +-- application/Espo/Repositories/Email.php | 5 ++--- 5 files changed, 12 insertions(+), 21 deletions(-) diff --git a/application/Espo/Core/Mail/Importer/DefaultImporter.php b/application/Espo/Core/Mail/Importer/DefaultImporter.php index 3966e4f42f..f49f946edd 100644 --- a/application/Espo/Core/Mail/Importer/DefaultImporter.php +++ b/application/Espo/Core/Mail/Importer/DefaultImporter.php @@ -172,7 +172,7 @@ class DefaultImporter implements Importer $parentFound = $this->parentFinder->find($email, $message); if ($parentFound) { - $email->setParent(LinkParent::createFromEntity($parentFound)); + $email->setParent($parentFound); } if (!$duplicate) { diff --git a/application/Espo/Core/ORM/Entity.php b/application/Espo/Core/ORM/Entity.php index 73210af59e..b2185a0683 100644 --- a/application/Espo/Core/ORM/Entity.php +++ b/application/Espo/Core/ORM/Entity.php @@ -33,6 +33,7 @@ use Espo\Core\Field\Link; use Espo\Core\Field\LinkParent; use Espo\Core\ORM\Defs\AttributeParam; use Espo\ORM\BaseEntity; +use Espo\ORM\Entity as OrmEntity; use Espo\ORM\Name\Attribute; use Espo\ORM\Query\Part\Order; use Espo\ORM\Type\AttributeType; @@ -640,7 +641,7 @@ class Entity extends BaseEntity /** * @since 9.0.0 */ - protected function setRelatedLinkOrEntity(string $relation, Link|LinkParent|Entity|null $related): static + protected function setRelatedLinkOrEntity(string $relation, Link|LinkParent|OrmEntity|null $related): static { if ($related instanceof Entity || $related === null) { $this->relations->set($relation, $related); diff --git a/application/Espo/Entities/Email.php b/application/Espo/Entities/Email.php index 84d28e4009..489d00aa01 100644 --- a/application/Espo/Entities/Email.php +++ b/application/Espo/Entities/Email.php @@ -36,7 +36,9 @@ use Espo\Core\ORM\Entity; use Espo\Core\Field\DateTime; use Espo\Core\Field\LinkParent; use Espo\Core\Field\Link; +use Espo\Modules\Crm\Entities\Account; use Espo\ORM\Collection; +use Espo\ORM\Entity as OrmEntity; use Espo\Repositories\Email as EmailRepository; use Espo\Tools\Email\Util as EmailUtil; @@ -651,24 +653,14 @@ class Email extends Entity return $this->getValueObject(Field::PARENT); } - public function setAccount(?Link $account): self + public function setAccount(Link|Account|null $account): self { - $this->setValueObject('account', $account); - - return $this; + return $this->setRelatedLinkOrEntity('account', $account); } - public function setParent(LinkParent|Entity|null $parent): self + public function setParent(LinkParent|OrmEntity|null $parent): self { - if ($parent instanceof LinkParent) { - $this->setValueObject(Field::PARENT, $parent); - - return $this; - } - - $this->relations->set(Field::PARENT, $parent); - - return $this; + return $this->setRelatedLinkOrEntity(Field::PARENT, $parent); } public function getStatus(): ?string diff --git a/application/Espo/Modules/Crm/Classes/RecordHooks/Case/AfterCreate.php b/application/Espo/Modules/Crm/Classes/RecordHooks/Case/AfterCreate.php index ddee7d995d..a399ab81f4 100644 --- a/application/Espo/Modules/Crm/Classes/RecordHooks/Case/AfterCreate.php +++ b/application/Espo/Modules/Crm/Classes/RecordHooks/Case/AfterCreate.php @@ -30,7 +30,6 @@ namespace Espo\Modules\Crm\Classes\RecordHooks\Case; use Espo\Core\Acl; -use Espo\Core\Field\LinkParent; use Espo\Core\Record\Hook\SaveHook; use Espo\Entities\Email; use Espo\Modules\Crm\Entities\CaseObj; @@ -63,7 +62,7 @@ class AfterCreate implements SaveHook return; } - $email->setParent(LinkParent::createFromEntity($entity)); + $email->setParent($entity); $this->entityManager->saveEntity($email); } diff --git a/application/Espo/Repositories/Email.php b/application/Espo/Repositories/Email.php index b998274e10..4442962b23 100644 --- a/application/Espo/Repositories/Email.php +++ b/application/Espo/Repositories/Email.php @@ -434,11 +434,10 @@ class Email extends Database implements } if ($accountId) { - /** @var ?Account $account */ - $account = $this->entityManager->getEntityById(Account::ENTITY_TYPE, $accountId); + $account = $this->entityManager->getRDBRepositoryByClass(Account::class)->getById($accountId); if ($account) { - $entity->setAccount(Link::create($accountId, $account->getName())); + $entity->setAccount($account); } } }