change currency converted hook

This commit is contained in:
Yuri Kuznetsov
2020-06-20 21:08:17 +03:00
parent e218aaaed2
commit 407c8204aa
@@ -30,31 +30,19 @@
namespace Espo\Hooks\Common;
use Espo\ORM\Entity;
use Espo\Core\Utils\Util;
use Espo\Core\Di;
class CurrencyConverted extends \Espo\Core\Hooks\Base
class CurrencyConverted implements Di\MetadataAware, Di\ConfigAware
{
use Di\MetadataSetter;
use Di\ConfigSetter;
public static $order = 1;
protected function init()
public function beforeSave(Entity $entity, array $options = [])
{
$this->addDependency('metadata');
$this->addDependency('config');
}
$fieldDefs = $this->metadata->get(['entityDefs', $entity->getEntityType(), 'fields'], []);
protected function getMetadata()
{
return $this->getInjection('metadata');
}
protected function getConfig()
{
return $this->getInjection('config');
}
public function beforeSave(Entity $entity, array $options = array())
{
$fieldDefs = $this->getMetadata()->get(['entityDefs', $entity->getEntityType(), 'fields'], []);
foreach ($fieldDefs as $fieldName => $defs) {
if (!empty($defs['type']) && $defs['type'] === 'currencyConverted') {
$currencyFieldName = substr($fieldName, 0, -9);
@@ -69,9 +57,9 @@ class CurrencyConverted extends \Espo\Core\Hooks\Base
$currency = $entity->get($currencyCurrencyFieldName);
$value = $entity->get($currencyFieldName);
if (!$currency) continue;
$rates = $this->getConfig()->get('currencyRates', array());
$baseCurrency = $this->getConfig()->get('baseCurrency');
$defaultCurrency = $this->getConfig()->get('defaultCurrency');
$rates = $this->config->get('currencyRates', array());
$baseCurrency = $this->config->get('baseCurrency');
$defaultCurrency = $this->config->get('defaultCurrency');
if ($defaultCurrency === $currency) {
$targetValue = $value;
} else {