finish class ShopTUI
parent
a45c6d8fad
commit
4d2251af0f
|
|
@ -12,7 +12,19 @@ public class OnlineShop {
|
||||||
this.bestellungen = new ArrayList<Bestellung>();
|
this.bestellungen = new ArrayList<Bestellung>();
|
||||||
this.aktuellerWarenkorb = new Warenkorb();
|
this.aktuellerWarenkorb = new Warenkorb();
|
||||||
};
|
};
|
||||||
|
public void AddProdukteVonDatei(ArrayList<String> produktfile) {
|
||||||
|
for(int i = 1; i < produktfile.size(); i++) {
|
||||||
|
String ProduktId = produktfile.get(i).split(",")[0];
|
||||||
|
String ProduktName = produktfile.get(i).split(",")[1];
|
||||||
|
String ProduktGewicht = produktfile.get(i).split(",")[2];
|
||||||
|
String ProduktPreis = produktfile.get(i).split(",")[3];
|
||||||
|
String ProduktMwst = produktfile.get(i).split(",")[4];
|
||||||
|
String ProduktLagerBestand = produktfile.get(i).split(",")[5];
|
||||||
|
|
||||||
|
Produkt temp = new Produkt(Integer.parseInt(ProduktId),ProduktName,(int)Math.round(Double.parseDouble(ProduktGewicht)*1000),(int)Math.round(Double.parseDouble(ProduktPreis)*100),Integer.parseInt(ProduktMwst),Integer.parseInt(ProduktLagerBestand));
|
||||||
|
AddProdukt(temp);
|
||||||
|
}
|
||||||
|
}
|
||||||
public void AddProdukt(Produkt neu){
|
public void AddProdukt(Produkt neu){
|
||||||
this.lager.add(neu);
|
this.lager.add(neu);
|
||||||
};
|
};
|
||||||
|
|
@ -33,23 +45,27 @@ public class OnlineShop {
|
||||||
};
|
};
|
||||||
public ArrayList<String[]> ShowWarenkorb(){
|
public ArrayList<String[]> ShowWarenkorb(){
|
||||||
ArrayList<String[]> ret = new ArrayList<String[]>();
|
ArrayList<String[]> ret = new ArrayList<String[]>();
|
||||||
|
ret.add(new String[] {this.aktuellerWarenkorb.kunde.name,this.aktuellerWarenkorb.kunde.Adresse,""+this.aktuellerWarenkorb.NettoPreis(),""+this.aktuellerWarenkorb.NettoVersandkosten(),""+this.aktuellerWarenkorb.NettoGesamtPreis(),""+this.aktuellerWarenkorb.BruttoPreis(),""+this.aktuellerWarenkorb.BruttoVersandkosten(),""+this.aktuellerWarenkorb.BruttoGesamtPreis(),""+this.aktuellerWarenkorb.Gewicht()});
|
||||||
for(int i = 0; i < this.aktuellerWarenkorb.inhalt.size(); i++) {
|
for(int i = 0; i < this.aktuellerWarenkorb.inhalt.size(); i++) {
|
||||||
ret.add(new String[]{""+this.aktuellerWarenkorb.inhalt.get(i).id, this.aktuellerWarenkorb.inhalt.get(i).name, ""+this.aktuellerWarenkorb.inhalt.get(i).transportGewicht, ""+this.aktuellerWarenkorb.inhalt.get(i).netto, ""+this.aktuellerWarenkorb.inhalt.get(i).mwStSatz, ""+this.aktuellerWarenkorb.inhalt.get(i).lagerbestand, ""+this.aktuellerWarenkorb.anzahl.get(i)});
|
ret.add(new String[]{""+this.aktuellerWarenkorb.inhalt.get(i).id, this.aktuellerWarenkorb.inhalt.get(i).name, ""+(this.aktuellerWarenkorb.inhalt.get(i).netto*this.aktuellerWarenkorb.anzahl.get(i)), ""+this.aktuellerWarenkorb.inhalt.get(i).mwStSatz, ""+this.aktuellerWarenkorb.anzahl.get(i)});
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
public ArrayList<String[]> SearchProdukt(String substing){
|
public ArrayList<String[]> SearchProdukt(String substing){
|
||||||
ArrayList<String[]> ret = new ArrayList<String[]>();
|
ArrayList<String[]> ret = new ArrayList<String[]>();
|
||||||
for(int i = 0; i < this.lager.size(); i++) {
|
for(int i = 0; i < this.lager.size(); i++) {
|
||||||
if(this.lager.get(i).name.contains(substing)) {
|
if(this.lager.get(i).name.toLowerCase().contains(substing.toLowerCase())) {
|
||||||
ret.add(new String[]{""+this.lager.get(i).id, this.lager.get(i).name, ""+this.lager.get(i).transportGewicht, ""+this.lager.get(i).netto, ""+this.lager.get(i).mwStSatz, ""+this.lager.get(i).lagerbestand});
|
ret.add(new String[]{""+this.lager.get(i).id, this.lager.get(i).name, ""+this.lager.get(i).transportGewicht, ""+this.lager.get(i).netto, ""+this.lager.get(i).mwStSatz, ""+this.lager.get(i).lagerbestand});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
public void AddProduktZuWarenkorb(Produkt add, int count){
|
public void AddProduktZuWarenkorb(int id, int count){
|
||||||
if(count <= add.lagerbestand)
|
Produkt neu = FindeProduktVonId(id);
|
||||||
aktuellerWarenkorb.AddProdukt(add, count);
|
if(neu == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
aktuellerWarenkorb.AddProdukt(neu, count);
|
||||||
};
|
};
|
||||||
public void DelProduktAusWarenkorb(Produkt del){
|
public void DelProduktAusWarenkorb(Produkt del){
|
||||||
aktuellerWarenkorb.DelProdukt(del);
|
aktuellerWarenkorb.DelProdukt(del);
|
||||||
|
|
@ -57,8 +73,8 @@ public class OnlineShop {
|
||||||
public void ChangeProduktInWarenkorb(Produkt change, int count){
|
public void ChangeProduktInWarenkorb(Produkt change, int count){
|
||||||
aktuellerWarenkorb.ChangeProdukt(change, count);
|
aktuellerWarenkorb.ChangeProdukt(change, count);
|
||||||
};
|
};
|
||||||
public void UpdateKundeInWarenkorb(Kunde neu){
|
public void UpdateKundeInWarenkorb(String name, String addr){
|
||||||
aktuellerWarenkorb.UpdateKunde(neu);
|
aktuellerWarenkorb.UpdateKunde(new Kunde(name, addr));
|
||||||
};
|
};
|
||||||
public void AddBestellung(){
|
public void AddBestellung(){
|
||||||
Warenkorb Bestellkorb = new Warenkorb(this.aktuellerWarenkorb.kunde);
|
Warenkorb Bestellkorb = new Warenkorb(this.aktuellerWarenkorb.kunde);
|
||||||
|
|
@ -88,4 +104,21 @@ public class OnlineShop {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
public void ResetWarenkorb() {
|
||||||
|
this.aktuellerWarenkorb = new Warenkorb();
|
||||||
|
}
|
||||||
|
public Boolean validWarenkorb() {
|
||||||
|
if(this.aktuellerWarenkorb.kunde.Adresse==""||this.aktuellerWarenkorb.kunde.name=="") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
public Produkt FindeProduktVonId(int id) {
|
||||||
|
for(int i = 0; i < this.lager.size(); i++) {
|
||||||
|
if(this.lager.get(i).id==id) {
|
||||||
|
return this.lager.get(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,14 +29,14 @@ public class Warenkorb {
|
||||||
public int BruttoPreis(){
|
public int BruttoPreis(){
|
||||||
double tmp = 0;
|
double tmp = 0;
|
||||||
for(int i = 0; i < this.inhalt.size(); i++) {
|
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));
|
tmp += (this.inhalt.get(i).netto*this.anzahl.get(i)*((double)1+((double)this.inhalt.get(i).mwStSatz)/100));
|
||||||
}
|
}
|
||||||
return (int) Math.round(tmp);
|
return (int) Math.round(tmp);
|
||||||
};
|
};
|
||||||
public int NettoVersandkosten(){
|
public int NettoVersandkosten(){
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
for(int i = 0; i < this.inhalt.size(); i++) {
|
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);
|
ret += BruttoVersandkosten()-(((this.inhalt.get(i).netto*this.anzahl.get(i))/NettoPreis())*BruttoVersandkosten())/(1+this.inhalt.get(i).mwStSatz);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
};
|
};
|
||||||
|
|
@ -60,11 +60,15 @@ public class Warenkorb {
|
||||||
return BruttoPreis()+BruttoVersandkosten();
|
return BruttoPreis()+BruttoVersandkosten();
|
||||||
};
|
};
|
||||||
public void AddProdukt(Produkt add, int count){
|
public void AddProdukt(Produkt add, int count){
|
||||||
if(count <= add.lagerbestand) {
|
if(IsProduktInWarenkorb(add)) {
|
||||||
this.inhalt.add(add);
|
ChangeProdukt(add, GetProduktAnzahl(add)+count);
|
||||||
this.anzahl.add(count);
|
} else {
|
||||||
CheckCount(add);
|
if(count <= add.lagerbestand) {
|
||||||
|
this.inhalt.add(add);
|
||||||
|
this.anzahl.add(count);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
CheckCount(add);
|
||||||
};
|
};
|
||||||
public void DelProdukt(Produkt del){
|
public void DelProdukt(Produkt del){
|
||||||
for(int i = 0; i < this.inhalt.size(); i++) {
|
for(int i = 0; i < this.inhalt.size(); i++) {
|
||||||
|
|
@ -98,11 +102,27 @@ public class Warenkorb {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private int Gewicht() {
|
public int Gewicht() {
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
for(int i = 0; i < this.inhalt.size(); i++) {
|
for(int i = 0; i < this.inhalt.size(); i++) {
|
||||||
ret += (this.inhalt.get(i).transportGewicht*this.anzahl.get(i));
|
ret += (this.inhalt.get(i).transportGewicht*this.anzahl.get(i));
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
public Boolean IsProduktInWarenkorb(Produkt zutesten) {
|
||||||
|
for(int i = 0; i < this.inhalt.size(); i++) {
|
||||||
|
if(zutesten.equals(this.inhalt.get(i))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public int GetProduktAnzahl(Produkt zutesten) {
|
||||||
|
for(int i = 0; i < this.inhalt.size(); i++) {
|
||||||
|
if(zutesten.equals(this.inhalt.get(i))) {
|
||||||
|
return this.anzahl.get(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,164 @@ import java.util.ArrayList;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class ShopTUI {
|
public class ShopTUI {
|
||||||
public static void main(String[] args) {
|
private static OnlineShop shop;
|
||||||
OnlineShop shop = new OnlineShop();
|
private static Scanner sc;
|
||||||
Scanner sc = new Scanner(System.in);
|
public static void main(String[] args) throws FileNotFoundException {
|
||||||
Menu(shop, sc);
|
shop = new OnlineShop();
|
||||||
|
sc = new Scanner(System.in);
|
||||||
|
shop.AddProdukteVonDatei(readFile("resources/produkte.csv"));
|
||||||
|
Menu();
|
||||||
System.out.println("Ende.");
|
System.out.println("Ende.");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void Menu(OnlineShop shop, Scanner sc) {
|
private static void Menu() {
|
||||||
|
Boolean ende = false;
|
||||||
|
while(!ende) {
|
||||||
|
if(!shop.validWarenkorb()) {
|
||||||
|
UpdateKundeInWarenkorb();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
System.out.println("Wählen Sie:");
|
||||||
|
System.out.println("1) Alle Produkte anzeigen");
|
||||||
|
System.out.println("2) Produkt nach Namen suchen");
|
||||||
|
System.out.println("3) Produkt anhand der id hinzufügen/ löschen");
|
||||||
|
System.out.println("4) Warenkorb anzeigen");
|
||||||
|
System.out.println("5) Warenkorb leeren");
|
||||||
|
System.out.println("6) Kundendaten ändern");
|
||||||
|
System.out.println("7) Bestellen");
|
||||||
|
//System.out.println("8) Alte Bestellungen anzeigen");
|
||||||
|
System.out.println("9) exit");
|
||||||
|
System.out.println();
|
||||||
|
String orgeingabe = sc.nextLine();
|
||||||
|
if(!(orgeingabe.length()>0&&(orgeingabe.charAt(0)>'0'&&orgeingabe.charAt(0)<='9'))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int eingabe = Integer.parseInt(""+orgeingabe.charAt(0));
|
||||||
|
switch (eingabe) {
|
||||||
|
case 1 :
|
||||||
|
ShowProdukte();
|
||||||
|
break;
|
||||||
|
case 2 :
|
||||||
|
SearchProdukt();
|
||||||
|
break;
|
||||||
|
case 3 :
|
||||||
|
AddProdukt();
|
||||||
|
break;
|
||||||
|
case 4 :
|
||||||
|
ShowWarenkorb();
|
||||||
|
break;
|
||||||
|
case 5 :
|
||||||
|
ResetWarenkorb();
|
||||||
|
break;
|
||||||
|
case 6 :
|
||||||
|
UpdateKundeInWarenkorb();
|
||||||
|
break;
|
||||||
|
case 7 :
|
||||||
|
Bestellen();
|
||||||
|
break;
|
||||||
|
case 8 :
|
||||||
|
ShowBestellungen();
|
||||||
|
break;
|
||||||
|
case 9 :
|
||||||
|
ende = true;
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void ShowProdukte(){
|
||||||
|
ArrayList<String[]> produkte = shop.ShowProdukte();
|
||||||
|
for(int i = 0; i < produkte.size(); i++) {
|
||||||
|
System.out.println("id: "+produkte.get(i)[0]);
|
||||||
|
System.out.println("Name: "+produkte.get(i)[1]);
|
||||||
|
System.out.println("Gewicht: "+produkte.get(i)[2]+"g");
|
||||||
|
System.out.println("Nettopreis: "+produkte.get(i)[3]+"ct");
|
||||||
|
System.out.println("MwStSatz: "+produkte.get(i)[4]+"%");
|
||||||
|
System.out.println("Lagerbestand: "+produkte.get(i)[5]);
|
||||||
|
System.out.println("");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private static void SearchProdukt(){
|
||||||
|
System.out.println("Bitte schreiben Sie den Suchbegriff:");
|
||||||
|
String orgeingabe = sc.nextLine();
|
||||||
|
ArrayList<String[]> produkte = shop.SearchProdukt(orgeingabe);
|
||||||
|
for(int i = 0; i < produkte.size(); i++) {
|
||||||
|
System.out.println("id: "+produkte.get(i)[0]);
|
||||||
|
System.out.println("Name: "+produkte.get(i)[1]);
|
||||||
|
System.out.println("Gewicht: "+produkte.get(i)[2]+"g");
|
||||||
|
System.out.println("Nettopreis: "+produkte.get(i)[3]+"ct");
|
||||||
|
System.out.println("MwStSatz: "+produkte.get(i)[4]+"%");
|
||||||
|
System.out.println("Lagerbestand: "+produkte.get(i)[5]);
|
||||||
|
System.out.println("");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
private static void AddProdukt(){
|
||||||
|
System.out.println("Bitte geben Sie die id des Produktes ein:");
|
||||||
|
String orgeingabe = sc.nextLine();
|
||||||
|
int id = Integer.parseInt(orgeingabe);
|
||||||
|
for(int i = 0; i<orgeingabe.length();i++) {
|
||||||
|
if(!(orgeingabe.charAt(i)>='0'&&orgeingabe.charAt(i)<='9')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("Bitte geben Sie die Anzahl an:");
|
||||||
|
orgeingabe = sc.nextLine();
|
||||||
|
int count = Integer.parseInt(orgeingabe);
|
||||||
|
for(int i = 0; i<orgeingabe.length();i++) {
|
||||||
|
if(orgeingabe.charAt(i)=='-')
|
||||||
|
continue;
|
||||||
|
if(!(orgeingabe.charAt(i)>='0'&&orgeingabe.charAt(i)<='9')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
shop.AddProduktZuWarenkorb(id,count);
|
||||||
|
};
|
||||||
|
private static void ShowWarenkorb(){
|
||||||
|
ArrayList<String[]> produkte = shop.ShowWarenkorb();
|
||||||
|
for(int i = 1; i < produkte.size(); i++) {
|
||||||
|
System.out.println("id: "+produkte.get(i)[0]);
|
||||||
|
System.out.println("Name: "+produkte.get(i)[1]);
|
||||||
|
System.out.println("Nettopreis: "+produkte.get(i)[2]+"ct");
|
||||||
|
System.out.println("MwStSatz: "+produkte.get(i)[3]+"%");
|
||||||
|
System.out.println("Anzahl im Warenkorb: "+produkte.get(i)[4]);
|
||||||
|
System.out.println("");
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("Name: "+produkte.get(0)[0]);
|
||||||
|
System.out.println("Adresse: "+produkte.get(0)[1]);
|
||||||
|
System.out.println("Netto: "+produkte.get(0)[2]+"ct");
|
||||||
|
System.out.println("Netto Versandkosten: "+produkte.get(0)[3]+"ct");
|
||||||
|
System.out.println("Netto gesamt: "+produkte.get(0)[4]+"ct");
|
||||||
|
System.out.println("Brutto: "+produkte.get(0)[5]+"ct");
|
||||||
|
System.out.println("Brutto Versandkosten: "+produkte.get(0)[6]+"ct");
|
||||||
|
System.out.println("Brutto gesamt: "+produkte.get(0)[7]+"ct");
|
||||||
|
};
|
||||||
|
private static void ResetWarenkorb(){
|
||||||
|
shop.ResetWarenkorb();
|
||||||
|
};
|
||||||
|
private static void UpdateKundeInWarenkorb(){
|
||||||
|
System.out.println("Bitte schreiben Sie ihren Namen:");
|
||||||
|
String name = sc.nextLine();
|
||||||
|
System.out.println("Bitte schreiben Sie ihre Addresse:");
|
||||||
|
String addr = sc.nextLine();
|
||||||
|
shop.UpdateKundeInWarenkorb(name, addr);
|
||||||
|
};
|
||||||
|
private static void Bestellen() {
|
||||||
|
shop.AddBestellung();
|
||||||
|
};
|
||||||
|
private static void ShowBestellungen(){};
|
||||||
|
|
||||||
|
|
||||||
|
private static ArrayList<String> readFile(String path) throws FileNotFoundException {
|
||||||
|
ArrayList<String> lines = new ArrayList<>();
|
||||||
|
Scanner sc = new Scanner(new File(path));
|
||||||
|
while (sc.hasNextLine()) {
|
||||||
|
lines.add(sc.nextLine());
|
||||||
|
}
|
||||||
|
sc.close();
|
||||||
|
return lines;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue