CalculatedTaxes im CartProcessor neu berechnen?

Hi, ich habe nun an zwei Stellen das Problem, dass ich mit der Preisberechnung nicht wirklich zurecht komme. Wenn wir mal die ganzen Sonderpreisregelungen und Staffelpreise außen vor lassen und ich im CartProcessor lediglich einen Aufschlag oder Abschlag auf ein LineItem anwenden möchte, felht mir immernoch die Möglichkeit für die Steuerberechung. Mir ist schon klar dass es über Umwege möglich ist, wie z.B. hier:

    private function getProductPromotionDiscountPrice(CalculatedPrice $oldPrice, ProductPromotionEntity $productPromotion): CalculatedPrice
    {
        $price = $oldPrice->getUnitPrice();
        $calculatedTaxes = new CalculatedTaxCollection();

        switch ($productPromotion->getDiscountType()) {
            case "percentage":
                $factor = 1 - ($productPromotion->getDiscountValue() / 100);
                break;
            case "absolute":
                $factor = ($price - $productPromotion->getDiscountValue()) / $price;
                break;
            case "fixed_unit":
                $factor = $productPromotion->getDiscountValue() / $price;
                break;
        }

        foreach ($oldPrice->getCalculatedTaxes() as $tax) {
            $calculatedTaxes->add(new CalculatedTax(
                $tax->getTax() * $factor,
                $tax->getTaxRate(),
                $tax->getPrice() * $factor
            ));
        }

        return new CalculatedPrice(
            $oldPrice->getUnitPrice() * $factor,
            $oldPrice->getTotalPrice() * $factor,
            $calculatedTaxes,
            $oldPrice->getTaxRules(),
            $oldPrice->getQuantity(),
            $oldPrice->getReferencePrice()
        );
    }

Aber es muss doch auch einfacher gehen… immerhin werden die Steuern ja auch an irgendeiner Stelle dynamisch berechnet und stehen nicht fest in der Datenbank… das Code Snippet um das es geht:

            if ($sum != 0.00) {
                $lineItemPrice = $lineItem->getPrice();
                $unitPrice = $lineItemPrice->getUnitPrice() + $sum;
                $totalPrice = $unitPrice * $lineItemPrice->getQuantity();

                $lineItem->setPrice(
                    new CalculatedPrice(
                        $unitPrice,
                        $totalPrice,
                        $lineItemPrice->getCalculatedTaxes(),
                        $lineItemPrice->getTaxRules(),
                        $lineItemPrice->getQuantity()
                    )
                );

                return true;
            }

Hat hier jmd ne Idee?