WeeeConfigProvider.php 3.43 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Weee\Model;

use Magento\Checkout\Model\ConfigProviderInterface;
use Magento\Store\Model\StoreManagerInterface;
use Magento\Weee\Helper\Data as WeeeHelper;
use Magento\Weee\Model\Tax as WeeeDisplayConfig;

class WeeeConfigProvider implements ConfigProviderInterface
{
    /**
     * @var \Magento\Weee\Helper\Data
     */
    protected $weeeHelper;

    /**
     * @var StoreManagerInterface
     */
    protected $storeManager;

    /**
     * @var Config
     */
    protected $weeeConfig;

    /**
     * @param WeeeHelper $weeeHelper
     * @param StoreManagerInterface $storeManager
     * @param Config $weeeConfig
     */
    public function __construct(
        WeeeHelper $weeeHelper,
        StoreManagerInterface $storeManager,
        Config $weeeConfig
    ) {
        $this->weeeHelper = $weeeHelper;
        $this->storeManager = $storeManager;
        $this->weeeConfig = $weeeConfig;
    }

    /**
     * {@inheritdoc}
     */
    public function getConfig()
    {
        return [
            'isDisplayPriceWithWeeeDetails' => $this->iDisplayPriceWithWeeeDetails(),
            'isDisplayFinalPrice' => $this->isDisplayFinalPrice(),
            'isWeeeEnabled' => $this->isWeeeEnabled(),
            'isIncludedInSubtotal' => $this->isIncludedInSubtotal(),
            'getIncludeWeeeFlag' => $this->getIncludeWeeeFlag()
        ];
    }

    /**
     * @return int
     */
    private function getStoreId()
    {
        return $this->storeManager->getStore()->getId();
    }

    /**
     * Whether to display weee details together with price
     *
     * @return bool
     */
    public function iDisplayPriceWithWeeeDetails()
    {
        if (!$this->weeeHelper->isEnabled($this->getStoreId())) {
            return false;
        }

        $displayWeeeDetails = $this->weeeHelper->typeOfDisplay(
            [WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_EXCL_DESCR_INCL],
            'cart',
            $this->storeManager->getStore()->getId()
        );
        if (!$displayWeeeDetails) {
            return false;
        }
        return true;
    }

    /**
     * Whether to display final price that include Weee amounts
     *
     * @return bool
     */
    public function isDisplayFinalPrice()
    {
        $flag = $this->weeeHelper->typeOfDisplay(
            WeeeDisplayConfig::DISPLAY_EXCL_DESCR_INCL,
            'cart',
            $this->storeManager->getStore()->getId()
        );

        if (!$flag) {
            return false;
        }

        return true;
    }

    /**
     * Check if fixed taxes are used in system
     *
     * @return  bool
     */
    public function isWeeeEnabled()
    {
        return $this->weeeHelper->isEnabled($this->storeManager->getStore()->getId());
    }

    /**
     * Return the flag whether to include weee in the price
     *
     * @return bool|int
     */
    public function getIncludeWeeeFlag()
    {
        $includeWeee = $this->weeeHelper->typeOfDisplay(
            [WeeeDisplayConfig::DISPLAY_INCL_DESCR, WeeeDisplayConfig::DISPLAY_INCL],
            'cart',
            $this->getStoreId()
        );
        return $includeWeee;
    }

    /**
     * Display FPT row in subtotal or not
     *
     * @return bool
     */
    public function isIncludedInSubtotal()
    {
        return $this->weeeConfig->isEnabled() && $this->weeeConfig->includeInSubtotal();
    }
}