![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/framework/Pricing/Amount/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Pricing\Amount; use Magento\Framework\Pricing\Adjustment\AdjustmentInterface; /** * Amount base model */ class Base implements AmountInterface { /** * @var float */ protected $amount; /** * @var float */ protected $baseAmount; /** * @var float */ protected $totalAdjustmentAmount; /** * @var float[] */ protected $adjustmentAmounts = []; /** * @var AdjustmentInterface[] */ protected $adjustments = []; /** * @param float $amount * @param array $adjustmentAmounts */ public function __construct( $amount, array $adjustmentAmounts = [] ) { $this->amount = $amount; $this->adjustmentAmounts = $adjustmentAmounts; } /** * Return full amount value * * @param null|string|array $exclude * @return float */ public function getValue($exclude = null) { if ($exclude === null) { return $this->amount; } else { if (!is_array($exclude)) { $exclude = [(string)$exclude]; } $amount = $this->amount; foreach ($exclude as $code) { if ($this->hasAdjustment($code)) { $amount -= $this->adjustmentAmounts[$code]; } } return $amount; } } /** * Return full amount value in string format * * @return string */ public function __toString() { return (string) $this->getValue(); } /** * Return base amount part value * * @return float|null */ public function getBaseAmount() { if ($this->baseAmount === null) { $this->calculateAmounts(); } return $this->baseAmount; } /** * Return adjustment amount part value by adjustment code * * @param string $adjustmentCode * @return bool|float */ public function getAdjustmentAmount($adjustmentCode) { return $this->adjustmentAmounts[$adjustmentCode] ?? false; } /** * Return sum amount of all applied adjustments * * @return float|null */ public function getTotalAdjustmentAmount() { if ($this->totalAdjustmentAmount === null) { $this->calculateAmounts(); } return $this->totalAdjustmentAmount; } /** * Return all applied adjustments as array * * @return float[] */ public function getAdjustmentAmounts() { return $this->adjustmentAmounts; } /** * Check if adjustment is contained in amount object * * @param string $adjustmentCode * @return bool */ public function hasAdjustment($adjustmentCode) { return array_key_exists($adjustmentCode, $this->adjustmentAmounts); } /** * Calculate base amount * * @return void */ protected function calculateAmounts() { $this->baseAmount = $this->amount; $this->totalAdjustmentAmount = 0.; foreach ($this->adjustmentAmounts as $amount) { $this->baseAmount -= $amount; $this->totalAdjustmentAmount += $amount; } } }