/** * Returns which product price to use as a basis for the Weee's final price * * @param int|null $storeId * @return string */ protected function getWhichCalcPriceToUse($storeId = null) { $calcPrice = 'finalPrice'; if ($this->weeeData->geDisplayExcl($storeId) || $this->weeeData->geDisplayExlDescIncl($storeId) || $this->taxData->priceIncludesTax() && $this->taxData->displayPriceExcludingTax()) { $calcPrice = 'basePrice'; } return $calcPrice; }
/** * Define if adjustment is included in display price * * @return bool */ public function isIncludedInDisplayPrice() { if ($this->taxHelper->displayPriceExcludingTax()) { return false; } if ($this->weeeHelper->isEnabled() == true && $this->weeeHelper->isTaxable() == true && $this->weeeHelper->typeOfDisplay([\Magento\Weee\Model\Tax::DISPLAY_EXCL]) == false) { return true; } else { return false; } }
/** * Modify the options config for the front end to resemble the weee final price * * @param \Magento\Framework\Event\Observer $observer * @return $this * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function getPriceConfiguration(\Magento\Framework\Event\Observer $observer) { if ($this->_weeeData->isEnabled()) { $priceConfigObj = $observer->getData('configObj'); $priceConfig = $priceConfigObj->getConfig(); try { if (is_array($priceConfig)) { foreach ($priceConfig as $keyConfigs => $configs) { if (is_array($configs)) { foreach ($configs as $keyConfig => $config) { $calcPrice = 'finalPrice'; if ($this->_taxData->priceIncludesTax() && $this->_taxData->displayPriceExcludingTax()) { $calcPrice = 'basePrice'; } if (array_key_exists('prices', $configs)) { $priceConfig[$keyConfigs]['prices']['weeePrice'] = ['amount' => $configs['prices'][$calcPrice]['amount']]; } else { foreach ($configs as $keyConfig => $config) { $priceConfig[$keyConfigs][$keyConfig]['prices']['weeePrice'] = ['amount' => $config['prices'][$calcPrice]['amount']]; } } } } } } $priceConfigObj->setConfig($priceConfig); } catch (Exception $e) { return $this; } } return $this; }
/** * Returns which product price to use as a basis for the Weee's final price * * @param int|null $storeId * @param array|null $weeeAttributesForBundle * @return string */ protected function getWhichCalcPriceToUse($storeId = null, $weeeAttributesForBundle = null) { $calcPrice = 'finalPrice'; if (!empty($weeeAttributesForBundle)) { if ($this->weeeData->isDisplayExcl($storeId) || $this->weeeData->isDisplayExclDescIncl($storeId) || $this->taxData->priceIncludesTax() && $this->taxData->displayPriceExcludingTax()) { $calcPrice = 'basePrice'; } } return $calcPrice; }
/** * Change default JavaScript templates for options rendering * * @param \Magento\Framework\Event\Observer $observer * @return $this */ public function execute(\Magento\Framework\Event\Observer $observer) { $response = $observer->getEvent()->getResponseObject(); $options = $response->getAdditionalOptions(); $_product = $this->registry->registry('current_product'); if (!$_product) { return $this; } $algorithm = $this->taxData->getCalculationAlgorithm(); $options['calculationAlgorithm'] = $algorithm; // prepare correct template for options render if ($this->taxData->displayBothPrices()) { $options['optionTemplate'] = sprintf('<%%= data.label %%>' . '<%% if (data.finalPrice.value) { %%>' . ' +<%%= data.finalPrice.formatted %%> (%1$s <%%= data.basePrice.formatted %%>)' . '<%% } %%>', __('Excl. tax:')); } elseif ($this->taxData->priceIncludesTax() && $this->taxData->displayPriceExcludingTax()) { $options['optionTemplate'] = sprintf('<%%= data.label %%>' . '<%% if (data.basePrice.value) { %%>' . ' +<%%= data.basePrice.formatted %%>' . '<%% } %%>'); } $response->setAdditionalOptions($options); return $this; }
/** * Modify the options config for the front end to resemble the weee final price * * @param \Magento\Framework\Event\Observer $observer * @return $this * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function getPriceConfiguration(\Magento\Framework\Event\Observer $observer) { if ($this->_weeeData->isEnabled()) { $priceConfigObj = $observer->getData('configObj'); try { $product = $this->_registry->registry('current_product'); $weeeAttributes = $this->_weeeData->getWeeAttributesForBundle($product); $calcPrice = 'finalPrice'; if ($this->_taxData->priceIncludesTax() && $this->_taxData->displayPriceExcludingTax()) { $calcPrice = 'basePrice'; } $priceConfig = $this->recurConfigAndInsertWeeePrice($priceConfigObj->getConfig(), 'prices', $calcPrice, $weeeAttributes); $priceConfigObj->setConfig($priceConfig); } catch (\Exception $e) { return $this; } } return $this; }
/** * Should be displayed price excluding tax * * @return bool */ public function displayPriceExcludingTax() { return $this->taxHelper->displayPriceExcludingTax(); }