| Current Path : /srv/web/sites/trentinoplant.it/httpdocs/vendor1/magento/module-directory/Model/Currency/ |
| Current File : /srv/web/sites/trentinoplant.it/httpdocs/vendor1/magento/module-directory/Model/Currency/Filter.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
/**
* Currency filter
*/
namespace Magento\Directory\Model\Currency;
use Laminas\Filter\FilterInterface;
use Magento\Framework\Pricing\PriceCurrencyInterface;
class Filter implements FilterInterface
{
/**
* Rate value
*
* @var float
*/
protected $_rate;
/**
* Currency object
*
* @var \Magento\Framework\CurrencyInterface
*/
protected $_currency;
/**
* @var \Magento\Framework\Locale\FormatInterface
*/
protected $_localeFormat;
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
protected $_storeManager;
/**
* @var \Magento\Framework\Locale\CurrencyInterface
*/
protected $_localeCurrency;
/**
* @var PriceCurrencyInterface
*/
protected $priceCurrency;
/**
* @param \Magento\Framework\Locale\FormatInterface $localeFormat
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency
* @param PriceCurrencyInterface $priceCurrency
* @param string $code
* @param int $rate
*/
public function __construct(
\Magento\Framework\Locale\FormatInterface $localeFormat,
\Magento\Store\Model\StoreManagerInterface $storeManager,
\Magento\Framework\Locale\CurrencyInterface $localeCurrency,
PriceCurrencyInterface $priceCurrency,
$code,
$rate = 1
) {
$this->_localeFormat = $localeFormat;
$this->_storeManager = $storeManager;
$this->_currency = $localeCurrency->getCurrency($code);
$this->priceCurrency = $priceCurrency;
$this->_rate = $rate;
}
/**
* Set filter rate
*
* @param float $rate
* @return void
*/
public function setRate($rate)
{
$this->_rate = $rate;
}
/**
* Filter value
*
* @param float $value
* @return string
*/
public function filter($value)
{
$value = $this->_localeFormat->getNumber($value);
$value = $this->priceCurrency->round($this->_rate * $value);
$value = sprintf("%f", $value);
return $this->_currency->toCurrency($value);
}
}