diff --git a/VerkkokauppaUI.java b/VerkkokauppaUI.java index 66ea3b2f2e93b455930dc0af9e1275f2164792fd..d3129df44bbc26455600819fc9c9dc7cc00f4757 100644 --- a/VerkkokauppaUI.java +++ b/VerkkokauppaUI.java @@ -31,8 +31,6 @@ public class VerkkokauppaUI { } } - - private void asiakasMenu() { int valinta = -1; while (valinta != 0) { @@ -85,7 +83,7 @@ public class VerkkokauppaUI { System.out.println("4. Muuta hintaa"); System.out.println("0. Poistu"); - valinta = lueKokonaisluku(0, 4,"Anna valinta"); + valinta = lueKokonaisluku(0, 4, "Anna valinta"); if (valinta == 1) { String nimi = lueMerkkijono("Nimi"); double hinta = lueDesimaaliluku(0, Tuote.MAKSIMIHINTA, "Anna hinta"); @@ -161,7 +159,78 @@ public class VerkkokauppaUI { * TODO: Toteuta tämä demojen 2. tehtävänä - katso demosta tarkemmat ohjeet */ private void ostotapahtumaMenu() { + int valinta = -1; + while (valinta != 0) { + System.out.println(verkkokauppa.listaaTapahtumat()); + System.out.println(); + System.out.println("1. Lisää ostotapahtuma"); + System.out.println("2. Poista ostotapahtuma"); + System.out.println("0. Poistu"); + + valinta = lueKokonaisluku(0, 2, "Anna valinta"); + if (valinta == 1) { + String myyjat = verkkokauppa.listaaMyyjat(); + System.out.println(myyjat); + String valittuMyyja = lueMerkkijono("Anna myyjän tunniste: "); + + Myyja myyja = verkkokauppa.annaMyyja(valittuMyyja); + if (myyja == null) { + System.out.println("Myyjää ei löytynyt."); + return; + } + + String asiakkaat = verkkokauppa.listaaAsiakkaat(); + System.out.println(asiakkaat); + String valittuAsiakas = lueMerkkijono("Anna asiakkaan tunniste: "); + + Asiakas asiakas = verkkokauppa.annaAsiakas(valittuAsiakas); + if (asiakas == null) { + System.out.println("Asiakasta ei löytynyt."); + return; + } + String tuotteet = verkkokauppa.listaaTuotteet(); + System.out.println(tuotteet); + String valittuTuote = lueMerkkijono("Anna tuotteen nimi: "); + + Tuote tuote = verkkokauppa.annaTuote(valittuTuote); + if (tuote == null) { + System.out.println("Tuotetta ei löytynyt."); + return; + } + + int tuoteMaara = lueKokonaisluku(0, tuote.getSaldo(), "Anna ostettavien tuotteiden määrä: "); + + Ostotapahtuma ostotapahtuma = new Ostotapahtuma(asiakas, myyja, tuote, tuoteMaara); + int ale = asiakas.getAlennusprosentti(); + double hinta = ostotapahtuma.getHinta(); + + hinta = hinta - hinta * (ale / 100.0); + + System.out.println("Hinta: " + hinta + " euroa."); + + verkkokauppa.lisaaTapahtuma(ostotapahtuma); + asiakas.lisaaOsto(hinta); + myyja.lisaaProvisio(hinta * 0.1); + tuote.setSaldo(tuote.getSaldo() - tuoteMaara); + System.out.println("Ostotapahtuma lisätty!"); + } else if (valinta == 2) { + String tapahtumat = verkkokauppa.listaaTapahtumat(); + System.out.println(tapahtumat); + + String valittuTapahtuma = lueMerkkijono("Anna poistettavan tapahtuman tunniste: "); + + int valittuTapahtumaInt = Integer.parseInt(valittuTapahtuma) - 1; + Ostotapahtuma tapahtuma = verkkokauppa.annaTapahtuma(valittuTapahtumaInt); + if (tapahtuma == null) { + System.out.println("Tapahtumaa ei löytynyt."); + return; + } + verkkokauppa.poistaOstotapahtuma(tapahtuma); + System.out.println("Ostotapahtuma poistettu!"); + + } + } } private void tulostaMenu() { @@ -172,14 +241,13 @@ public class VerkkokauppaUI { System.out.println("0. Poistu"); } - /** * Lukee käyttäjältä syötteen ja palauttaa sen kokonaislukuna. * Kokonaisluvun tulee olla annetun minimi ja maksimiarvon välissä. * * @param minimi pienin sallittu arvo * @param maksimi suurin sallittu arvo - * @param kehote käyttäjälle näytetty kehote + * @param kehote käyttäjälle näytetty kehote * @return käyttäjän syötteen kokonaislukuna */ private int lueKokonaisluku(int minimi, int maksimi, String kehote) { @@ -204,7 +272,7 @@ public class VerkkokauppaUI { * * @param minimi pienin sallittu arvo * @param maksimi suurin sallittu arvo - * @param kehote käyttäjälle näytetty kehote + * @param kehote käyttäjälle näytetty kehote * @return käyttäjän syötteen liukulukuna */ private double lueDesimaaliluku(double minimi, double maksimi, String kehote) {