formula attribute fetch phone email
This commit is contained in:
@@ -29,9 +29,13 @@
|
||||
|
||||
namespace Espo\Core\Formula;
|
||||
|
||||
use Espo\Entities\EmailAddress;
|
||||
use Espo\Entities\PhoneNumber;
|
||||
use Espo\ORM\Entity;
|
||||
use Espo\Core\ORM\Entity as CoreEntity;
|
||||
use Espo\ORM\EntityManager;
|
||||
use Espo\Repositories\EmailAddress as EmailAddressRepository;
|
||||
use Espo\Repositories\PhoneNumber as PhoneNumberRepository;
|
||||
|
||||
/**
|
||||
* Fetches attributes from an entity.
|
||||
@@ -111,6 +115,44 @@ class AttributeFetcher
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($entity->getAttributeParam($attribute, 'isEmailAddressData')) {
|
||||
/** @var ?string $fieldName */
|
||||
$fieldName = $entity->getAttributeParam($attribute, 'field');
|
||||
|
||||
if (!$fieldName) {
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var EmailAddressRepository $emailAddressRepository */
|
||||
$emailAddressRepository = $this->entityManager->getRepository(EmailAddress::ENTITY_TYPE);
|
||||
|
||||
$data = $emailAddressRepository->getEmailAddressData($entity);
|
||||
|
||||
$entity->set($attribute, $data);
|
||||
$entity->setFetched($attribute, $data);;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($entity->getAttributeParam($attribute, 'isPhoneNumberData')) {
|
||||
/** @var ?string $fieldName */
|
||||
$fieldName = $entity->getAttributeParam($attribute, 'field');
|
||||
|
||||
if (!$fieldName) {
|
||||
return;
|
||||
}
|
||||
|
||||
/** @var PhoneNumberRepository $phoneNumberRepository */
|
||||
$phoneNumberRepository = $this->entityManager->getRepository(PhoneNumber::ENTITY_TYPE);
|
||||
|
||||
$data = $phoneNumberRepository->getPhoneNumberData($entity);
|
||||
|
||||
$entity->set($attribute, $data);
|
||||
$entity->setFetched($attribute, $data);;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
public function resetRuntimeCache(): void
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
|
||||
namespace Espo\Core\Utils\Database\Orm\Fields;
|
||||
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
class Email extends Base
|
||||
{
|
||||
/**
|
||||
@@ -174,9 +176,11 @@ class Email extends Base
|
||||
'fields' => [
|
||||
$fieldName => $mainFieldDefs,
|
||||
$fieldName . 'Data' => [
|
||||
'type' => 'text',
|
||||
'type' => Entity::JSON_ARRAY,
|
||||
'notStorable' => true,
|
||||
'notExportable' => true,
|
||||
'isEmailAddressData' => true,
|
||||
'field' => $fieldName,
|
||||
],
|
||||
$fieldName .'IsOptedOut' => [
|
||||
'type' => 'bool',
|
||||
|
||||
@@ -29,6 +29,8 @@
|
||||
|
||||
namespace Espo\Core\Utils\Database\Orm\Fields;
|
||||
|
||||
use Espo\ORM\Entity;
|
||||
|
||||
class Phone extends Base
|
||||
{
|
||||
/**
|
||||
@@ -270,9 +272,11 @@ class Phone extends Base
|
||||
'fields' => [
|
||||
$fieldName => $mainFieldDefs,
|
||||
$fieldName . 'Data' => [
|
||||
'type' => 'text',
|
||||
'type' => Entity::JSON_ARRAY,
|
||||
'notStorable' => true,
|
||||
'notExportable' => true,
|
||||
'isPhoneNumberData' => true,
|
||||
'field' => $fieldName,
|
||||
],
|
||||
$fieldName .'IsOptedOut' => [
|
||||
'type' => 'bool',
|
||||
|
||||
Reference in New Issue
Block a user