170 lines
6.3 KiB
Java
170 lines
6.3 KiB
Java
import java.io.File;
|
|
import java.io.FileNotFoundException;
|
|
import java.util.ArrayList;
|
|
import java.util.Scanner;
|
|
|
|
public class OnlineShop {
|
|
public ArrayList<Produkt> lager;
|
|
Warenkorb warenkorb = new Warenkorb();
|
|
|
|
public OnlineShop() throws FileNotFoundException {
|
|
lager = new ArrayList<Produkt>();
|
|
umwandlung(lager);
|
|
}
|
|
|
|
public 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;
|
|
}
|
|
|
|
public static ArrayList<Produkt> umwandlung (ArrayList<Produkt> liste) throws FileNotFoundException {
|
|
ArrayList<String> resource = readFile("resources\\produkte.csv");
|
|
for (int i = 1; i < resource.size(); i++) {
|
|
String[] teile = resource.get(i).split(",");
|
|
Produkt produkt = new Produkt();
|
|
produkt.produktNr = Integer.parseInt(teile[0]);
|
|
produkt.name = teile[1];
|
|
produkt.gewicht = Double.parseDouble(teile[2]);
|
|
produkt.preis = Double.parseDouble(teile[3]);
|
|
produkt.mwSteuer = Integer.parseInt(teile[4]);
|
|
produkt.lagerbestand = Integer.parseInt(teile[5]);
|
|
|
|
liste.add(produkt);
|
|
}
|
|
return liste;
|
|
|
|
}
|
|
|
|
public void produkteListe() throws FileNotFoundException {
|
|
for (int i = 0; i < lager.size(); i++) {
|
|
System.out.println(i+1 + ". " + lager.get(i).getName());
|
|
}
|
|
}
|
|
|
|
public void produkteInformationen() throws FileNotFoundException {
|
|
String[] produkt = new String[lager.size()];
|
|
System.out.println("ProdId,Name,TransportGewicht,Netto,MwStSatz,Lagerbestand\n");
|
|
for (int i = 0; i < lager.size(); i++) {
|
|
produkt[i] = lager.get(i).toString();
|
|
System.out.println(produkt[i]);
|
|
}
|
|
System.out.println("");
|
|
}
|
|
|
|
public void inWarenkorb(int produktNr, int menge){
|
|
warenkorb.produkte.add(lager.get(produktNr-1));
|
|
warenkorb.menge.add(menge);
|
|
}
|
|
|
|
public void warenkorbAusgabe(){
|
|
|
|
System.out.println("Der aktuelle Warenkorb sieht so aus: ");
|
|
double[] bruttopreis = warenkorb.bruttoPreisBerechnen();
|
|
for (int i = 0; i < warenkorb.menge.size(); i++) {;
|
|
System.out.println(warenkorb.menge.get(i) + " Stück | " + lager.get(i).getName() + " | " + (bruttopreis[i] * warenkorb.menge.get(i)) + "€");
|
|
}
|
|
|
|
}
|
|
|
|
public void warenkorbÄnderungen(int auswahl){
|
|
Scanner scanner = new Scanner(System.in);
|
|
if (auswahl == 1) {
|
|
System.out.println("Welches Produkt möchten Sie aus dem Warenkorb löschen? \nBitte die Stelle im Warenkorb angeben (0=Hauptmenü)\n");
|
|
int warenkorbStelle = scanner.nextInt();
|
|
if (warenkorbStelle == 0) {
|
|
return;
|
|
}
|
|
while(true) {
|
|
if (warenkorbStelle > lager.size()) {
|
|
System.out.println("Ungültige Eingabe! ");
|
|
continue;
|
|
}
|
|
else {break;}
|
|
}
|
|
warenkorb.menge.remove(warenkorbStelle-1); //".remove" mit Hilfe von KI
|
|
warenkorb.produkte.remove(warenkorbStelle-1);
|
|
|
|
|
|
} else if (auswahl == 2) {
|
|
System.out.println("Von welchem Produkt möchten Sie die Menge verändern \nBitte die Stelle im Warenkorb angeben (0=Hauptmenü)\n");
|
|
int warenkorbStelle = scanner.nextInt();
|
|
if (warenkorbStelle == 0) {
|
|
return;
|
|
}
|
|
while (true) {
|
|
if (warenkorbStelle > lager.size()) {
|
|
System.out.println("Ungültige Eingabe! ");
|
|
continue;
|
|
} else {
|
|
break;
|
|
}
|
|
}
|
|
System.out.println("Bitte neue Menge angeben: ");
|
|
int mengeNeu = scanner.nextInt();
|
|
|
|
warenkorb.menge.set(warenkorbStelle-1, mengeNeu);
|
|
System.out.println(warenkorb.menge.get(warenkorbStelle-1));
|
|
}
|
|
|
|
warenkorbAusgabe();
|
|
while(true) {
|
|
System.out.println("\n \n Möchten Sie weitere Änderungen vornehmen?(1=Ja, 2=Nein): ");
|
|
int auswahlNeu = scanner.nextInt();
|
|
if (auswahlNeu == 1) {
|
|
System.out.println("1=Produkt löschen, 2=Menge verändern");
|
|
auswahl = scanner.nextInt();
|
|
warenkorbÄnderungen(auswahl);
|
|
}
|
|
else if (auswahlNeu == 2) {
|
|
break;
|
|
}
|
|
else{
|
|
System.out.println("Falsche Eingabe!");
|
|
continue;
|
|
}
|
|
|
|
}
|
|
}
|
|
public void bestellungAbschließen(){
|
|
Scanner scanner = new Scanner(System.in);
|
|
System.out.println("Sind Sie sich sicher? (1=Fortfahren, 2=Hauptmenü)");
|
|
int fortfahren = scanner.nextInt();
|
|
if (fortfahren == 2) {
|
|
return;
|
|
}
|
|
System.out.println("Bitte geben Sie Ihren Namen an (Vorname Nachname): ");
|
|
scanner.nextLine();
|
|
String name = scanner.nextLine();
|
|
System.out.println("Bitte geben Sie Ihre Adresse ein (Straße Hausnummer PLZ Ort)");
|
|
String adresse = scanner.nextLine();
|
|
Bestellung bestellung = new Bestellung();
|
|
bestellung.name = name;
|
|
bestellung.adresse = adresse;
|
|
|
|
double[] versandkostenUndAnteile = warenkorb.versandkostenBerechnen();
|
|
bestellung.versandkosten = versandkostenUndAnteile[0];
|
|
bestellung.anteil7 = versandkostenUndAnteile[1];
|
|
bestellung.anteil19 = versandkostenUndAnteile[2];
|
|
double[] bruttopreis = warenkorb.bruttoPreisBerechnen();
|
|
double gesamtpreis = 0;
|
|
for (int i = 0; i <bruttopreis.length; i++) {
|
|
gesamtpreis += bruttopreis[i] * warenkorb.menge.get(i);
|
|
}
|
|
bestellung.gesamtPreis = versandkostenUndAnteile[0] + gesamtpreis;
|
|
|
|
warenkorb.menge.clear(); //.clear() mit Hilfe von KI
|
|
warenkorb.produkte.clear();
|
|
bestellung.bestellbestätigung();
|
|
}
|
|
|
|
}
|