commit before merge

dateFeature
Berat Kocak 2024-11-10 17:40:31 +01:00
parent d7d4ca8318
commit 68914473f9
3 changed files with 98 additions and 45 deletions

View File

@ -206,13 +206,15 @@ public class Bibliothek {
JLabel med = new JLabel("Titel: " + m.getTitel() JLabel med = new JLabel("Titel: " + m.getTitel()
+ ", Autor: " + m.getAutor() + ", Autor: " + m.getAutor()
+ ", Jahr: " + m.getJahr() + ", Jahr: " + m.getJahr()
+ ", Kennnummer: " +m.getKennnummer()); + ", Kennnummer: " + m.getKennnummer()
+ ", ausgeliehen am: " + m.getAusleihdatum());
jlabelList.add(med); jlabelList.add(med);
} }
if(m.getAutor() == null) { if(m.getAutor() == null) {
JLabel med = new JLabel("Titel: " + m.getTitel() JLabel med = new JLabel("Titel: " + m.getTitel()
+ ", Jahr: " + m.getJahr() + ", Jahr: " + m.getJahr()
+ ", Kennnummer: " +m.getKennnummer()); + ", Kennnummer: " +m.getKennnummer()
+ ", ausgeliehen am: " + m.getAusleihdatum());
jlabelList.add(med); jlabelList.add(med);
} }
} }
@ -275,7 +277,10 @@ public class Bibliothek {
Buch b = (Buch) m; Buch b = (Buch) m;
double kostenBuch = berechneGebühren(b, kennnummer, rückgabeDatum); double kostenBuch = berechneGebühren(b, kennnummer, rückgabeDatum);
String titelBuch = b.getTitel(); 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); bücherListe.add(b);
k.removeFromList(m); k.removeFromList(m);
} }
@ -284,7 +289,10 @@ public class Bibliothek {
DVD d = (DVD) m; DVD d = (DVD) m;
double kostenDVD = berechneGebühren(d, kennnummer, rückgabeDatum); double kostenDVD = berechneGebühren(d, kennnummer, rückgabeDatum);
String titelDVD = d.getTitel(); 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); dvdListe.add(d);
k.removeFromList(m); k.removeFromList(m);
} }
@ -293,7 +301,10 @@ public class Bibliothek {
CD c = (CD) m; CD c = (CD) m;
double kostenCD = berechneGebühren(c, kennnummer, rückgabeDatum); double kostenCD = berechneGebühren(c, kennnummer, rückgabeDatum);
String titelCD = c.getTitel(); 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); cdListe.add(c);
k.removeFromList(m); k.removeFromList(m);
} }
@ -302,7 +313,10 @@ public class Bibliothek {
Brettspiel bs = (Brettspiel) m; Brettspiel bs = (Brettspiel) m;
double kostenBS = berechneGebühren(bs, kennnummer, rückgabeDatum); double kostenBS = berechneGebühren(bs, kennnummer, rückgabeDatum);
String titelBS = bs.getTitel(); 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); brettspielListe.add(bs);
k.removeFromList(m); k.removeFromList(m);
} }
@ -311,7 +325,10 @@ public class Bibliothek {
Videospiel vs = (Videospiel) m; Videospiel vs = (Videospiel) m;
double kostenVS = berechneGebühren(vs, kennnummer, rückgabeDatum); double kostenVS = berechneGebühren(vs, kennnummer, rückgabeDatum);
String titelVS = vs.getTitel(); 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); videospielListe.add(vs);
k.removeFromList(m); k.removeFromList(m);
} }
@ -325,14 +342,14 @@ public class Bibliothek {
} }
private static double berechneGebühren(Buch b, int kennnummer, String rückgabeDatum) { 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 tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0; double kosten = 0;
if(tageAusgeliehen <= 28) { if(tageAusgeliehen <= 28) {
return kosten = 0; return kosten = 0;
} }
int dayCounter = 0; int dayCounter = 0;
while(tageAusgeliehen >= 29) { while(tageAusgeliehen > 28) {
if(dayCounter >=8) { if(dayCounter >=8) {
kosten += 2; kosten += 2;
dayCounter++; dayCounter++;
@ -343,11 +360,12 @@ public class Bibliothek {
tageAusgeliehen--; tageAusgeliehen--;
} }
} }
System.out.println("Kosten: " + kosten);
return kosten; return kosten;
} }
private static double berechneGebühren(DVD d, int kennnummer, String rückgabeDatum) { 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 tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0; double kosten = 0;
if(tageAusgeliehen <= 7) { if(tageAusgeliehen <= 7) {
@ -369,7 +387,7 @@ public class Bibliothek {
} }
private static double berechneGebühren(CD c, int kennnummer, String rückgabeDatum) { 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 tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0; double kosten = 0;
if(tageAusgeliehen <= 14) { if(tageAusgeliehen <= 14) {
@ -391,7 +409,7 @@ public class Bibliothek {
} }
private static double berechneGebühren(Brettspiel bs, int kennnummer, String rückgabeDatum) { 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 tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0; double kosten = 0;
if(tageAusgeliehen <= 14) { if(tageAusgeliehen <= 14) {
@ -413,7 +431,7 @@ public class Bibliothek {
} }
private static double berechneGebühren(Videospiel vs, int kennnummer, String rückgabeDatum) { 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 tageAusgeliehen = findDifference(ausleihDatum, rückgabeDatum);
double kosten = 0; double kosten = 0;
if(tageAusgeliehen <= 28) { if(tageAusgeliehen <= 28) {
@ -434,11 +452,13 @@ public class Bibliothek {
return kosten; return kosten;
} }
public static boolean zahlungRegistrieren(int zahlung, double kosten) { public static boolean zahlungRegistrieren(int zahlung, double kosten) {
boolean isTrue = false;
if(kosten - zahlung <= 0) { if(kosten - zahlung <= 0) {
return true; isTrue = true;
} else { } 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 ausgeliehenTag = LocalDate.parse(ausleihDatum, DateTimeFormatter.ofPattern("dd.MM.yyyy"));
LocalDate rückgabeTag = LocalDate.parse(rückgabeDatum, 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); double differenzInTagen = ChronoUnit.DAYS.between(ausgeliehenTag, rückgabeTag);
System.out.println(differenzInTagen); System.out.println(ausgeliehenTag);
System.out.println(rückgabeTag);
return 0; System.out.println("Tage: " + differenzInTagen);
return differenzInTagen;
} }
public static int bücherLänge() { public static int bücherLänge() {

View File

@ -11,9 +11,8 @@ abstract class Medium {
abstract public String getTitel(); abstract public String getTitel();
abstract public int getJahr(); abstract public int getJahr();
abstract public String getDatum(); abstract public String getAusleihdatum();
abstract public int getKennnummer(); abstract public int getKennnummer();
public String getAutor(){ public String getAutor(){
return null; return null;
} }
@ -56,10 +55,6 @@ class Buch extends Medium{
return this.fälligkeitsDatum; return this.fälligkeitsDatum;
} }
public String getDatum() {
return fälligkeitsDatum;
}
public int getKennnummer() { public int getKennnummer() {
return kennnummer; return kennnummer;
} }
@ -68,7 +63,7 @@ class Buch extends Medium{
this.ausleihDatum = datum; this.ausleihDatum = datum;
} }
public String getAusleihDatum() { public String getAusleihdatum() {
return ausleihDatum; return ausleihDatum;
} }
} }
@ -119,7 +114,7 @@ class DVD extends Medium{
this.ausleihDatum = datum; this.ausleihDatum = datum;
} }
public String getAusleihDatum() { public String getAusleihdatum() {
return ausleihDatum; return ausleihDatum;
} }
} }
@ -169,7 +164,7 @@ class CD extends Medium{
this.ausleihDatum = datum; this.ausleihDatum = datum;
} }
public String getAusleihDatum() { public String getAusleihdatum() {
return ausleihDatum; return ausleihDatum;
} }
} }
@ -220,7 +215,7 @@ class Brettspiel extends Medium{
this.ausleihDatum = datum; this.ausleihDatum = datum;
} }
public String getAusleihDatum() { public String getAusleihdatum() {
return ausleihDatum; return ausleihDatum;
} }
} }
@ -271,7 +266,7 @@ class Videospiel extends Medium{
this.ausleihDatum = datum; this.ausleihDatum = datum;
} }
public String getAusleihDatum() { public String getAusleihdatum() {
return ausleihDatum; return ausleihDatum;
} }
} }

View File

@ -99,7 +99,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{
b4.addActionListener(e -> bsMenu()); b4.addActionListener(e -> bsMenu());
JButton b5 = new JButton("Videospiele"); JButton b5 = new JButton("Videospiele");
b5.addActionListener(e -> vsMenu()); b5.addActionListener(e -> vsMenu());
JButton b6 = new JButton("Aushleihe"); JButton b6 = new JButton("Ausleihe");
b6.addActionListener(e -> ausleihenMenü(k)); b6.addActionListener(e -> ausleihenMenü(k));
JButton b7 = new JButton("Rückgabe"); JButton b7 = new JButton("Rückgabe");
b7.addActionListener(e -> rückgabeMenü(k)); b7.addActionListener(e -> rückgabeMenü(k));
@ -132,13 +132,14 @@ public class BibliothekGUI extends JFrame implements ActionListener{
inputMenu.add(text2); inputMenu.add(text2);
inputMenu.add(inputField2); inputMenu.add(inputField2);
ausleihMenü.add(inputMenu, BorderLayout.CENTER); 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"); JButton b1 = new JButton("Abbrechen");
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel")); b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
JButton b2 = new JButton("OK"); JButton b2 = new JButton("OK");
b2.addActionListener(e -> { b2.addActionListener(e -> {
int kennnummer = Integer.parseInt(inputField1.getText()); int kennnummer = Integer.parseInt(inputField1.getText());
String ausleihDatum = inputField2.getText().toString(); String ausleihDatum = inputField2.getText().toString();
System.out.println(ausleihDatum);
Bibliothek.ausleihe(kennnummer, ausleihDatum, k); Bibliothek.ausleihe(kennnummer, ausleihDatum, k);
cl.show(mainPanel, "mediumPanel"); cl.show(mainPanel, "mediumPanel");
}); });
@ -161,15 +162,15 @@ public class BibliothekGUI extends JFrame implements ActionListener{
inputMenu.add(text2); inputMenu.add(text2);
inputMenu.add(inputField2); inputMenu.add(inputField2);
rückgabeMenü.add(inputMenu, BorderLayout.CENTER);; 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"); JButton b1 = new JButton("Abbrechen");
b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel")); b1.addActionListener(e -> cl.show(mainPanel, "mediumPanel"));
JButton b2 = new JButton("OK"); JButton b2 = new JButton("OK");
b2.addActionListener(e -> { b2.addActionListener(e -> {
int kennnummer = Integer.parseInt(inputField1.getText()); int kennnummer = Integer.parseInt(inputField1.getText());
String rückgabeDatum = inputField2.getText().toString(); String rückgabeDatum = inputField2.getText().toString();
System.out.println(rückgabeDatum);
Bibliothek.rückgabe(kennnummer, rückgabeDatum, k); Bibliothek.rückgabe(kennnummer, rückgabeDatum, k);
myBooks(k);
}); });
buttonGrid.add(b1); buttonGrid.add(b1);
buttonGrid.add(b2); buttonGrid.add(b2);
@ -180,7 +181,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{
private static void bookMenu() { private static void bookMenu() {
int i = Bibliothek.bücherLänge(); 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<JLabel> jlabelList = Bibliothek.buchAuflisten(); ArrayList<JLabel> jlabelList = Bibliothek.buchAuflisten();
for(JLabel j: jlabelList) { for(JLabel j: jlabelList) {
buchMenü.add(j); buchMenü.add(j);
@ -194,7 +197,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{
private static void dvdMenu() { private static void dvdMenu() {
int i = Bibliothek.dvdLänge(); 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<JLabel> jlabelList = Bibliothek.dvdAuflisten(); ArrayList<JLabel> jlabelList = Bibliothek.dvdAuflisten();
for(JLabel j: jlabelList) { for(JLabel j: jlabelList) {
dvdMenü.add(j); dvdMenü.add(j);
@ -208,7 +213,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{
private static void cdMenu() { private static void cdMenu() {
int i = Bibliothek.cdLänge(); 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<JLabel> jlabelList = Bibliothek.cdAuflisten(); ArrayList<JLabel> jlabelList = Bibliothek.cdAuflisten();
for(JLabel j: jlabelList) { for(JLabel j: jlabelList) {
cdMenü.add(j); cdMenü.add(j);
@ -222,7 +229,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{
private static void bsMenu() { private static void bsMenu() {
int i = Bibliothek.bsLänge(); 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<JLabel> jlabelList = Bibliothek.bsAuflisten(); ArrayList<JLabel> jlabelList = Bibliothek.bsAuflisten();
for(JLabel j: jlabelList) { for(JLabel j: jlabelList) {
bsMenü.add(j); bsMenü.add(j);
@ -236,7 +245,9 @@ public class BibliothekGUI extends JFrame implements ActionListener{
private static void vsMenu() { private static void vsMenu() {
int i = Bibliothek.vsLänge(); 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<JLabel> jlabelList = Bibliothek.vsAuflisten(); ArrayList<JLabel> jlabelList = Bibliothek.vsAuflisten();
for(JLabel j: jlabelList) { for(JLabel j: jlabelList) {
vsMenü.add(j); vsMenü.add(j);
@ -248,7 +259,7 @@ public class BibliothekGUI extends JFrame implements ActionListener{
cl.show(mainPanel, "Videospiele"); cl.show(mainPanel, "Videospiele");
} }
private static void myBooks(Kunde k) { public static void myBooks(Kunde k) {
int i = k.ausgelieheneMedienLänge(); int i = k.ausgelieheneMedienLänge();
JPanel myBookMenu = new JPanel(new BorderLayout()); JPanel myBookMenu = new JPanel(new BorderLayout());
JPanel info = new JPanel(new GridLayout(i, 1, 10, 10)); 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()); JPanel zahlungPanel = new JPanel(new BorderLayout());
JLabel text1 = new JLabel("Sie schulden für das Buch " + titel + " mit der Kennnummer " + kennnummer + " " + kosten + "€."); JLabel text1 = new JLabel("Sie schulden für das Buch " + titel + " mit der Kennnummer " + kennnummer + " " + kosten + "€.");
zahlungPanel.add(text1, BorderLayout.NORTH); 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); JTextField inputField1 = new JTextField(20);
zahlungPanel.add(inputField1, BorderLayout.CENTER); zahlungPanelMitte.add(inputField1);
zahlungPanel.add(zahlungPanelMitte, BorderLayout.CENTER);
JButton b1 = new JButton("OK"); 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 -> { b1.addActionListener(e -> {
int zahlung = Integer.parseInt(inputField1.getText()); String paymentString = inputField1.getText().toString();
boolean zahlungErfolgreich = Bibliothek.zahlungRegistrieren(zahlung, kosten); 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) { if(zahlungErfolgreich == true) {
JLabel text4 = new JLabel("Zahlung war erfolgreich!");
zahlungStatusPanel.add(text4, BorderLayout.CENTER);
} else { } 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");
}); });
} }