weeeHelper = $weeeHelper; $this->priceCurrency = $priceCurrency; $this->sortOrder = $sortOrder; } /** * Get adjustment code * * @return string */ public function getAdjustmentCode() { return self::ADJUSTMENT_CODE; } /** * Define if adjustment is included in base price * (FPT is excluded from base price) * * @return bool */ public function isIncludedInBasePrice() { return false; } /** * Define if adjustment is included in display price * * @return bool */ public function isIncludedInDisplayPrice() { return $this->weeeHelper->typeOfDisplay( [ \Magento\Weee\Model\Tax::DISPLAY_INCL, \Magento\Weee\Model\Tax::DISPLAY_INCL_DESCR, \Magento\Weee\Model\Tax::DISPLAY_EXCL_DESCR_INCL, ] ); } /** * Extract adjustment amount from the given amount value * * @param float $amount * @param SaleableInterface $saleableItem * @param null|array $context * @return float * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function extractAdjustment($amount, SaleableInterface $saleableItem, $context = []) { return 0; } /** * Apply adjustment amount and return result value * * @param float $amount * @param SaleableInterface $saleableItem * @param null|array $context * @return float */ public function applyAdjustment($amount, SaleableInterface $saleableItem, $context = []) { if (isset($context[CustomOptionPriceInterface::CONFIGURATION_OPTION_FLAG])) { return $amount; } return $amount + $this->getAmount($saleableItem); } /** * Check if adjustment should be excluded from calculations along with the given adjustment * * @param string $adjustmentCode * @return bool */ public function isExcludedWith($adjustmentCode) { return (($adjustmentCode == self::ADJUSTMENT_CODE) || ($adjustmentCode == \Magento\Tax\Pricing\Adjustment::ADJUSTMENT_CODE)); } /** * Obtain amount * * @param SaleableInterface $saleableItem * @return float */ protected function getAmount(SaleableInterface $saleableItem) { $weeeAmount = $this->weeeHelper->getAmountExclTax($saleableItem); $weeeAmount = $this->priceCurrency->convert($weeeAmount); return $weeeAmount; } /** * Return sort order position * * @return int */ public function getSortOrder() { return $this->sortOrder; } }