OnlineShop
parent
4d25a7264f
commit
45c16f3ae4
|
@ -1,17 +1,16 @@
|
||||||
package OnlineShop.UI;
|
package OnlineShop.UI;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
import OnlineShop.domain.*;
|
import OnlineShop.domain.*;
|
||||||
import OnlineShop.domain.ExceptionsKlassen.KeineProdukteImWarenkorb;
|
import OnlineShop.domain.ExceptionsKlassen.*;
|
||||||
import OnlineShop.domain.ExceptionsKlassen.LeereEingabeException;
|
|
||||||
import OnlineShop.domain.ExceptionsKlassen.ProduktNichtGefundenException;
|
|
||||||
|
|
||||||
|
|
||||||
public class TUI {
|
public class TUI {
|
||||||
|
|
||||||
private Kaufhalle kaufhalle;
|
private Kaufhalle kaufhalle;
|
||||||
private Scanner eingabe;
|
private Scanner eingabe = new Scanner(System.in);
|
||||||
|
|
||||||
|
private String optionAuswahl;
|
||||||
|
|
||||||
public TUI() throws FileNotFoundException, ProduktNichtGefundenException {
|
public TUI() throws FileNotFoundException, ProduktNichtGefundenException {
|
||||||
this.kaufhalle = new Kaufhalle();
|
this.kaufhalle = new Kaufhalle();
|
||||||
|
@ -32,8 +31,6 @@ public class TUI {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void shwoOptions() throws ProduktNichtGefundenException {
|
private void shwoOptions() throws ProduktNichtGefundenException {
|
||||||
eingabe = new Scanner(System.in);
|
|
||||||
String optionAuswahl;
|
|
||||||
boolean programmAktive = true;
|
boolean programmAktive = true;
|
||||||
while (programmAktive) {
|
while (programmAktive) {
|
||||||
System.out.println("Wählen Sie bitte ein Option aus: ");
|
System.out.println("Wählen Sie bitte ein Option aus: ");
|
||||||
|
@ -54,31 +51,32 @@ public class TUI {
|
||||||
for (String p : kaufhalle.zeigeAlleProdukteImWarenkorb())
|
for (String p : kaufhalle.zeigeAlleProdukteImWarenkorb())
|
||||||
System.out.println(p);
|
System.out.println(p);
|
||||||
|
|
||||||
double gesamtKosten = kaufhalle.getGesamtKosten();
|
|
||||||
String formattedPreis = String.format("%.2f", gesamtKosten);
|
|
||||||
System.out.println("Gesamtkosten: " + formattedPreis);
|
|
||||||
System.out.println("Möchten Sie die ausgewählte Produkte bestellen Ja/Nein");
|
System.out.println("Möchten Sie die ausgewählte Produkte bestellen Ja/Nein");
|
||||||
System.out.print(">");
|
System.out.print(">");
|
||||||
String bestellung = eingabe.nextLine();
|
String bestellung = eingabe.nextLine();
|
||||||
if (bestellung.equalsIgnoreCase("ja")) {
|
if (bestellung.equalsIgnoreCase("ja")) {
|
||||||
System.out.println("Geben Sie bitte Ihren Name ein:");
|
System.out.println("Geben Sie bitte Ihren Name ein:");
|
||||||
System.out.println(">");
|
System.out.print(">");
|
||||||
String name = eingabe.nextLine();
|
String name = eingabe.nextLine();
|
||||||
System.out.println("Geben Sie bitte Ihren Anschrift ein:");
|
System.out.println("Geben Sie bitte Ihren Anschrift ein:");
|
||||||
System.out.println(">");
|
System.out.print(">");
|
||||||
String anschrift = eingabe.nextLine();
|
String anschrift = eingabe.nextLine();
|
||||||
try {
|
try {
|
||||||
kaufhalle.getKundenDaten(name, anschrift);
|
kaufhalle.getKundenDaten(name, anschrift);
|
||||||
kaufhalle.sendBestellung();
|
System.out.println(kaufhalle.sendBestellung());
|
||||||
|
System.out.println("Betrag bitte eingeben: ");
|
||||||
|
System.out.print(">");
|
||||||
|
double betrag = eingabe.nextDouble();
|
||||||
|
if (kaufhalle.getBetrag(betrag))
|
||||||
|
kaufhalle.speichereBestellung();
|
||||||
|
|
||||||
}catch (LeereEingabeException e) {
|
|
||||||
|
} catch (LeereEingabeException e) {
|
||||||
System.out.println(e.getMessage());
|
System.out.println(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
shwoOptions();
|
shwoOptions();
|
||||||
|
|
||||||
|
|
||||||
} catch (KeineProdukteImWarenkorb e) {
|
} catch (KeineProdukteImWarenkorb e) {
|
||||||
System.out.println(e.getMessage());
|
System.out.println(e.getMessage());
|
||||||
}
|
}
|
||||||
|
@ -90,10 +88,8 @@ public class TUI {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ProdukteAuwählenUI() throws ProduktNichtGefundenException {
|
private void ProdukteAuwählenUI() throws ProduktNichtGefundenException {
|
||||||
eingabe = new Scanner(System.in);
|
|
||||||
boolean einkaufAktive = true;
|
boolean einkaufAktive = true;
|
||||||
String weiterEinkaufen;
|
String weiterEinkaufen;
|
||||||
String optionAuswahl;
|
|
||||||
while (einkaufAktive) {
|
while (einkaufAktive) {
|
||||||
System.out.println("Wählen Sie bitte ein Option aus: ");
|
System.out.println("Wählen Sie bitte ein Option aus: ");
|
||||||
System.out.println("1. Prpdukte auswählen und zu Ihrem Warenkorb senden");
|
System.out.println("1. Prpdukte auswählen und zu Ihrem Warenkorb senden");
|
||||||
|
@ -111,7 +107,8 @@ public class TUI {
|
||||||
} catch (ProduktNichtGefundenException e) {
|
} catch (ProduktNichtGefundenException e) {
|
||||||
System.out.println(e.getMessage());
|
System.out.println(e.getMessage());
|
||||||
}
|
}
|
||||||
System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
System.out.println(
|
||||||
|
"Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||||
System.out.println("Weitere Produkte auswählen Ja/Nein");
|
System.out.println("Weitere Produkte auswählen Ja/Nein");
|
||||||
System.out.print(">");
|
System.out.print(">");
|
||||||
weiterEinkaufen = eingabe.nextLine();
|
weiterEinkaufen = eingabe.nextLine();
|
||||||
|
@ -128,8 +125,9 @@ public class TUI {
|
||||||
String produktName = eingabe.nextLine();
|
String produktName = eingabe.nextLine();
|
||||||
if (kaufhalle.loescheProduktausWarenkorb(produktName) == true) {
|
if (kaufhalle.loescheProduktausWarenkorb(produktName) == true) {
|
||||||
System.out.println("Produkt erfolgreich gelöscht");
|
System.out.println("Produkt erfolgreich gelöscht");
|
||||||
System.out.println("Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
System.out.println(
|
||||||
}else
|
"Anzahl Ihre ausgewählte Produkte: " + kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||||
|
} else
|
||||||
System.out.println("Produkt ist nicht in Ihrem Warenkorb");
|
System.out.println("Produkt ist nicht in Ihrem Warenkorb");
|
||||||
|
|
||||||
System.out.println("Weiter Produkte aus dem Wrenkorb löschen Ja/Nein");
|
System.out.println("Weiter Produkte aus dem Wrenkorb löschen Ja/Nein");
|
||||||
|
|
|
@ -1,29 +1,73 @@
|
||||||
package OnlineShop.domain;
|
package OnlineShop.domain;
|
||||||
|
|
||||||
|
import java.sql.Date;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Bestellung {
|
public class Bestellung {
|
||||||
|
|
||||||
public static String gesamtKosten (ArrayList<Produkt> produkts) {
|
private double kosten;
|
||||||
double kosten = 0.0;
|
private int gewicht;
|
||||||
int gewicht = 0;
|
private double versandKosten;
|
||||||
|
private ArrayList<Produkt> tempProdukt;
|
||||||
|
private LocalDate date;
|
||||||
|
public void gesamtKosten(ArrayList<Produkt> produkts) {
|
||||||
|
tempProdukt = produkts;
|
||||||
|
}
|
||||||
|
|
||||||
for (Produkt p : produkts) {
|
public double getKosten() {
|
||||||
|
kosten = 0;
|
||||||
|
|
||||||
|
for (Produkt p : tempProdukt)
|
||||||
kosten += p.getPreis();
|
kosten += p.getPreis();
|
||||||
gewicht += p.getGewicht();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
String formatted = String.format("%.2f", kosten);
|
||||||
|
formatted = formatted.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
||||||
|
double formattedDouble = Double.parseDouble(formatted);
|
||||||
|
|
||||||
|
return formattedDouble;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getGewicht() {
|
||||||
|
gewicht = 0;
|
||||||
|
for (Produkt p : tempProdukt)
|
||||||
|
gewicht += p.getGewicht();
|
||||||
|
|
||||||
|
return gewicht;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getVersandKosten() {
|
||||||
|
versandKosten = 0;
|
||||||
double gewichtInKg = gewicht / 1000.0;
|
double gewichtInKg = gewicht / 1000.0;
|
||||||
|
|
||||||
if (gewichtInKg < 1)
|
if (gewichtInKg < 1)
|
||||||
kosten += 5;
|
versandKosten += 5;
|
||||||
|
|
||||||
else if (gewichtInKg >= 1 && gewichtInKg <= 2.5)
|
else if (gewichtInKg >= 1 && gewichtInKg <= 2.5)
|
||||||
kosten += 8;
|
versandKosten += 8;
|
||||||
|
|
||||||
else
|
else
|
||||||
kosten += 10;
|
versandKosten += 10;
|
||||||
|
|
||||||
return String.format("%.2f", kosten);
|
return versandKosten;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public double getGesamtKosten() {
|
||||||
|
double gesmatKosten = kosten + versandKosten;
|
||||||
|
String formatted = String.format("%.2f", gesmatKosten);
|
||||||
|
formatted = formatted.replace(",", "."); // Ersetzt das Komma durch einen Punkt
|
||||||
|
double formattedDouble = Double.parseDouble(formatted);
|
||||||
|
|
||||||
|
return formattedDouble;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDate(LocalDate date) {
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,10 @@
|
||||||
package OnlineShop.domain.JTest;
|
package OnlineShop.domain.JTest;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
|
import org.junit.jupiter.api.*;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import OnlineShop.domain.*;
|
||||||
import org.junit.jupiter.api.Test;
|
import OnlineShop.domain.ExceptionsKlassen.*;
|
||||||
|
|
||||||
import OnlineShop.domain.Kaufhalle;
|
|
||||||
import OnlineShop.domain.ExceptionsKlassen.ProduktNichtGefundenException;
|
|
||||||
|
|
||||||
class JTest {
|
class JTest {
|
||||||
Kaufhalle kaufhalle;
|
Kaufhalle kaufhalle;
|
||||||
|
@ -18,25 +14,17 @@ class JTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void test() throws FileNotFoundException, ProduktNichtGefundenException {
|
void test() throws FileNotFoundException, ProduktNichtGefundenException, LeereEingabeException {
|
||||||
|
|
||||||
// Produkte Werden Geladen => Status: True
|
|
||||||
assertTrue(kaufhalle.produkteLaden());
|
assertTrue(kaufhalle.produkteLaden());
|
||||||
|
|
||||||
// Hut Produkt befindet sich im Warenkorb des Kundes => Status: True
|
|
||||||
assertTrue(kaufhalle.addProduktZuWarenkorb("Hut"));
|
assertTrue(kaufhalle.addProduktZuWarenkorb("Hut"));
|
||||||
|
|
||||||
// Genau ein Produkt ist momentane im Warenkorb => Status: True
|
|
||||||
assertEquals(1,kaufhalle.getAnzahlDerAusgewählteProdukte());
|
|
||||||
|
|
||||||
// Gieskanne Produkt befindet sich im Warenkorb des Kundes => Status: True
|
|
||||||
assertTrue(kaufhalle.addProduktZuWarenkorb("Gieskanne"));
|
assertTrue(kaufhalle.addProduktZuWarenkorb("Gieskanne"));
|
||||||
|
|
||||||
// Genau zwei Produkte ist momentane im Warenkorb => Status: True
|
|
||||||
assertEquals(2,kaufhalle.getAnzahlDerAusgewählteProdukte());
|
assertEquals(2,kaufhalle.getAnzahlDerAusgewählteProdukte());
|
||||||
|
kaufhalle.getKundenDaten("Obai", "Mannheim");
|
||||||
|
kaufhalle.sendBestellung();
|
||||||
|
|
||||||
|
|
||||||
// status True
|
|
||||||
assertTrue(kaufhalle.sendBestellung().equals("30,97"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,20 +2,26 @@ package OnlineShop.domain;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import OnlineShop.domain.ExceptionsKlassen.*;
|
import OnlineShop.domain.ExceptionsKlassen.*;
|
||||||
|
|
||||||
public class Kaufhalle {
|
public class Kaufhalle {
|
||||||
private ArrayList<Produkt> produkte;
|
private ArrayList<Produkt> produkte;
|
||||||
|
private ArrayList<Bestellung> Bestellungen;
|
||||||
private Kunde kunde;
|
private Kunde kunde;
|
||||||
|
private Bestellung aktuellBestelung;
|
||||||
|
|
||||||
public Kaufhalle() throws FileNotFoundException {
|
public Kaufhalle() throws FileNotFoundException {
|
||||||
this.produkte = new ArrayList<>();
|
this.produkte = new ArrayList<>();
|
||||||
kunde = new Kunde();
|
this.kunde = new Kunde();
|
||||||
|
this.Bestellungen = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean produkteLaden() throws FileNotFoundException {
|
public boolean produkteLaden() throws FileNotFoundException {
|
||||||
Scanner sc = new Scanner(
|
Scanner sc = new Scanner(new File(
|
||||||
new File("/home/obai/git/Programmierung2/Programmierung2/src/OnlineShop/produkte.csv"));
|
"C:\\Users\\obaya\\git\\Programmierung2\\Programmierung2\\src\\OnlineShop\\domain\\produkte.csv"));
|
||||||
|
|
||||||
int cnt = 0;
|
int cnt = 0;
|
||||||
while (sc.hasNextLine()) {
|
while (sc.hasNextLine()) {
|
||||||
|
@ -38,7 +44,6 @@ public class Kaufhalle {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean addProduktZuWarenkorb(String Produktname) throws ProduktNichtGefundenException {
|
public boolean addProduktZuWarenkorb(String Produktname) throws ProduktNichtGefundenException {
|
||||||
Produkt neueProdukt = findeProduktImKaufhalle(Produktname);
|
Produkt neueProdukt = findeProduktImKaufhalle(Produktname);
|
||||||
if (neueProdukt == null)
|
if (neueProdukt == null)
|
||||||
|
@ -74,17 +79,17 @@ public class Kaufhalle {
|
||||||
return kunde.getWarenKorb().getAnzahlProdkute();
|
return kunde.getWarenKorb().getAnzahlProdkute();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<String> zeigeAlleProdukteImWarenkorb() throws KeineProdukteImWarenkorb{
|
public ArrayList<String> zeigeAlleProdukteImWarenkorb() throws KeineProdukteImWarenkorb {
|
||||||
return kunde.getWarenKorb().zeigeProdukteImWarenKorb();
|
return kunde.getWarenKorb().zeigeProdukteImWarenKorb();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String sendBestellung() {
|
public String sendBestellung() {
|
||||||
return Bestellung.gesamtKosten(kunde.getWarenKorb().getProdukte());
|
aktuellBestelung = new Bestellung();
|
||||||
|
aktuellBestelung.gesamtKosten(kunde.getWarenKorb().getProdukte());
|
||||||
|
|
||||||
}
|
return "Produkts Ksoten = " + aktuellBestelung.getKosten() + "\n" + "Versand Kosten = " + aktuellBestelung.getVersandKosten()
|
||||||
|
+ "\n" + "GesamtKosten(Produkts Ksoten + Versand Kosten) = " + aktuellBestelung.getGesamtKosten();
|
||||||
|
|
||||||
public double getGesamtKosten() {
|
|
||||||
return kunde.getWarenKorb().getGesamtKsoten();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void getKundenDaten(String name, String anschrift) throws LeereEingabeException {
|
public void getKundenDaten(String name, String anschrift) throws LeereEingabeException {
|
||||||
|
@ -92,8 +97,16 @@ public class Kaufhalle {
|
||||||
kunde.setName(name);
|
kunde.setName(name);
|
||||||
kunde.setAnschrift(anschrift);
|
kunde.setAnschrift(anschrift);
|
||||||
return;
|
return;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
throw new LeereEingabeException("Sie müssen Ihren Name sowie Ihren Anschrift eingeben");
|
throw new LeereEingabeException("Sie müssen Ihren Name sowie Ihren Anschrift eingeben");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean getBetrag(double betrag) {
|
||||||
|
return betrag == aktuellBestelung.getGesamtKosten();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void speichereBestellung() {
|
||||||
|
aktuellBestelung.setDate(LocalDate.now());
|
||||||
|
Bestellungen.add(aktuellBestelung);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,13 +53,7 @@ public class Warenkorb {
|
||||||
return anzahlProdkute;
|
return anzahlProdkute;
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getGesamtKsoten() {
|
|
||||||
double gesamtKosten = 0.0;
|
|
||||||
for (Produkt p : produkte)
|
|
||||||
gesamtKosten += p.getPreis();
|
|
||||||
|
|
||||||
return gesamtKosten;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArrayList<Produkt> getProdukte(){
|
public ArrayList<Produkt> getProdukte(){
|
||||||
return produkte;
|
return produkte;
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
Name;Beschreibung;Preis;Gewicht;Bestand
|
||||||
|
Gieskanne;Premium Gärtner-Gieskanne;3,99;250,00;17,00
|
||||||
|
Hut;Perfekt für die Hutablage;21,98;120,00;123,00
|
||||||
|
Dosenwurst;LWWRSCHT: das Pfälzer Original, nur kurz im Angebot;3,99;200,00;7,00
|
||||||
|
Gartenschlauch;10 m, dehnbar bis auf die doppelte Länge;18,99;1300,00;23,00
|
||||||
|
Schraubenset;100 zufällig ausgewählte Schrauben;2,99;287,00;99,00
|
||||||
|
Akkuschrauber;Mit extra großem Drehmoment;25,00;900,00;13,00
|
|
Loading…
Reference in New Issue