diff --git a/PR2Bib/src/domainBib/Bibliothek.java b/PR2Bib/src/domainBib/Bibliothek.java index fed544f..1f70bbc 100644 --- a/PR2Bib/src/domainBib/Bibliothek.java +++ b/PR2Bib/src/domainBib/Bibliothek.java @@ -206,13 +206,15 @@ public class Bibliothek { JLabel med = new JLabel("Titel: " + m.getTitel() + ", Autor: " + m.getAutor() + ", Jahr: " + m.getJahr() - + ", Kennnummer: " +m.getKennnummer()); + + ", Kennnummer: " + m.getKennnummer() + + ", ausgeliehen am: " + m.getAusleihdatum()); jlabelList.add(med); } if(m.getAutor() == null) { JLabel med = new JLabel("Titel: " + m.getTitel() + ", Jahr: " + m.getJahr() - + ", Kennnummer: " +m.getKennnummer()); + + ", Kennnummer: " +m.getKennnummer() + + ", ausgeliehen am: " + m.getAusleihdatum()); jlabelList.add(med); } } @@ -275,7 +277,10 @@ public class Bibliothek { Buch b = (Buch) m; double kostenBuch = berechneGebühren(b, kennnummer, rückgabeDatum); String titelBuch = b.getTitel(); - if(kostenBuch!=0) {BibliothekGUI.zahlungsFenster(kostenBuch, titelBuch, kennnummer, k);} else { + if(kostenBuch>0) {BibliothekGUI.zahlungsFenster(kostenBuch, titelBuch, kennnummer, k); + bücherListe.add(b); + k.removeFromList(m); + } else { bücherListe.add(b); k.removeFromList(m); } @@ -284,7 +289,10 @@ public class Bibliothek { DVD d = (DVD) m; double kostenDVD = berechneGebühren(d, kennnummer, rückgabeDatum); String titelDVD = d.getTitel(); - if(kostenDVD!=0) {BibliothekGUI.zahlungsFenster(kostenDVD, titelDVD, kennnummer, k);} else { + if(kostenDVD>0) {BibliothekGUI.zahlungsFenster(kostenDVD, titelDVD, kennnummer, k); + dvdListe.add(d); + k.removeFromList(m); + } else { dvdListe.add(d); k.removeFromList(m); } @@ -293,7 +301,10 @@ public class Bibliothek { CD c = (CD) m; double kostenCD = berechneGebühren(c, kennnummer, rückgabeDatum); String titelCD = c.getTitel(); - if(kostenCD!=0) {BibliothekGUI.zahlungsFenster(kostenCD, titelCD, kennnummer, k);} else { + if(kostenCD>0) {BibliothekGUI.zahlungsFenster(kostenCD, titelCD, kennnummer, k); + cdListe.add(c); + k.removeFromList(m); + } else { cdListe.add(c); k.removeFromList(m); } @@ -302,7 +313,10 @@ public class Bibliothek { Brettspiel bs = (Brettspiel) m; double kostenBS = berechneGebühren(bs, kennnummer, rückgabeDatum); String titelBS = bs.getTitel(); - if(kostenBS!=0) {BibliothekGUI.zahlungsFenster(kostenBS, titelBS, kennnummer, k);} else { + if(kostenBS>0) {BibliothekGUI.zahlungsFenster(kostenBS, titelBS, kennnummer, k); + brettspielListe.add(bs); + k.removeFromList(m); + } else { brettspielListe.add(bs); k.removeFromList(m); } @@ -311,7 +325,10 @@ public class Bibliothek { Videospiel vs = (Videospiel) m; double kostenVS = berechneGebühren(vs, kennnummer, rückgabeDatum); String titelVS = vs.getTitel(); - if(kostenVS!=0) {BibliothekGUI.zahlungsFenster(kostenVS, titelVS, kennnummer, k);} else { + if(kostenVS>0) {BibliothekGUI.zahlungsFenster(kostenVS, titelVS, kennnummer, k); + videospielListe.add(vs); + k.removeFromList(m); + } else { videospielListe.add(vs); k.removeFromList(m); } @@ -325,14 +342,14 @@ public class Bibliothek { } private static double berechneGebühren(Buch b, int kennnummer, String rückgabeDatum) { - String ausleihDatum = b.getAusleihDatum(); + String ausleihDatum = b.getAusleihdatum(); double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum); double kosten = 0; if(tageAusgeliehen <= 28) { return kosten = 0; } int dayCounter = 0; - while(tageAusgeliehen >= 29) { + while(tageAusgeliehen > 28) { if(dayCounter >=8) { kosten += 2; dayCounter++; @@ -343,11 +360,12 @@ public class Bibliothek { tageAusgeliehen--; } } + System.out.println("Kosten: " + kosten); return kosten; } private static double berechneGebühren(DVD d, int kennnummer, String rückgabeDatum) { - String ausleihDatum = d.getAusleihDatum(); + String ausleihDatum = d.getAusleihdatum(); double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum); double kosten = 0; if(tageAusgeliehen <= 7) { @@ -369,7 +387,7 @@ public class Bibliothek { } private static double berechneGebühren(CD c, int kennnummer, String rückgabeDatum) { - String ausleihDatum = c.getAusleihDatum(); + String ausleihDatum = c.getAusleihdatum(); double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum); double kosten = 0; if(tageAusgeliehen <= 14) { @@ -391,7 +409,7 @@ public class Bibliothek { } private static double berechneGebühren(Brettspiel bs, int kennnummer, String rückgabeDatum) { - String ausleihDatum = bs.getAusleihDatum(); + String ausleihDatum = bs.getAusleihdatum(); double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum); double kosten = 0; if(tageAusgeliehen <= 14) { @@ -413,7 +431,7 @@ public class Bibliothek { } private static double berechneGebühren(Videospiel vs, int kennnummer, String rückgabeDatum) { - String ausleihDatum = vs.getAusleihDatum(); + String ausleihDatum = vs.getAusleihdatum(); double tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum); double kosten = 0; if(tageAusgeliehen <= 28) { @@ -434,11 +452,13 @@ public class Bibliothek { return kosten; } public static boolean zahlungRegistrieren(int zahlung, double kosten) { + boolean isTrue = false; if(kosten - zahlung <= 0) { - return true; + isTrue = true; } else { - return false; + isTrue = false; } + return isTrue; } @@ -446,9 +466,10 @@ public class Bibliothek { LocalDate ausgeliehenTag = LocalDate.parse(ausleihDatum, DateTimeFormatter.ofPattern("dd.MM.yyyy")); LocalDate rückgabeTag = LocalDate.parse(rückgabeDatum, DateTimeFormatter.ofPattern("dd.MM.yyyy")); double differenzInTagen = ChronoUnit.DAYS.between(ausgeliehenTag, rückgabeTag); - System.out.println(differenzInTagen); - - return 0; + System.out.println(ausgeliehenTag); + System.out.println(rückgabeTag); + System.out.println("Tage: " + differenzInTagen); + return differenzInTagen; } public static int bücherLänge() { diff --git a/PR2Bib/src/domainBib/Medium.java b/PR2Bib/src/domainBib/Medium.java index aba8c98..9e9386f 100644 --- a/PR2Bib/src/domainBib/Medium.java +++ b/PR2Bib/src/domainBib/Medium.java @@ -11,9 +11,8 @@ abstract class Medium { abstract public String getTitel(); abstract public int getJahr(); - abstract public String getDatum(); + abstract public String getAusleihdatum(); abstract public int getKennnummer(); - public String getAutor(){ return null; } @@ -56,10 +55,6 @@ class Buch extends Medium{ return this.fälligkeitsDatum; } - public String getDatum() { - return fälligkeitsDatum; - } - public int getKennnummer() { return kennnummer; } @@ -68,7 +63,7 @@ class Buch extends Medium{ this.ausleihDatum = datum; } - public String getAusleihDatum() { + public String getAusleihdatum() { return ausleihDatum; } } @@ -119,7 +114,7 @@ class DVD extends Medium{ this.ausleihDatum = datum; } - public String getAusleihDatum() { + public String getAusleihdatum() { return ausleihDatum; } } @@ -169,7 +164,7 @@ class CD extends Medium{ this.ausleihDatum = datum; } - public String getAusleihDatum() { + public String getAusleihdatum() { return ausleihDatum; } } @@ -220,7 +215,7 @@ class Brettspiel extends Medium{ this.ausleihDatum = datum; } - public String getAusleihDatum() { + public String getAusleihdatum() { return ausleihDatum; } } @@ -271,7 +266,7 @@ class Videospiel extends Medium{ this.ausleihDatum = datum; } - public String getAusleihDatum() { + public String getAusleihdatum() { return ausleihDatum; } } \ No newline at end of file diff --git a/PR2Bib/src/guiBib/BibliothekGUI.java b/PR2Bib/src/guiBib/BibliothekGUI.java index 6410328..f043dce 100644 --- a/PR2Bib/src/guiBib/BibliothekGUI.java +++ b/PR2Bib/src/guiBib/BibliothekGUI.java @@ -99,7 +99,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{ b4.addActionListener(e -> bsMenu()); JButton b5 = new JButton("Videospiele"); b5.addActionListener(e -> vsMenu()); - JButton b6 = new JButton("Aushleihe"); + JButton b6 = new JButton("Ausleihe"); b6.addActionListener(e -> ausleihenMenü(k)); JButton b7 = new JButton("Rückgabe"); b7.addActionListener(e -> rückgabeMenü(k)); @@ -132,13 +132,14 @@ public class BibliothekGUI extends JFrame implements ActionListener{ inputMenu.add(text2); inputMenu.add(inputField2); ausleihMenü.add(inputMenu, BorderLayout.CENTER); - JPanel buttonGrid = new JPanel(new GridLayout(2, 1, 10,10)); + JPanel buttonGrid = new JPanel(new GridLayout(1, 2, 10,10)); JButton b1 = new JButton("Abbrechen"); b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel")); JButton b2 = new JButton("OK"); b2.addActionListener(e -> { int kennnummer = Integer.parseInt(inputField1.getText()); String ausleihDatum = inputField2.getText().toString(); + System.out.println(ausleihDatum); Bibliothek.ausleihe(kennnummer, ausleihDatum, k); cl.show(mainPanel, "mediumPanel"); }); @@ -161,15 +162,15 @@ public class BibliothekGUI extends JFrame implements ActionListener{ inputMenu.add(text2); inputMenu.add(inputField2); rückgabeMenü.add(inputMenu, BorderLayout.CENTER);; - JPanel buttonGrid = new JPanel(new GridLayout(2, 1, 10,10)); + JPanel buttonGrid = new JPanel(new GridLayout(1, 2, 10,10)); JButton b1 = new JButton("Abbrechen"); b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel")); JButton b2 = new JButton("OK"); b2.addActionListener(e -> { int kennnummer = Integer.parseInt(inputField1.getText()); String rückgabeDatum = inputField2.getText().toString(); + System.out.println(rückgabeDatum); Bibliothek.rückgabe(kennnummer, rückgabeDatum, k); - myBooks(k); }); buttonGrid.add(b1); buttonGrid.add(b2); @@ -180,7 +181,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{ private static void bookMenu() { int i = Bibliothek.bücherLänge(); - JPanel buchMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); + JPanel buchMenü = new JPanel(new GridLayout(i+2, 2, 10, 10)); + JLabel text0 = new JLabel("Ausleihe für 4 Wochen, bis zu 3 Mal verlängerbar."); + buchMenü.add(text0); ArrayList jlabelList = Bibliothek.buchAuflisten(); for(JLabel j: jlabelList) { buchMenü.add(j); @@ -194,7 +197,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{ private static void dvdMenu() { int i = Bibliothek.dvdLänge(); - JPanel dvdMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); + JPanel dvdMenü = new JPanel(new GridLayout(i+2, 2, 10, 10)); + JLabel text0 = new JLabel("Ausleihe für 1 Woche, keine Verlängerung."); + dvdMenü.add(text0); ArrayList jlabelList = Bibliothek.dvdAuflisten(); for(JLabel j: jlabelList) { dvdMenü.add(j); @@ -208,7 +213,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{ private static void cdMenu() { int i = Bibliothek.cdLänge(); - JPanel cdMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); + JPanel cdMenü = new JPanel(new GridLayout(i+2, 2, 10, 10)); + JLabel text0 = new JLabel("Ausleihe für 2 Wochen, keine Verlängerung."); + cdMenü.add(text0); ArrayList jlabelList = Bibliothek.cdAuflisten(); for(JLabel j: jlabelList) { cdMenü.add(j); @@ -222,7 +229,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{ private static void bsMenu() { int i = Bibliothek.bsLänge(); - JPanel bsMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); + JPanel bsMenü = new JPanel(new GridLayout(i+2, 2, 10, 10)); + JLabel text0 = new JLabel("Ausleihe für 2 Wochen, keine Verlängerung."); + bsMenü.add(text0); ArrayList jlabelList = Bibliothek.bsAuflisten(); for(JLabel j: jlabelList) { bsMenü.add(j); @@ -236,7 +245,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{ private static void vsMenu() { int i = Bibliothek.vsLänge(); - JPanel vsMenü = new JPanel(new GridLayout(i+1, 2, 10, 10)); + JPanel vsMenü = new JPanel(new GridLayout(i+2, 2, 10, 10)); + JLabel text0 = new JLabel("Ausleihe für 4 Wochen, einmalige Verlängerung möglich."); + vsMenü.add(text0); ArrayList jlabelList = Bibliothek.vsAuflisten(); for(JLabel j: jlabelList) { vsMenü.add(j); @@ -248,7 +259,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{ cl.show(mainPanel, "Videospiele"); } - private static void myBooks(Kunde k) { + public static void myBooks(Kunde k) { int i = k.ausgelieheneMedienLänge(); JPanel myBookMenu = new JPanel(new BorderLayout()); JPanel info = new JPanel(new GridLayout(i, 1, 10, 10)); @@ -274,18 +285,44 @@ public class BibliothekGUI extends JFrame implements ActionListener{ JPanel zahlungPanel = new JPanel(new BorderLayout()); JLabel text1 = new JLabel("Sie schulden für das Buch " + titel + " mit der Kennnummer " + kennnummer + " " + kosten + "€."); zahlungPanel.add(text1, BorderLayout.NORTH); + JPanel zahlungPanelMitte = new JPanel(new GridLayout(2,1,10,10)); + JLabel text3 = new JLabel("Geben Sie ein wieviel sie zahlen:"); + zahlungPanelMitte.add(text3); JTextField inputField1 = new JTextField(20); - zahlungPanel.add(inputField1, BorderLayout.CENTER); + zahlungPanelMitte.add(inputField1); + zahlungPanel.add(zahlungPanelMitte, BorderLayout.CENTER); JButton b1 = new JButton("OK"); - zahlungPanel.add(b1, BorderLayout.NORTH); + zahlungPanel.add(b1, BorderLayout.SOUTH); + mainPanel.add(zahlungPanel,"Zahlung1"); + cl.show(mainPanel, "Zahlung1"); b1.addActionListener(e -> { - int zahlung = Integer.parseInt(inputField1.getText()); - boolean zahlungErfolgreich = Bibliothek.zahlungRegistrieren(zahlung, kosten); + String paymentString = inputField1.getText().toString(); + zahlungStatus(paymentString, kosten, k); + }); + } + + private static void zahlungStatus(String zahlungStr, double kosten, Kunde k) { + int zahlung = Integer.parseInt(zahlungStr); + System.out.println("eingezahlt: " + zahlung); + boolean zahlungErfolgreich = Bibliothek.zahlungRegistrieren(zahlung, kosten); + JPanel zahlungStatusPanel = new JPanel(new BorderLayout()); + JLabel text2 = new JLabel("Zahlungsstatus:"); + zahlungStatusPanel.add(text2, BorderLayout.NORTH); + JButton b2 = new JButton("OK"); + zahlungStatusPanel.add(b2, BorderLayout.SOUTH); if(zahlungErfolgreich == true) { - + JLabel text4 = new JLabel("Zahlung war erfolgreich!"); + zahlungStatusPanel.add(text4, BorderLayout.CENTER); } else { - + k.setSchulden(kosten - zahlung); + double schulden = k.getSchulden(); + JLabel text4 = new JLabel("Zahlung fehlgeschlagen! Ihnen wurden " + schulden + "€ Schulden zugeschrieben."); + zahlungStatusPanel.add(text4, BorderLayout.CENTER); } + mainPanel.add(zahlungStatusPanel, "Zahlung2"); + cl.show(mainPanel, "Zahlung2"); + b2.addActionListener(e -> { + cl.show(mainPanel, "mediumPanel"); }); }