From b745adaaa406c8e92bcdeb2e0167ba059dac0d23 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sat, 13 Dec 2025 16:44:18 +0200 Subject: [PATCH] ref --- .../Espo/Hooks/Common/CurrencyConverted.php | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/application/Espo/Hooks/Common/CurrencyConverted.php b/application/Espo/Hooks/Common/CurrencyConverted.php index ca7dffc028..55db080419 100644 --- a/application/Espo/Hooks/Common/CurrencyConverted.php +++ b/application/Espo/Hooks/Common/CurrencyConverted.php @@ -29,17 +29,20 @@ namespace Espo\Hooks\Common; +use Espo\Core\Currency\ConfigDataProvider; use Espo\Core\ORM\Type\FieldType; +use Espo\Core\Utils\Metadata; use Espo\ORM\Entity; -use Espo\Core\Di; -class CurrencyConverted implements Di\MetadataAware, Di\ConfigAware +class CurrencyConverted { - use Di\MetadataSetter; - use Di\ConfigSetter; - public static int $order = 1; + public function __construct( + private ConfigDataProvider $configDataProvider, + private Metadata $metadata, + ) {} + public function beforeSave(Entity $entity): void { $fieldDefs = $this->metadata->get(['entityDefs', $entity->getEntityType(), 'fields'], []); @@ -77,14 +80,13 @@ class CurrencyConverted implements Di\MetadataAware, Di\ConfigAware continue; } - $rates = $this->config->get('currencyRates', []); - $baseCurrency = $this->config->get('baseCurrency'); - $defaultCurrency = $this->config->get('defaultCurrency'); + $rates = $this->configDataProvider->getCurrencyRates()->toAssoc(); + $baseCurrency = $this->configDataProvider->getBaseCurrency(); + $defaultCurrency = $this->configDataProvider->getDefaultCurrency(); - if ($defaultCurrency === $currency) { - $targetValue = $value; - } else { - $targetValue = $value; + $targetValue = $value; + + if ($defaultCurrency !== $currency) { $targetValue = $targetValue / ($rates[$baseCurrency] ?? 1.0); $targetValue = $targetValue * ($rates[$currency] ?? 1.0);