DefaultLocator.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Directory\Model\Currency;
  7. class DefaultLocator
  8. {
  9. /**
  10. * Config object
  11. *
  12. * @var \Magento\Framework\App\Config\ScopeConfigInterface
  13. */
  14. protected $_configuration;
  15. /**
  16. * Store manager
  17. *
  18. * @var \Magento\Store\Model\StoreManagerInterface
  19. */
  20. protected $_storeManager;
  21. /**
  22. * @param \Magento\Framework\App\Config\ScopeConfigInterface $configuration
  23. * @param \Magento\Store\Model\StoreManagerInterface $storeManager
  24. */
  25. public function __construct(
  26. \Magento\Framework\App\Config\ScopeConfigInterface $configuration,
  27. \Magento\Store\Model\StoreManagerInterface $storeManager
  28. ) {
  29. $this->_configuration = $configuration;
  30. $this->_storeManager = $storeManager;
  31. }
  32. /**
  33. * Retrieve default currency for selected store, website or website group
  34. * @todo: Refactor to ScopeDefiner
  35. * @param \Magento\Framework\App\RequestInterface $request
  36. * @return string
  37. */
  38. public function getDefaultCurrency(\Magento\Framework\App\RequestInterface $request)
  39. {
  40. if ($request->getParam('store')) {
  41. $store = $request->getParam('store');
  42. $currencyCode = $this->_storeManager->getStore($store)->getBaseCurrencyCode();
  43. } else {
  44. if ($request->getParam('website')) {
  45. $website = $request->getParam('website');
  46. $currencyCode = $this->_storeManager->getWebsite($website)->getBaseCurrencyCode();
  47. } else {
  48. if ($request->getParam('group')) {
  49. $group = $request->getParam('group');
  50. $currencyCode = $this->_storeManager->getGroup($group)->getWebsite()->getBaseCurrencyCode();
  51. } else {
  52. $currencyCode = $this->_configuration->getValue(
  53. \Magento\Directory\Model\Currency::XML_PATH_CURRENCY_BASE,
  54. 'default'
  55. );
  56. }
  57. }
  58. }
  59. return $currencyCode;
  60. }
  61. }