diff --git a/LibrarySystem/UI/UI.java b/LibrarySystem/UI/UI.java index 6655948..8597f06 100644 --- a/LibrarySystem/UI/UI.java +++ b/LibrarySystem/UI/UI.java @@ -90,7 +90,7 @@ public class UI { String kartennummer = scanner.nextLine(); Benutzer benutzer = system.anmelden(kartennummer); if (benutzer != null) { - //system.zeigeGebuehren(benutzer); + system.zeigeGebuehrenkonto(kartennummer); benutzer.anzeigenAusleihen(); } } diff --git a/LibrarySystem/domain/benutzern/Benutzer.java b/LibrarySystem/domain/benutzern/Benutzer.java index 0bcf057..9d8843b 100644 --- a/LibrarySystem/domain/benutzern/Benutzer.java +++ b/LibrarySystem/domain/benutzern/Benutzer.java @@ -10,7 +10,6 @@ public abstract class Benutzer { private int alter; private List ausleihen; private double offeneGebuehren; - private boolean gebuehrenBezahlt; Benutzer(String kartennummer, String name, int alter, String prefix) { this.kartennummer = prefix + kartennummer; @@ -18,7 +17,6 @@ public abstract class Benutzer { this.alter = alter; this.ausleihen = new ArrayList<>(); this.offeneGebuehren = 0.0; - this.gebuehrenBezahlt = true; // Zu Beginn keine Gebühren offen } //Getter und Setter @@ -29,6 +27,8 @@ public abstract class Benutzer { public int getAlter() {return alter;} public void setAlter(int alter) {this.alter = alter;} public List getAusleihen() {return ausleihen;} + public double getOffeneGebuehren() {return offeneGebuehren;} + // Abstrakte Methode für die Jahresgebühr public abstract double getJahresgebuehr(); @@ -59,25 +59,21 @@ public abstract class Benutzer { //Methode zum Anzeigen der Ausleihen eines Benutzers public void anzeigenAusleihen() { - System.out.println("Aktuell ausgeliehene Medien von " + name + ":\n"); - for (Medium medium : ausleihen) { - System.out.println("- " + medium.getTitel() + " (Fällig am: " + medium.getRueckgabedatum() + ")\n"); + if(ausleihen.isEmpty()){ + System.out.println("Keine ausgeliehenen Medien."); + }else { + System.out.println("Aktuell ausgeliehene Medien von " + name + ":\n"); + for (Medium medium : ausleihen) { + System.out.println("- " + medium.getTitel() + " (Fällig am: " + medium.getRueckgabedatum() + ")\n"); + } } } - public double setOffeneGebuehren(double gebuehren){ - return gebuehren+= gebuehren; + public double addiereZuOffeneGebuehren(double gebuehren){ + return this.offeneGebuehren+= gebuehren; } - public double getOffeneGebuehren() { - return offeneGebuehren; - } - - public boolean sindGebuehrenBezahlt() { - return gebuehrenBezahlt; - } - /*public void aktualisiereGebuehren(Date aktuellesDatum) { if (gebuehrenBezahlt) return; // Keine Aktualisierung erforderlich, wenn bezahlt offeneGebuehren = 0.0; @@ -88,7 +84,6 @@ public abstract class Benutzer { public void bezahleGebuehren() { offeneGebuehren = 0.0; - gebuehrenBezahlt = true; } diff --git a/LibrarySystem/facade/BibliothekSystem.java b/LibrarySystem/facade/BibliothekSystem.java index 7773595..650482b 100644 --- a/LibrarySystem/facade/BibliothekSystem.java +++ b/LibrarySystem/facade/BibliothekSystem.java @@ -143,7 +143,7 @@ public class BibliothekSystem { long overdueTage = (aktuellesDatum.getTime() - medium.getRueckgabedatum().getTime()) / (1000 * 60 * 60 * 24); System.out.println("überfällige Tagen: " + overdueTage); double gebuehr = rechneOverdueGebuehren(overdueTage); - ausleiher.setOffeneGebuehren(gebuehr); + ausleiher.addiereZuOffeneGebuehren(gebuehr); System.out.println("Überfällige Gebühren für " + ausleiher.getName() + gebuehr + " Eur."); }else { System.out.println("Keine überfällige Gebühren."); @@ -155,6 +155,23 @@ public class BibliothekSystem { } } + //Methode zum Anzeigen des Gebührenkontos + public void zeigeGebuehrenkonto(String kartennummer){ + Benutzer benutzer = anmelden(kartennummer); + if (benutzer == null) { + System.out.println("Kein Benutzer gefunden."); + return; + } + + double gebuehren = benutzer.getOffeneGebuehren(); + if (gebuehren>0){ + System.out.println("Offene Gebühren für " + benutzer.getName() + ": " + gebuehren + " Eur."); + } else { + System.out.println("Keine offene Gebühren für "+ benutzer.getName()); + } + + } + //Methode zum Verlängern eines Mediums public void verlaengernMedium(String kartennummer,String mediumID){ Benutzer benutzer = anmelden(kartennummer); @@ -208,7 +225,13 @@ public class BibliothekSystem { }*/ public double rechneOverdueGebuehren(long overdueTagen) { - return overdueTagen * 1; // 1 euro pro Tag + if (overdueTagen <= 0){ + return 0; + } + if (overdueTagen <= 7){ + return overdueTagen * 1.0; //1 euro pro Tag für die ersten 7 Tage + } + return (7*1.0) + ((overdueTagen - 7) * 2.0); // 2 euro pro Tag ab dem 8. Tag } }