diff --git a/application/Espo/Core/Action/Actions/ConvertCurrency.php b/application/Espo/Core/Action/Actions/ConvertCurrency.php index 5170f91aed..436f4297b0 100644 --- a/application/Espo/Core/Action/Actions/ConvertCurrency.php +++ b/application/Espo/Core/Action/Actions/ConvertCurrency.php @@ -41,7 +41,9 @@ use Espo\Core\Exceptions\BadRequest; use Espo\Core\Exceptions\Forbidden; use Espo\Core\Exceptions\NotFound; use Espo\Core\ORM\EntityManager; +use Espo\Core\ORM\Repository\Option\SaveOption; use Espo\Core\Utils\Metadata; +use Espo\Entities\User; use Espo\Tools\Currency\Conversion\EntityConverterFactory; use RuntimeException; @@ -52,7 +54,8 @@ class ConvertCurrency implements Action private Acl $acl, private EntityManager $entityManager, private Metadata $metadata, - private CurrencyConfigDataProvider $configDataProvider + private CurrencyConfigDataProvider $configDataProvider, + private User $user ) {} public function process(Params $params, Data $data): void @@ -97,6 +100,8 @@ class ConvertCurrency implements Action $converter = $this->converterFactory->create($entityType); $converter->convert($entity, $targetCurrency, $rates); + + $this->entityManager->saveEntity($entity, [SaveOption::MODIFIED_BY_ID => $this->user->getId()]); } private function getRatesFromData(Data $data): ?CurrencyRates diff --git a/application/Espo/Core/MassAction/Actions/MassConvertCurrency.php b/application/Espo/Core/MassAction/Actions/MassConvertCurrency.php index 0ddc544117..ced973ac2f 100644 --- a/application/Espo/Core/MassAction/Actions/MassConvertCurrency.php +++ b/application/Espo/Core/MassAction/Actions/MassConvertCurrency.php @@ -42,7 +42,9 @@ use Espo\Core\MassAction\QueryBuilder; use Espo\Core\MassAction\Result; use Espo\Core\ORM\Entity as CoreEntity; use Espo\Core\ORM\EntityManager; +use Espo\Core\ORM\Repository\Option\SaveOption; use Espo\Core\Utils\Metadata; +use Espo\Entities\User; use Espo\Tools\Currency\Conversion\EntityConverterFactory; use RuntimeException; @@ -54,7 +56,8 @@ class MassConvertCurrency implements MassAction private EntityManager $entityManager, private Metadata $metadata, private CurrencyConfigDataProvider $configDataProvider, - private EntityConverterFactory $converterFactory + private EntityConverterFactory $converterFactory, + private User $user ) {} public function process(Params $params, Data $data): Result @@ -115,6 +118,8 @@ class MassConvertCurrency implements MassAction $converter->convert($entity, $targetCurrency, $rates); + $this->entityManager->saveEntity($entity, [SaveOption::MODIFIED_BY_ID => $this->user->getId()]); + $ids[] = $entity->getId(); $count++; } diff --git a/application/Espo/Tools/Currency/Conversion/DefaultEntityConverter.php b/application/Espo/Tools/Currency/Conversion/DefaultEntityConverter.php index 6528a5387b..8d4368603d 100644 --- a/application/Espo/Tools/Currency/Conversion/DefaultEntityConverter.php +++ b/application/Espo/Tools/Currency/Conversion/DefaultEntityConverter.php @@ -36,7 +36,6 @@ use Espo\Core\Currency\Rates; use Espo\Core\Field\Currency; use Espo\Core\ORM\Entity as CoreEntity; use Espo\Core\Utils\Metadata; -use Espo\Entities\User; use Espo\ORM\Entity; use Espo\ORM\EntityManager; use LogicException; @@ -50,8 +49,7 @@ class DefaultEntityConverter implements EntityConverter private Converter $converter, private EntityManager $entityManager, private Metadata $metadata, - private Acl $acl, - private User $user + private Acl $acl ) {} /** @@ -88,8 +86,6 @@ class DefaultEntityConverter implements EntityConverter $entity->setValueObject($field, $convertedValue); } - - $this->entityManager->saveEntity($entity, ['modifiedById' => $this->user->getId()]); } /** diff --git a/application/Espo/Tools/Currency/Conversion/EntityConverter.php b/application/Espo/Tools/Currency/Conversion/EntityConverter.php index 0482625248..a868e8eb4e 100644 --- a/application/Espo/Tools/Currency/Conversion/EntityConverter.php +++ b/application/Espo/Tools/Currency/Conversion/EntityConverter.php @@ -33,6 +33,8 @@ use Espo\Core\Currency\Rates; use Espo\ORM\Entity; /** + * Converts entity currency values. Is not supposed to save the entity. + * * @template TEntity of Entity */ interface EntityConverter