Anzeige der Gebührenkonto, Berechnung der Gebühren muss noch verbessert werden

devIoana
ioana 2024-11-17 16:10:26 +01:00
parent 1faa14fd5f
commit 32bba7e3f9
3 changed files with 37 additions and 19 deletions

View File

@ -90,7 +90,7 @@ public class UI {
String kartennummer = scanner.nextLine(); String kartennummer = scanner.nextLine();
Benutzer benutzer = system.anmelden(kartennummer); Benutzer benutzer = system.anmelden(kartennummer);
if (benutzer != null) { if (benutzer != null) {
//system.zeigeGebuehren(benutzer); system.zeigeGebuehrenkonto(kartennummer);
benutzer.anzeigenAusleihen(); benutzer.anzeigenAusleihen();
} }
} }

View File

@ -10,7 +10,6 @@ public abstract class Benutzer {
private int alter; private int alter;
private List<Medium> ausleihen; private List<Medium> ausleihen;
private double offeneGebuehren; private double offeneGebuehren;
private boolean gebuehrenBezahlt;
Benutzer(String kartennummer, String name, int alter, String prefix) { Benutzer(String kartennummer, String name, int alter, String prefix) {
this.kartennummer = prefix + kartennummer; this.kartennummer = prefix + kartennummer;
@ -18,7 +17,6 @@ public abstract class Benutzer {
this.alter = alter; this.alter = alter;
this.ausleihen = new ArrayList<>(); this.ausleihen = new ArrayList<>();
this.offeneGebuehren = 0.0; this.offeneGebuehren = 0.0;
this.gebuehrenBezahlt = true; // Zu Beginn keine Gebühren offen
} }
//Getter und Setter //Getter und Setter
@ -29,6 +27,8 @@ public abstract class Benutzer {
public int getAlter() {return alter;} public int getAlter() {return alter;}
public void setAlter(int alter) {this.alter = alter;} public void setAlter(int alter) {this.alter = alter;}
public List<Medium> getAusleihen() {return ausleihen;} public List<Medium> getAusleihen() {return ausleihen;}
public double getOffeneGebuehren() {return offeneGebuehren;}
// Abstrakte Methode für die Jahresgebühr // Abstrakte Methode für die Jahresgebühr
public abstract double getJahresgebuehr(); public abstract double getJahresgebuehr();
@ -59,25 +59,21 @@ public abstract class Benutzer {
//Methode zum Anzeigen der Ausleihen eines Benutzers //Methode zum Anzeigen der Ausleihen eines Benutzers
public void anzeigenAusleihen() { public void anzeigenAusleihen() {
System.out.println("Aktuell ausgeliehene Medien von " + name + ":\n"); if(ausleihen.isEmpty()){
for (Medium medium : ausleihen) { System.out.println("Keine ausgeliehenen Medien.");
System.out.println("- " + medium.getTitel() + " (Fällig am: " + medium.getRueckgabedatum() + ")\n"); }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){ public double addiereZuOffeneGebuehren(double gebuehren){
return gebuehren+= gebuehren; return this.offeneGebuehren+= gebuehren;
} }
public double getOffeneGebuehren() {
return offeneGebuehren;
}
public boolean sindGebuehrenBezahlt() {
return gebuehrenBezahlt;
}
/*public void aktualisiereGebuehren(Date aktuellesDatum) { /*public void aktualisiereGebuehren(Date aktuellesDatum) {
if (gebuehrenBezahlt) return; // Keine Aktualisierung erforderlich, wenn bezahlt if (gebuehrenBezahlt) return; // Keine Aktualisierung erforderlich, wenn bezahlt
offeneGebuehren = 0.0; offeneGebuehren = 0.0;
@ -88,7 +84,6 @@ public abstract class Benutzer {
public void bezahleGebuehren() { public void bezahleGebuehren() {
offeneGebuehren = 0.0; offeneGebuehren = 0.0;
gebuehrenBezahlt = true;
} }

View File

@ -143,7 +143,7 @@ public class BibliothekSystem {
long overdueTage = (aktuellesDatum.getTime() - medium.getRueckgabedatum().getTime()) / (1000 * 60 * 60 * 24); long overdueTage = (aktuellesDatum.getTime() - medium.getRueckgabedatum().getTime()) / (1000 * 60 * 60 * 24);
System.out.println("überfällige Tagen: " + overdueTage); System.out.println("überfällige Tagen: " + overdueTage);
double gebuehr = rechneOverdueGebuehren(overdueTage); double gebuehr = rechneOverdueGebuehren(overdueTage);
ausleiher.setOffeneGebuehren(gebuehr); ausleiher.addiereZuOffeneGebuehren(gebuehr);
System.out.println("Überfällige Gebühren für " + ausleiher.getName() + gebuehr + " Eur."); System.out.println("Überfällige Gebühren für " + ausleiher.getName() + gebuehr + " Eur.");
}else { }else {
System.out.println("Keine überfällige Gebühren."); 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 //Methode zum Verlängern eines Mediums
public void verlaengernMedium(String kartennummer,String mediumID){ public void verlaengernMedium(String kartennummer,String mediumID){
Benutzer benutzer = anmelden(kartennummer); Benutzer benutzer = anmelden(kartennummer);
@ -208,7 +225,13 @@ public class BibliothekSystem {
}*/ }*/
public double rechneOverdueGebuehren(long overdueTagen) { 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
} }
} }