OnlineShop/src/OnlineShop.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();
}
}