diff --git a/OnlineShop/src/backend/OnlineShop.java b/OnlineShop/src/backend/OnlineShop.java index e3b8dfb..6595d19 100644 --- a/OnlineShop/src/backend/OnlineShop.java +++ b/OnlineShop/src/backend/OnlineShop.java @@ -28,9 +28,6 @@ public class OnlineShop { public void DelProduktAusWarenkorb(Produkt del){ }; public void ChangeProduktInWarenkorb(Produkt change, int count){ - }; - public void MoveProduktInWarenkorb(Produkt move, int direction){ - }; public void UpdateKundeInWarenkorb(Kunde neu){ diff --git a/OnlineShop/src/backend/Warenkorb.java b/OnlineShop/src/backend/Warenkorb.java index 25eb6b6..804942a 100644 --- a/OnlineShop/src/backend/Warenkorb.java +++ b/OnlineShop/src/backend/Warenkorb.java @@ -13,22 +13,93 @@ public class Warenkorb { this.kunde = kunde; }; - public int NettoPreis(){ - return 0;}; - public int BruttoPreis(){ - return 0;}; - public int NettoVersandkosten(){ - return 0;}; - public int BruttoVersandkosten(){ - return 0;}; - public int NettoGesamtPreis(){ - return 0;}; - public int BruttoGesamtPreis(){ - return 0; + public Warenkorb() { + this.inhalt = new ArrayList(); + this.anzahl = new ArrayList(); + this.kunde = new Kunde("",""); }; - public void AddProdukt(Produkt add, int count){}; - public void DelProdukt(Produkt del){}; - public void ChangeProdukt(Produkt change, int count){}; - public void MoveProdukt(Produkt move, int direction){}; - public void UpdateKunde(Kunde neu){}; + + public int NettoPreis(){ + int ret = 0; + for(int i = 0; i < this.inhalt.size(); i++) { + ret += (this.inhalt.get(i).netto*this.anzahl.get(i)); + } + return ret; + }; + public int BruttoPreis(){ + double tmp = 0; + for(int i = 0; i < this.inhalt.size(); i++) { + tmp += (this.inhalt.get(i).netto*this.anzahl.get(i)*(1+this.inhalt.get(i).mwStSatz)); + } + return (int) Math.round(tmp); + }; + public int NettoVersandkosten(){ + int ret = 0; + for(int i = 0; i < this.inhalt.size(); i++) { + ret += (((this.inhalt.get(i).netto*this.anzahl.get(i))/NettoPreis())*BruttoVersandkosten())/(1+this.inhalt.get(i).mwStSatz); + } + return ret; + }; + public int BruttoVersandkosten(){ + int ret = 0; + int gewicht = Gewicht(); + if(gewicht >= 5000) + ret = 1995; + if(gewicht < 5000) + ret = 595; + if(gewicht < 1000) + ret = 495; + if(gewicht <= 100) + ret = 395; + return ret; + }; + public int NettoGesamtPreis(){ + return NettoPreis()+NettoVersandkosten(); + }; + public int BruttoGesamtPreis(){ + return BruttoPreis()+BruttoVersandkosten(); + }; + public void AddProdukt(Produkt add, int count){ + this.inhalt.add(add); + this.anzahl.add(count); + CheckCount(add); + }; + public void DelProdukt(Produkt del){ + for(int i = 0; i < this.inhalt.size(); i++) { + if(del.equals(this.inhalt.get(i))) { + this.inhalt.remove(i); + this.anzahl.remove(i); + break; + } + } + }; + public void ChangeProdukt(Produkt change, int count){ + for(int i = 0; i < this.inhalt.size(); i++) { + if(change.equals(this.inhalt.get(i))) { + this.anzahl.set(i, count); + break; + } + } + CheckCount(change); + }; + public void UpdateKunde(Kunde neu){ + this.kunde = neu; + }; + private void CheckCount(Produkt check) { + for(int i = 0; i < this.inhalt.size(); i++) { + if(check.equals(this.inhalt.get(i))) { + if(this.anzahl.get(i)<1) { + DelProdukt(check); + } + break; + } + } + } + private int Gewicht() { + int ret = 0; + for(int i = 0; i < this.inhalt.size(); i++) { + ret += (this.inhalt.get(i).transportGewicht*this.anzahl.get(i)); + } + return ret; + } } diff --git a/OnlineShop/src/tui/ShopTUI.java b/OnlineShop/src/tui/ShopTUI.java index 2b05e41..989f9fb 100644 --- a/OnlineShop/src/tui/ShopTUI.java +++ b/OnlineShop/src/tui/ShopTUI.java @@ -15,6 +15,5 @@ public class ShopTUI { } private static void Menu(OnlineShop shop, Scanner sc) { - shop.test = 1; } } diff --git a/README.md b/README.md index 2757019..177d15f 100644 --- a/README.md +++ b/README.md @@ -20,3 +20,5 @@ Time Chart: 0:06 finish class Produkt 0:02 finish class Bestellung + +0:38 finish class Warenkorb \ No newline at end of file diff --git a/UML.svg b/UML.svg index cb97b7b..940570b 100644 --- a/UML.svg +++ b/UML.svg @@ -1,4 +1,4 @@ -
1
1
1
1

ShopTUI


+ OnlineShop shop
+ Scanner sc



+ void main(String[] args)
+ void Menu(OnlineShop, Scanner)


ShopTUI...
1
1
1
1

OnlineShop


+ ArraylĹist<Produkt> lager 

+ ArrayList<Bestellung> bestellungen

+ Warenkorb aktuellerWarenkorb



+ Bool AddProdukt(Produkt)
+ Bool UpdateExistingProdukt(Produkt, NewProdukt)


+ String[] ShowWarenkorb

+ String[] SearchProdukt()

+ Bool AddProduktZuWarenkorb(Produkt)

+ Bool DelProduktAusWarenkorb(Produkt)

+ Bool ChangeProduktInWarenkorb(Produkt, int count)

+ void MoveProduktInWarenkorb(Produkt, int move)

+ void UpdateKundeInWarenkorb(Kunde)


Bool AddBestellung(Warenkorb)

+ String[] ShowBestellungen()

+ void StorniereBestellung(Bestellung)

OnlineShop...

Produkt


 + int id

+ String name

+ int transportGewicht
+ int netto

+ int mwStSatz

+ int lagerbestand


+ int BruttoPreis()

+ void UpdateProdukt(Produkt)

Produkt + int id...

Warenkorb


+ ArrayList<Produkt> inhalt

+ ArrayList<Integer> anzahl

+ Kunde kunde


+ int NettoPreis()

+ int BruttoPreis()

 + int NettoVersandkosten()
 + int BruttoVersandkosten()
 + int NettoGesamtPreis()
 + int BruttoGesamtPreis()

+ Bool AddProdukt(Produkt, int count)

+ Bool DelProdukt(Produkt)

+ Bool ChangeProdukt(Produkt, int count)

+ void MoveProdukt(Produkt, int move)


+ void UpdateKunde(Kunde)

Warenkorb...

Bestellung


+ int id

+ Warenkorb bestellungen
+ Bool storniert


+ void StorniereBestellung(Warenkorb)

Bestellung...

Kunde


+ String name

+ String Adresse

Kunde...
n
n
1
1
1
1
1
1
1
1
1
1
1
1
n
n
1
1
n
n
Text is not SVG - cannot display
\ No newline at end of file +
1
1
1
1

ShopTUI


+ OnlineShop shop
+ Scanner sc



+ void main(String[] args)
+ void Menu(OnlineShop, Scanner)


ShopTUI...
1
1
1
1

OnlineShop


+ ArrayList<Produkt> lager 

+ ArrayList<Bestellung> bestellungen

+ Warenkorb aktuellerWarenkorb



+ Bool AddProdukt(Produkt)
+ Bool UpdateExistingProdukt(Produkt, NewProdukt)


+ String[] ShowWarenkorb

+ String[] SearchProdukt()

+ Bool AddProduktZuWarenkorb(Produkt)

+ Bool DelProduktAusWarenkorb(Produkt)

+ Bool ChangeProduktInWarenkorb(Produkt, int count)

+ void UpdateKundeInWarenkorb(Kunde)


Bool AddBestellung(Warenkorb)

+ String[] ShowBestellungen()

+ void StorniereBestellung(Bestellung)

OnlineShop...

Produkt


 + int id

+ String name

+ int transportGewicht
+ int netto

+ int mwStSatz

+ int lagerbestand


+ int BruttoPreis()

+ void UpdateProdukt(Produkt)

Produkt + int id...

Warenkorb


+ ArrayList<Produkt> inhalt

+ ArrayList<Integer> anzahl

+ Kunde kunde


+ int NettoPreis()

+ int BruttoPreis()

 + int NettoVersandkosten()
 + int BruttoVersandkosten()
 + int NettoGesamtPreis()
 + int BruttoGesamtPreis()

+ Bool AddProdukt(Produkt, int count)

+ Bool DelProdukt(Produkt)

+ Bool ChangeProdukt(Produkt, int count)


+ void UpdateKunde(Kunde)

Warenkorb...

Bestellung


+ int id

+ Warenkorb bestellungen
+ Bool storniert


+ void StorniereBestellung(Warenkorb)

Bestellung...

Kunde


+ String name

+ String Adresse

Kunde...
n
n
1
1
1
1
1
1
1
1
1
1
1
1
n
n
1
1
n
n
Text is not SVG - cannot display
\ No newline at end of file diff --git a/Versandkostenpreis Netto berechnung.svg b/Versandkostenpreis Netto berechnung.svg index 9dce903..4ea5d2c 100644 --- a/Versandkostenpreis Netto berechnung.svg +++ b/Versandkostenpreis Netto berechnung.svg @@ -1,4 +1,4 @@ -
Bratwurst
Bratwurst
100kg
100kg
7%
7%
100€
100€
Riesling
Riesling
200kg
200kg
19%
19%
200€
200€
107€
107€
238€
238€
Produkt
Produkt
Gewicht
Gewicht
Mwst
Mwst
Netto
Netto
Brutto
Brutto
Versandkosten berechnung
Versandkosten berech...
19,95€
19,95€
6,21€+11,18€=17,39€
6,21€+11,18€=17,39€
Bratwurst
Bratwurst
7%
7%
Riesling
Riesling
19%
19%
300€
300€
100€/300€=1/3
100€/300€=1/3
200€/300€=2/3
200€/300€=2/3
1/3*19,95€=6,65€
1/3*19,95€=6,65€
2/3*19,95€=13,3€
2/3*19,95€=13,3€
Prottobreis anteilmäßig fürs Produkt berechnet 
Prottobreis anteilmä...
6,65€/1,07=6,21€%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfillColor%3D%23d5e8d4%3BstrokeColor%3D%2382b366%3Bopacity%3D40%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22430%22%20y%3D%22290%22%20width%3D%2240%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
6,65€/1,07=6,21€%3CmxG...
13,3€/1,19=11,18€
13,3€/1,19=11,18€
Nettopreisanteilig pro Produkt berechnet
Nettopreisanteilig p...
Nettopreis versandkosten
Nettopreis versandkosten
Gesammt Nettopreis Versandgüter
Gesammt Nettopreis V...
Doch damit noch nicht genug, wenn
eine Lieferung nun bspw. Kosten von 100 Euro zu 7% MwSt. und 200 Euro zu
19% MwSt. enthält, muss die MwSt. der 19,95 Euro Versandkosten auch
anteilig nach dem Warenwert verteilt werden. Also 1/3 = 6,65 entfallen
auf 7% (Nettopreis VK: 6,65 / 1,07), 2/3 = 13,30 auf 19% (Nettopreis VK:
13,30 / 1,19).
Doch damit noch nicht genug, wenn...
Text is not SVG - cannot display
\ No newline at end of file +
Bratwurst
Bratwurst
100kg
100kg
7%
7%
100€
100€
Riesling
Riesling
200kg
200kg
19%
19%
200€
200€
107€
107€
238€
238€
Produkt
Produkt
Gewicht
Gewicht
Mwst
Mwst
Netto
Netto
Brutto
Brutto
Versandkosten berechnung
Versandkosten berech...
19,95€
19,95€
6,21€+11,18€=17,39€
6,21€+11,18€=17,39€
Bratwurst
Bratwurst
7%
7%
Riesling
Riesling
19%
19%
300€
300€
100€/300€=1/3
100€/300€=1/3
200€/300€=2/3
200€/300€=2/3
1/3*19,95€=6,65€
1/3*19,95€=6,65€
2/3*19,95€=13,3€
2/3*19,95€=13,3€
Bruttobreis anteilmäßig fürs Produkt berechnet 
Bruttobreis anteilmä...
6,65€/1,07=6,21€%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22%22%20style%3D%22rounded%3D0%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3BfillColor%3D%23d5e8d4%3BstrokeColor%3D%2382b366%3Bopacity%3D40%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22430%22%20y%3D%22290%22%20width%3D%2240%22%20height%3D%2220%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3E
6,65€/1,07=6,21€%3CmxG...
13,3€/1,19=11,18€
13,3€/1,19=11,18€
Nettopreisanteilig pro Produkt berechnet
Nettopreisanteilig p...
Nettopreis versandkosten
Nettopreis versandkosten
Gesammt Nettopreis Versandgüter
Gesammt Nettopreis V...
Doch damit noch nicht genug, wenn
eine Lieferung nun bspw. Kosten von 100 Euro zu 7% MwSt. und 200 Euro zu
19% MwSt. enthält, muss die MwSt. der 19,95 Euro Versandkosten auch
anteilig nach dem Warenwert verteilt werden. Also 1/3 = 6,65 entfallen
auf 7% (Nettopreis VK: 6,65 / 1,07), 2/3 = 13,30 auf 19% (Nettopreis VK:
13,30 / 1,19).
Doch damit noch nicht genug, wenn...
Text is not SVG - cannot display
\ No newline at end of file