This commit is contained in:
Yuri Kuznetsov
2023-05-01 11:50:55 +03:00
parent f565f4cf04
commit 7960eb87cc
4 changed files with 15 additions and 7 deletions
@@ -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
@@ -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++;
}
@@ -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()]);
}
/**
@@ -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