Anzeige der Gebührenkonto, Berechnung der Gebühren muss noch verbessert werden
parent
1faa14fd5f
commit
32bba7e3f9
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,6 @@ public abstract class Benutzer {
|
|||
private int alter;
|
||||
private List<Medium> 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<Medium> 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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue