Пример #1
0
 /**
  * Assign WEEE taxes to product data
  *
  * @param   \Magento\Catalog\Model\Product $object
  * @return  $this
  * @SuppressWarnings(PHPMD.UnusedLocalVariable)
  */
 public function afterLoad($object)
 {
     $data = $this->_attributeTax->loadProductData($object, $this->getAttribute());
     foreach ($data as $i => $row) {
         if ($data[$i]['website_id'] == 0) {
             $rate = $this->_storeManager->getStore()->getBaseCurrency()->getRate($this->_directoryHelper->getBaseCurrencyCode());
             if ($rate) {
                 $data[$i]['website_value'] = $data[$i]['value'] / $rate;
             } else {
                 unset($data[$i]);
             }
         } else {
             $data[$i]['website_value'] = $data[$i]['value'];
         }
     }
     $object->setData($this->getAttribute()->getName(), $data);
     return $this;
 }
Пример #2
0
 /**
  * Retrieve allowed currencies according to config
  *
  * @return array
  */
 public function getConfigAllowCurrencies()
 {
     $allowedCurrencies = $this->_getResource()->getConfigCurrencies($this, self::XML_PATH_CURRENCY_ALLOW);
     $appBaseCurrencyCode = $this->_directoryHelper->getBaseCurrencyCode();
     if (!in_array($appBaseCurrencyCode, $allowedCurrencies)) {
         $allowedCurrencies[] = $appBaseCurrencyCode;
     }
     foreach ($this->_storeManager->getStores() as $store) {
         $code = $store->getBaseCurrencyCode();
         if (!in_array($code, $allowedCurrencies)) {
             $allowedCurrencies[] = $code;
         }
     }
     return $allowedCurrencies;
 }
Пример #3
0
 /**
  * Get websites list
  *
  * @return array
  */
 protected function getWebsites()
 {
     $websites = [['label' => __('All Websites') . ' [' . $this->directoryHelper->getBaseCurrencyCode() . ']', 'value' => 0]];
     $product = $this->locator->getProduct();
     if (!$this->isScopeGlobal() && $product->getStoreId()) {
         /** @var \Magento\Store\Model\Website $website */
         $website = $this->getStore()->getWebsite();
         $websites[] = ['label' => $website->getName() . '[' . $website->getBaseCurrencyCode() . ']', 'value' => $website->getId()];
     } elseif (!$this->isScopeGlobal()) {
         $websitesList = $this->storeManager->getWebsites();
         $productWebsiteIds = $product->getWebsiteIds();
         foreach ($websitesList as $website) {
             /** @var \Magento\Store\Model\Website $website */
             if (!in_array($website->getId(), $productWebsiteIds)) {
                 continue;
             }
             $websites[] = ['label' => $website->getName() . '[' . $website->getBaseCurrencyCode() . ']', 'value' => $website->getId()];
         }
     }
     return $websites;
 }
Пример #4
0
 /**
  * @return array|null
  */
 public function getWebsites()
 {
     if (null !== $this->_websites) {
         return $this->_websites;
     }
     $websites = [];
     $websites[0] = ['name' => __('All Websites'), 'currency' => $this->_directoryHelper->getBaseCurrencyCode()];
     if (!$this->_storeManager->hasSingleStore() && !$this->getElement()->getEntityAttribute()->isScopeGlobal()) {
         if ($storeId = $this->getProduct()->getStoreId()) {
             $website = $this->_storeManager->getStore($storeId)->getWebsite();
             $websites[$website->getId()] = ['name' => $website->getName(), 'currency' => $website->getConfig(\Magento\Directory\Model\Currency::XML_PATH_CURRENCY_BASE)];
         } else {
             foreach ($this->_storeManager->getWebsites() as $website) {
                 if (!in_array($website->getId(), $this->getProduct()->getWebsiteIds())) {
                     continue;
                 }
                 $websites[$website->getId()] = ['name' => $website->getName(), 'currency' => $website->getConfig(\Magento\Directory\Model\Currency::XML_PATH_CURRENCY_BASE)];
             }
         }
     }
     $this->_websites = $websites;
     return $this->_websites;
 }
Пример #5
0
 /**
  * Retrieve allowed for edit websites
  *
  * @return array
  */
 public function getWebsites()
 {
     if ($this->_websites !== null) {
         return $this->_websites;
     }
     $this->_websites = [0 => ['name' => __('All Websites'), 'currency' => $this->_directoryHelper->getBaseCurrencyCode()]];
     if (!$this->isScopeGlobal() && $this->getProduct()->getStoreId()) {
         /** @var $website \Magento\Store\Model\Website */
         $website = $this->_storeManager->getStore($this->getProduct()->getStoreId())->getWebsite();
         $this->_websites[$website->getId()] = ['name' => $website->getName(), 'currency' => $website->getBaseCurrencyCode()];
     } elseif (!$this->isScopeGlobal()) {
         $websites = $this->_storeManager->getWebsites(false);
         $productWebsiteIds = $this->getProduct()->getWebsiteIds();
         foreach ($websites as $website) {
             /** @var $website \Magento\Store\Model\Website */
             if (!in_array($website->getId(), $productWebsiteIds)) {
                 continue;
             }
             $this->_websites[$website->getId()] = ['name' => $website->getName(), 'currency' => $website->getBaseCurrencyCode()];
         }
     }
     return $this->_websites;
 }