From 4e3cee4dc83b4088df95f7584f1277e08c9f4da2 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Tue, 2 Aug 2022 11:07:48 +0300 Subject: [PATCH] fix --- .../Meeting/AcceptanceStatusLoader.php | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/application/Espo/Modules/Crm/Classes/FieldProcessing/Meeting/AcceptanceStatusLoader.php b/application/Espo/Modules/Crm/Classes/FieldProcessing/Meeting/AcceptanceStatusLoader.php index c1438af85f..f0098d3878 100644 --- a/application/Espo/Modules/Crm/Classes/FieldProcessing/Meeting/AcceptanceStatusLoader.php +++ b/application/Espo/Modules/Crm/Classes/FieldProcessing/Meeting/AcceptanceStatusLoader.php @@ -36,11 +36,16 @@ use Espo\ORM\EntityManager; use Espo\Core\FieldProcessing\Loader; use Espo\Core\FieldProcessing\Loader\Params; +/** + * @implements Loader<\Espo\Core\ORM\Entity> + */ class AcceptanceStatusLoader implements Loader { private EntityManager $entityManager; private User $user; + private const ATTR_ACCEPTANCE_STATUS = 'acceptanceStatus'; + public function __construct(EntityManager $entityManager, User $user) { $this->entityManager = $entityManager; @@ -49,17 +54,15 @@ class AcceptanceStatusLoader implements Loader public function process(Entity $entity, Params $params): void { - $select = $params->getSelect(); - - if (count($select) === 0 || $select === null) { + if (!$params->hasInSelect(self::ATTR_ACCEPTANCE_STATUS)) { return; } - if ($entity->has('acceptanceStatus')) { + if ($entity->has(self::ATTR_ACCEPTANCE_STATUS)) { return; } - $attribute = 'acceptanceStatus'; + $attribute = self::ATTR_ACCEPTANCE_STATUS; $user = $this->entityManager ->getRDBRepository($entity->getEntityType()) @@ -70,6 +73,12 @@ class AcceptanceStatusLoader implements Loader ->select([$attribute]) ->findOne(); - $entity->set('acceptanceStatus', $user->get($attribute)); + $value = null; + + if ($user) { + $value = $user->get($attribute); + } + + $entity->set(self::ATTR_ACCEPTANCE_STATUS, $value); } }