Tranportkosten berechnen mit unterschiedlichen MwSt

beta20

Top Contributor
Hallo,

ich würde gerne Kosten für den Transport in Brutto berechnen, für verschiedene MwSt.

Ich habe dazu eine Klasse "NetworkRequestItem", welches meine Artikel sind...
- ID
- tax (zB 7% oder 19%)
- priceNet (Nettopreis)
- priceGross (Bruttopreis)

Nun möchte ich von einer Liste: List<NetworkRequestItem> list die unterschiedlichen Anteile bekommen.
Mir schwebt sowas vor mit dieser Methode:

public double calculateTransportCost(double transportCostNet, List<NetworkRequestItem> list)
...

Wie errechne ich nun aber den Anteil der jeweiligen MwSt?
Auch unter der Prämisse, dass es nicht nur 7% und 19% geben kann.

Hat jemand eine Idee?
 

White_Fox

Top Contributor
Suchst du so etwas?
Java:
public enum TaxClass{
    STANDARD(0.19),
    REDUCED(0.07);
    
    private double percentage;
    
    public TaxClass(double percentage){
        this.percentage = percentage;
    }
    
    public double getPercentage(){
        return percentage;
    }
}

Das ist eine Enumeration. Du kannst später ohne Weiteres einfach weitere Einträge hinzufügen, neben STADARD und REDUCED vielleicht noch HEAVY(0.25), wenn die Regierung tiefer in unsere Tasche greifen will. Oder wenn sich der Normale Steuersatz von 19% auf 25% ändert mußt du nur den Wert in der Klammer angeben. Du kannst Enumerationen in gleicher Weise auch noch um andere Eigenschaften erweitern. In deiner Klasse NetworkRequestItem kannst du das wie folgt verwenden:

Java:
public class NetworkRequestItem{
    private TaxClass tc;
    
    //...
    
    public double getTaxPercantage(){
        return tc.getPercentage();
    }
}


Wie errechne ich nun aber den Anteil der jeweiligen MwSt?
Du meinst jetzt aber nicht sowas wie:
Gesamtpreis sei 5,50€, Steuersatz 19% -> 5,50/1,19 -> 4,62€ für den Händler, 0,88€ für den Staat?
 

beta20

Top Contributor
Leider nicht so ganz....

NetworkRequestItem hat ja bereits "tax".... Das ist quasi nur die Position im Warenkorb.
Der MwSt wird bereits davor schon von den Stammdaten des Artikels gezogen.

Der MwSt - Satz (ob 19, 7, 0... oder vllt. mal 25%) kommt aus den Stammdaten dann direkt.
Also:
Ich füge einen Artikel in den Warenkorb hinu. Ein neues Objekt (NetworkRequestItem) wird erstellt, mit dem Nettopreis, Bruttopreis und MwSt. des Artikels aus den Stammdaten...

Was ich also brauche ist der Anteil der MwSt im "Warenkorb" also meiner Liste List<NetworkRequestItem> list....
- Ich müsste quasi erst über alle Positionen gehen, welche MwSt es überhaupt gibt. Diese wiederum müsste ich in eine Liste packen.
- Also ich müsste die Anzahl an Artikel mit MwSt 19% bekommen, die Anzahl der Artikel mit 7% usw.

Vllt so irgendwie? (Glaube das double, double) stimmt aber nicht?
Map<double, double> hashMap = networkRequestItemList.stream()
.collect(Collectors.groupingBy((NetworkRequestItem n) -> n.getTax()));

- Anschließend müsste ich dann auf die 5 EUR Transportkosten (Netto) die Bruttokosten der verschiedenen MwSt daraufaddieren, die ich davor errechnet habe...

Beim roten happert es noch...
 

White_Fox

Top Contributor
Vielleicht:
Java:
HashMap<Double, ArrayList<Double>> prices;

//Der Key der HashMap enthält den Steuersatz, 7%, 19%, ...
//Der Value der HashMap, also die ArrayList, enthält die Preise, die mit diesem Steuersatz verrechent werden.

Nachher mußt du nur noch über die HashMap iterieren und kannst alle Preise in der ArrayList mit dem jeweiligen Steuersatz verrechnen. Nicht gerade elegant, aber naja...
 

beta20

Top Contributor
eher so, oder?

Java:
        Map<Double, List<NetworkRequestItem>> hashMap = networkRequestItemList.stream()
                .collect(Collectors.groupingBy(n -> n.getTax()));

        for (Double taxValue : hashMap.keySet()) {
            List<NetworkRequestItem> list = hashMap.get(taxValue);
        }


Mir ist aber dann immer noch nicht klar, wie ich die Verhältnisse berechne...
 

White_Fox

Top Contributor
Suchst du das?
Java:
double sumArticlesA, sumArticlesB, sumArticlesC;

//...

double mainSum = sumArticlesA + sumArticlesB + sumArticlesC;

double partOfA = sumArticlesA / mainSum;
double partOfB = sumArticlesB / mainSum;
//...
 

beta20

Top Contributor
Beispiel: CD kostet 20€ inkl. MwSt., Buch 10€ inkl. Mwst., Versandkosten sind 5€ Da die CD wertmäßig 2/3 des Warenkorbs umfasst, würde auf 3,33€ 19% Umsatzsteuer anfallen, auf 1,67€ 7%.

Ja, wie gesagt... wie bekomme ich die Anteile bzw. dann letztenendes den Bruttopreis?
Ich denke diese Informationen (Parameter benötige ich für die Funktion):

public double calculateTransportCost(double transportCostNet, List<NetworkRequestItem> list)

NetworkRequestItem enthält:
- tax (19% etc.)
- priceNet (Nettopreis)
- priceGross (Bruttopreis)

Also sowas wie der nachfolgende Code - aber wie errechne ich nun die Anteile?
Java:
    private double calculateSumPriceGrossForTransport(double transportCostNet,
            List<NetworkRequestItem> networkRequestItemList) {

        Map<Double, List<NetworkRequestItem>> hashMap = networkRequestItemList.stream()
                .collect(Collectors.groupingBy(n -> n.getTax()));

        double totalCost = 0.0;

        for (Double taxValue : hashMap.keySet()) {
            List<NetworkRequestItem> list = hashMap.get(taxValue);
            double totalForCurrentTax = list.stream().mapToDouble(NetworkRequestItem::getPriceGross).sum();
        }

        return 0;
    }
 

beta20

Top Contributor
Stimmt das so?

Java:
    private double calculateSumPriceGrossForTransport(double transportCostNet,
            List<NetworkRequestItem> networkRequestItemList) {

        Map<Double, List<NetworkRequestItem>> hashMap = networkRequestItemList.stream()
                .collect(Collectors.groupingBy(n -> n.getTax()));

        double totalGrossValue = networkRequestItemList.stream().mapToDouble(NetworkRequestItem::getPriceGross).sum();
        
        double totalTransportTax = 0.0;

        for (Double taxValue : hashMap.keySet()) {

            List<NetworkRequestItem> list = hashMap.get(taxValue);
            
            double totalForCurrentTax = list.stream().mapToDouble(NetworkRequestItem::getPriceGross).sum();
            double percentageValue = totalForCurrentTax / totalGrossValue;
            double valueFromPercentage = ((transportCostNet / 100) * percentageValue) * 100;
            totalTransportTax = totalTransportTax + (valueFromPercentage + (1 + (taxValue / 100)));   
        }

        return transportCostNet + totalTransportTax;
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Volatility berechnen Java Basics - Anfänger-Themen 4
P Medaillen Spiegel der Wander Teilnahmen berechnen. Java Basics - Anfänger-Themen 3
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
laxla123 Quersumme berechnen Java Basics - Anfänger-Themen 1
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
S Vollmond berechnen und ausgeben Java Basics - Anfänger-Themen 12
S Vollkommene Zahl berechnen und ausgeben Java Basics - Anfänger-Themen 16
A Berechnen Moor Nachbarschaft Java Basics - Anfänger-Themen 5
E Geburtstag im Schaltjahr berechnen Java Basics - Anfänger-Themen 24
Lion.King Schaltjahr berechnen Java Basics - Anfänger-Themen 31
E Alter (Laufzeit) berechnen Java Basics - Anfänger-Themen 11
I Zuschläge berechnen Java Basics - Anfänger-Themen 15
L mit Fakultät mathematische Formel berechnen Java Basics - Anfänger-Themen 5
TanTanIsTrying Durschnitt berechnen von eingegebener Zahl bis 1 heruntergezählt Java Basics - Anfänger-Themen 9
L Präfix berechnen Java Basics - Anfänger-Themen 33
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
Aemulit Java Schaltjahr berechnen Code Java Basics - Anfänger-Themen 7
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
I Potenz berechnen mit for-Schleife Java Basics - Anfänger-Themen 3
A Standardabweichung in Java berechnen Java Basics - Anfänger-Themen 10
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
G Java Rabatt berechnen Java Basics - Anfänger-Themen 8
V Rückgeld berechnen Java Basics - Anfänger-Themen 6
eleonori Durchschnitt aller Werte eines Baums berechnen Java Basics - Anfänger-Themen 5
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
L Max, min, Summe und Durchschnitt berechnen Java Basics - Anfänger-Themen 4
L Anhalteweg berechnen Java Basics - Anfänger-Themen 6
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
M Quadratwurzel berechnen Java Basics - Anfänger-Themen 8
V Wachstum berechnen und in Ist-Formel verwenden Java Basics - Anfänger-Themen 5
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
M Abschreibungsplan berechnen Java Basics - Anfänger-Themen 23
V Gehalt berechnen in Java Java Basics - Anfänger-Themen 6
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
H Eingabedaten berechnen Java Basics - Anfänger-Themen 9
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
V Erste Schritte Berechnen von Sinus; sin(x) ohne Math.* Java Basics - Anfänger-Themen 1
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Sparplan berechnen Java Basics - Anfänger-Themen 4
F Abstand zum Durchschnitt von 5 Zahlen berechnen... Java Basics - Anfänger-Themen 16
B java.util.Date berechnen Java Basics - Anfänger-Themen 11
P Mittelwert Arrayelemente berechnen Fehler Java Basics - Anfänger-Themen 5
CptK Best Practice Schussparabel berechnen Java Basics - Anfänger-Themen 3
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
E Statistische Kennzahlen berechnen Java Basics - Anfänger-Themen 2
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
C Preis berechnen mit Java Java Basics - Anfänger-Themen 4
B Zahl in String abspeichern und später berechnen Java Basics - Anfänger-Themen 15
N Best Practice Image recognition fuzzy Superhash berechnen Java Basics - Anfänger-Themen 1
Dawinartor Erste Schritte Schaltjahr berechnen Java Basics - Anfänger-Themen 1
L Pi berechnen Java Basics - Anfänger-Themen 1
CptK Term (als String) berechnen und ausgeben Java Basics - Anfänger-Themen 10
L Den Winkel zwischen zwei Vektoren berechnen! Java Basics - Anfänger-Themen 2
J Variablen arithmetischen Mittelwert berechnen Java Basics - Anfänger-Themen 5
K Matrixen berechnen nach Worker Master Paradigma mit Threads Java Basics - Anfänger-Themen 4
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
I Schnittpunkt zweier Geraden berechnen Java Basics - Anfänger-Themen 25
M Erste Schritte Mittelwert berechnen -> Methode in der Methode? Java Basics - Anfänger-Themen 14
S Compiler-Fehler Schaltjahr berechnen Java Basics - Anfänger-Themen 5
B Fakultätsfunktion Rekursiv Berechnen aber mit Array Java Basics - Anfänger-Themen 10
S Durchschnitt berechnen aus zwei Textfeldern Java Basics - Anfänger-Themen 21
D Summe berechnen mit verändertem Wert aus Schleife Java Basics - Anfänger-Themen 1
R Liga Berechnen Java Basics - Anfänger-Themen 1
P Klassen Berechnen mehrerer Map-Werte Java Basics - Anfänger-Themen 13
R Fussballtabellen berechnen Java Basics - Anfänger-Themen 12
J Fibonacci -Folge rekursiv berechnen Java Basics - Anfänger-Themen 18
J Durchschnitt jeder Zeile und und Spalte in einem 2D Arrays berechnen Java Basics - Anfänger-Themen 6
F ISBN Prüfziffer berechnen Java Basics - Anfänger-Themen 17
F Die Teilersumme einer Eingabe berechnen Java Basics - Anfänger-Themen 11
S Negafibonacci Folge berechnen Java Basics - Anfänger-Themen 24
G Array Mittelwert berechnen, wie? Java Basics - Anfänger-Themen 8
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
N Mit LocalDate alter berechnen Java Basics - Anfänger-Themen 3
J Laufzeit berechnen/Laufzeitanalyse Java Basics - Anfänger-Themen 2
N Arrays mit Zufallzahlen füllen und Statistiken berechnen Java Basics - Anfänger-Themen 5
A Wochentag berechnen Java Basics - Anfänger-Themen 10
Ste3et_C0st Vectoren berechnen Java Basics - Anfänger-Themen 8
L Durchschnitt in der Schleife berechnen Java Basics - Anfänger-Themen 11
A Kreisumfang/-Fläche vom Kreis berechnen Java Basics - Anfänger-Themen 39
L Wochentag berechnen Java Basics - Anfänger-Themen 5
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
B OOP Summe aus verschiedenen Instanzen einer Klasse berechnen Java Basics - Anfänger-Themen 2
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
P Ausdrücke berechnen Java Basics - Anfänger-Themen 2
V Mittelwert berechnen Java Basics - Anfänger-Themen 31
H Datentypen Tage zwischen zwei Datums berechnen Java Basics - Anfänger-Themen 4
P Quadrate berechnen Java Basics - Anfänger-Themen 3
S OOP Datumsunterschied in Tagen berechnen Java Basics - Anfänger-Themen 3
M Methoden Aus Timestamp das Datum berechnen Java Basics - Anfänger-Themen 3
B Schaltjahre berechnen! Java Basics - Anfänger-Themen 1
A werte in einem String berechnen Java Basics - Anfänger-Themen 3
F Checksummen aus int-Array berechnen Java Basics - Anfänger-Themen 3
F Toto-Tipp-Reihen berechnen Java Basics - Anfänger-Themen 1
N Threads Exception in thread "main"... Feher bei dem Versuch ein Radius zu berechnen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben