96 lines
3.1 KiB
Java
96 lines
3.1 KiB
Java
package LibrarySystem.domain.benutzern;
|
|
|
|
import LibrarySystem.domain.medien.*;
|
|
|
|
import java.util.*;
|
|
|
|
public abstract class Benutzer {
|
|
private String kartennummer;
|
|
private String name;
|
|
private int alter;
|
|
private List<Medium> ausleihen;
|
|
private double offeneGebuehren;
|
|
|
|
Benutzer(String kartennummer, String name, int alter, String prefix) {
|
|
this.kartennummer = prefix + kartennummer;
|
|
this.name = name;
|
|
this.alter = alter;
|
|
this.ausleihen = new ArrayList<>();
|
|
this.offeneGebuehren = 0.0;
|
|
}
|
|
|
|
//Getter und Setter
|
|
public String getKartennummer() {return kartennummer;}
|
|
public void setKartennummer(String kartennummer) {this.kartennummer = kartennummer;}
|
|
public String getName() {return name;}
|
|
public void setName(String name) {this.name = name;}
|
|
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();
|
|
|
|
//Methode fürs Ausleihen
|
|
public void ausleihen(Medium medium) {
|
|
if(!medium.istAusgeliehen()){
|
|
ausleihen.add(medium);
|
|
medium.ausleihen();
|
|
//System.out.println(name + " hat \"" + medium.getTitel() + "\" ausgeliehen. Rückgabefrist: " + medium.getRueckgabedatum());
|
|
} else{
|
|
System.out.println("Das Medium ist bereits ausgeliehen.");
|
|
}
|
|
}
|
|
|
|
//Methode für die Rückgabe
|
|
public void rueckgabe(Medium medium) {
|
|
if(ausleihen.contains(medium)){
|
|
ausleihen.remove(medium);
|
|
medium.rueckgabeMedium();
|
|
}
|
|
else{
|
|
System.out.println("Dieses Medium von diesem Benutzer nicht ausgeliehen.");
|
|
}
|
|
}
|
|
|
|
|
|
//Methode zum Anzeigen der Ausleihen eines Benutzers
|
|
public void anzeigenAusleihen() {
|
|
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");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Methode zum Addieren der Gebühren zu den offenen Gebühren
|
|
public void addiereZuOffeneGebuehren(double gebuehren){
|
|
this.offeneGebuehren+= gebuehren;
|
|
}
|
|
|
|
//Methode für den Admin, um nach eine erfolgreiche Bezahlung das Konto auf 0 zu setzen
|
|
public void bezahleGebuehren() {
|
|
offeneGebuehren = 0.0;
|
|
}
|
|
|
|
|
|
|
|
/*public void aktualisiereGebuehren(Date aktuellesDatum) {
|
|
if (gebuehrenBezahlt) return; // Keine Aktualisierung erforderlich, wenn bezahlt
|
|
offeneGebuehren = 0.0;
|
|
for (Medium ausleihe : ausleihen) {
|
|
offeneGebuehren += ausleihe.berechneGebuehren(aktuellesDatum);
|
|
}
|
|
}*/
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "Name: " + name + ", Alter: " + alter + ", Kartennummer: " + kartennummer;
|
|
}
|
|
}
|