123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Sales\Block\Adminhtml\Order\Create;
- use Magento\Framework\Pricing\PriceCurrencyInterface;
- /**
- * Order create data
- *
- * @api
- * @author Magento Core Team <core@magentocommerce.com>
- * @since 100.0.2
- */
- class Data extends \Magento\Sales\Block\Adminhtml\Order\Create\AbstractCreate
- {
- /**
- * Currency factory
- *
- * @var \Magento\Directory\Model\CurrencyFactory
- */
- protected $_currencyFactory;
- /**
- * @var \Magento\Framework\Locale\CurrencyInterface
- */
- protected $_localeCurrency;
- /**
- * @param \Magento\Backend\Block\Template\Context $context
- * @param \Magento\Backend\Model\Session\Quote $sessionQuote
- * @param \Magento\Sales\Model\AdminOrder\Create $orderCreate
- * @param PriceCurrencyInterface $priceCurrency
- * @param \Magento\Directory\Model\CurrencyFactory $currencyFactory
- * @param \Magento\Framework\Locale\CurrencyInterface $localeCurrency
- * @param array $data
- */
- public function __construct(
- \Magento\Backend\Block\Template\Context $context,
- \Magento\Backend\Model\Session\Quote $sessionQuote,
- \Magento\Sales\Model\AdminOrder\Create $orderCreate,
- PriceCurrencyInterface $priceCurrency,
- \Magento\Directory\Model\CurrencyFactory $currencyFactory,
- \Magento\Framework\Locale\CurrencyInterface $localeCurrency,
- array $data = []
- ) {
- $this->_currencyFactory = $currencyFactory;
- $this->_localeCurrency = $localeCurrency;
- parent::__construct($context, $sessionQuote, $orderCreate, $priceCurrency, $data);
- }
- /**
- * Retrieve available currency codes
- *
- * @return string[]
- */
- public function getAvailableCurrencies()
- {
- $dirtyCodes = $this->getStore()->getAvailableCurrencyCodes();
- $codes = [];
- if (is_array($dirtyCodes) && count($dirtyCodes)) {
- $rates = $this->_currencyFactory->create()->getCurrencyRates(
- $this->_storeManager->getStore()->getBaseCurrency(),
- $dirtyCodes
- );
- foreach ($dirtyCodes as $code) {
- if (isset($rates[$code]) || $code == $this->_storeManager->getStore()->getBaseCurrencyCode()) {
- $codes[] = $code;
- }
- }
- }
- return $codes;
- }
- /**
- * Retrieve currency name by code
- *
- * @param string $code
- * @return string
- */
- public function getCurrencyName($code)
- {
- return $this->_localeCurrency->getCurrency($code)->getName();
- }
- /**
- * Retrieve currency name by code
- *
- * @param string $code
- * @return string
- */
- public function getCurrencySymbol($code)
- {
- $currency = $this->_localeCurrency->getCurrency($code);
- return $currency->getSymbol() ? $currency->getSymbol() : $currency->getShortName();
- }
- /**
- * Retrieve current order currency code
- *
- * @return string
- */
- public function getCurrentCurrencyCode()
- {
- return $this->getStore()->getCurrentCurrencyCode();
- }
- }
|