diff --git a/src/QUI/ERP/Products/Utils/Calc.php b/src/QUI/ERP/Products/Utils/Calc.php index 6cc897acfd4af1b7c8e250a72beb14134170f41b..f53e0df9b1114afcde7148f12900a7fb56468f84 100644 --- a/src/QUI/ERP/Products/Utils/Calc.php +++ b/src/QUI/ERP/Products/Utils/Calc.php @@ -376,13 +376,14 @@ public function calcProductList(ProductList $List, $callback = false): ProductLi $PriceFactor->setNettoSum($priceFactorValue); - if (!$isNetto) { - $vCalc = $vat / 100 + 1; + if (!$isNetto && !$PriceFactor->hasValueText()) { + $vCalc = $Vat->getValue() / 100 + 1; $bruttoDisplay = \round($priceFactorValue * $vCalc, $Currency->getPrecision()); $bruttoDisplay = $Currency->format($bruttoDisplay); $PriceFactor->setValueText($bruttoDisplay); } + break; // Prozent Angabe @@ -734,6 +735,26 @@ public function getProductPrice( $vatSum = \round($vatSum, $Currency->getPrecision()); } + + // price factor display with empty value text + // for brutto user -> brutto display values + if (!$isNetto) { + foreach ($priceFactors as $PriceFactor) { + if ($PriceFactor->hasValueText()) { + continue; + } + + $vCalc = $Vat->getValue() / 100 + 1; + $netto = $PriceFactor->getValue(); + + $bruttoDisplay = \round($netto * $vCalc, $Currency->getPrecision()); + $bruttoDisplay = $Currency->format($bruttoDisplay); + + $PriceFactor->setValueText($bruttoDisplay); + } + } + + if (!$isNetto) { // korrektur rechnung / 1 cent problem $checkVatBrutto = $nettoPriceNotRounded * ($vatValue / 100 + 1); diff --git a/src/QUI/ERP/Products/Utils/PriceFactor.php b/src/QUI/ERP/Products/Utils/PriceFactor.php index 3b2ead4b9270ca1590828416150e3d62f9eeefb1..895c699fbab0cc160ef7f01597e91f30783a86f6 100644 --- a/src/QUI/ERP/Products/Utils/PriceFactor.php +++ b/src/QUI/ERP/Products/Utils/PriceFactor.php @@ -72,7 +72,7 @@ class PriceFactor implements QUI\ERP\Products\Interfaces\PriceFactorInterface protected $calculatedSum = 0; /** - * @var string + * @var string|false */ protected $valueText = false; @@ -330,7 +330,7 @@ public function setValue($value) * The text for the value presentation * If no value text is set, normal value is used * - * @param string $value + * @param string|false $value */ public function setValueText($value) {