Get a final tax amount for this product. You can extend this
method using "UpdateTax" allowing third party modules to alter
tax amounts dynamically.

@return Float
332187
public function getTaxAmount($decimal_size = null)
    {
        // Round using default rounding defined on MathsHelper
        $tax = MathsHelper::round(
            ($this->BasePrice / 100) * $this->TaxRate,
            2
        );
        $this->extend("updateTaxAmount", $tax);

        return $tax;
    }
756007
public function calculatePrices()
    {
        if ($this->getId()) {
            return;
        }

        $taxFactor = $this->getTaxRate() / 100;
        $total = $pretax = $tax = 0;
        $sums = [];

        /* @var ProductInterface $product */
        foreach ($this->getProducts() as $product) {
            $pPreTax = $product->getPrice();
            $pTax    = $pPreTax * $taxFactor;
            $pTotal  = $pPreTax + $pTax;
            $pQuantity = $product->getQuantity();
            $ptPreTax = $pQuantity * $pPreTax;
            $ptTax    = $pQuantity * $pTax;
            $ptTotal  = $pQuantity * $pTotal;

            $sums[$product->getName()] = [
                'single_pretax' => $pPreTax,
                'single_tax'    => $pTax,
                'single_total'  => $pTotal,
                'pretax' => $ptPreTax,
                'tax'    => $ptTax,
                'total'  => $ptTotal,
            ];

            $total += $ptTotal;
            $pretax += $ptPreTax;
            $tax   += $ptTax;
        }

        $this->prices = [
            'products' => $sums,
            'total'  => $total,
            'tax'    => $tax,
            'pretax' => $pretax,
        ];
    }
810843
public function getValue()
    {
        return round($this->amount / $this->currency->getSubunit(), $this->currency->getPrecision());
    }
481665
public function product(){
		
		Number::setScale(static::NUMERIC_FUNCTIONS_SCALE);
		
		$total = \strval($this->front());
		
		for($i = 1, $l = $this->count(); $i < $l; ++$i){
			$total = Number::multiply($total, \strval($this->_Arr[$i]));
		}
		
		return $total;
		
	}
835137
public function amount()
    {
        $orderData = Session::get('order_data');
        $cartProducts = Session::get('cart');
        $this->process($orderData, $cartProducts);

        return $this->amount;
    }
522672
public function getPayPalPaymentCosts()
    {
        $amount = 0.0;

        $paymentCost = $this->getCosts('oxpayment');
        if ($paymentCost) {
            $amount = $this->isCalculationModeNetto() ? $paymentCost->getNettoPrice() : $paymentCost->getBruttoPrice();
        }

        return $amount;
    }
1111863
public function getAmount() : ?float 
    {
        if ( ! $this->hasAmount()) {
            $this->setAmount($this->getDefaultAmount());
        }
        return $this->amount;
    }
504340
protected function _getMultiplier()
    {
        $dAmount = 0;

        if ($this->getCalculationRule() == self::CALCULATION_RULE_ONCE_PER_CART) {
            $dAmount = 1;
        } elseif ($this->getCalculationRule() == self::CALCULATION_RULE_FOR_EACH_DIFFERENT_PRODUCT) {
            $dAmount = $this->_iProdCnt;
        } elseif ($this->getCalculationRule() == self::CALCULATION_RULE_FOR_EACH_PRODUCT) {
            $dAmount = $this->_iItemCnt;
        }

        return $dAmount;
    }
806057
public function tax($decimals = null, $decimalPoint = null, $thousandSeperator = null)
    {
        $content = $this->getContent();

        $tax = $content->reduce(function ($tax, CartItem $cartItem) {
            return $tax + ($cartItem->qty * $cartItem->tax);
        }, 0);

        return $this->numberFormat($tax, $decimals, $decimalPoint, $thousandSeperator);
    }
1322799
public function getTaxesAmount()
    {
        $taxesAmount = 0;

        /** @var \Argentum\Common\Tax $tax */
        foreach ($this->getTaxes() as $tax) {
            $taxesAmount += $tax->getAmount($tax->getBaseAmount());
        }

        return $taxesAmount;
    }
741970
public function discount()
    {
        return $this->formatAmount($this->invoice->subtotal + $this->invoice->tax - $this->invoice->total);
    }
1343508
public function getTax()
    {
        $rate = $this->taxRate / 100;
        $value = $this->price->multiply($rate);
        return $value;
    }
963967
private function taxPrice()
    {
        if ($this->tax_type == 'percentage') {
            return bcdiv(bcmul($this->tax, $this->subTotalPrice(), $this->decimals), 100, $this->decimals);
        }

        return $this->tax;
    }
1359606
public function totalAmountCharged()
    {
        $qb = $this->getQueryBuilder()
            ->select('SUM(t.totalPrice)')
            ->innerJoin('t.items', 'i')
            ->innerJoin('i.product', 'p')
            ->where('p.priceType = 0')
            ->andWhere('t.status = :status OR t.status = :status2 OR t.status = :status3')
            ->setParameter('status', Transaction::STATUS_PAID)
            ->setParameter('status2', Transaction::STATUS_COMPLETED)
            ->setParameter('status3', Transaction::STATUS_DELIVERED)
                ;
                
        if(is_null($qb->getQuery()->getSingleScalarResult())) return '0';
                
        return $qb->getQuery()
            ->getSingleScalarResult();
    }
1341254
public function getPriceAndTax()
    {
        $price = $this->Price + $this->TaxAmount;
        $this->extend("updatePriceAndTax", $price);

        return $price;
    }
149697
protected function getAvailableTotals()
    {
        $result = array(
            Meta::InvoiceAmountInc => $this->source['total'],
            Meta::InvoiceVatAmount => 0.0,
            Meta::InvoiceVatBreakdown => array(),
        );

        /** @noinspection PhpUnhandledExceptionInspection */
        $orderTotals = $this->getOrderTotalLines();
        foreach ($orderTotals as $totalLine) {
            if ($totalLine['code'] === 'tax') {
                $result[Meta::InvoiceVatBreakdown][] = $totalLine['title'] . ': ' . $totalLine['value'];
                $result[Meta::InvoiceVatAmount] += $totalLine['value'];
            }
        }
        return $result;
    }
250028
public function getPurchasedAt() : ?int 
    {
        if ( ! $this->hasPurchasedAt()) {
            $this->setPurchasedAt($this->getDefaultPurchasedAt());
        }
        return $this->purchasedAt;
    }