diff --git a/Cart.java b/Cart.java index 0720e20..62af260 100644 --- a/Cart.java +++ b/Cart.java @@ -41,5 +41,103 @@ public class Cart { return false; } + public int AmountAllCart (){ + return cartContents.size(); + } + + public double GrossAmountProd (){ + double gross = 0.0; + for(Products prod: cartContents) { + gross += prod.getGrossPrice(); + } + return gross; + } + + public double ContentsMass() { + double weights = 0.0; + for(Products prod: cartContents) { + weights += prod.getWeight(); + } + return weights; + } + + public double ContentsNetWorth() { + double netWorth = 0.0; + for(Products prod: cartContents) { + netWorth += prod.getNetWorth(); + } + return netWorth; + } + + + public double deliveryCost () { + + double weight = ContentsMass(); + double delivery = 0; + + //Bedingungen für die Versandkosten: + if ( weight <= 0.1) { + delivery = 3.95; + } + else if (weight > 0.1 && weight <= 1.0) { + delivery = 4.95; + } + else if (weight> 1.0 && weight <= 5.0 ) { + delivery = 5.95; + } + else if (weight > 5.0) { + delivery = 19.95; + } + + + if (GrossAmountProd() >= 500) { //Brutto == Warenwert + delivery = 0;} + + return delivery; + } + + + public double taxDelivery(){ + double delivery = deliveryCost (); + + double tax7perc = 0; // grosstax is 7% which means: 1/3rd of 19,95 + double tax19perc = 0; // grosstax is 19% which means: 2/3rd of 19,95 + + for (Products prod : cartContents) { + if (prod.getNetWorth() == 7) { + tax7perc += prod.getGrossPrice(); + } + else if (prod.getNetWorth() == 19) { + tax19perc += prod.getGrossPrice(); + } + } + //Prozentuale Anteile am gesamten Bruttopreis: + double gross = GrossAmountProd (); + + + if (gross == 0) { //Um Teilung durch 0 zu verhindern (wenn Warenkorb leer) + return 0; + } + + //Anteile am Versand: + double delivery7 = delivery * (tax7perc / gross); + double delivery19 = delivery * (tax19perc / gross); + + //MwSt vom Versand: + double taxDelivery7 = delivery7- (delivery7/ 1.07); + double taxDelivery19 = delivery19 - (delivery19 / 1.19); + + return taxDelivery7 + taxDelivery19; + } + + + + public double wholeAmount () { + + double amount = GrossAmountProd () + deliveryCost () + taxDelivery(); + + + return amount; + } } \ No newline at end of file