Ausleihe Prozess fertig implementiert
parent
8ada9aa90d
commit
42eee93eac
|
@ -11,12 +11,14 @@ public class Ausleihe {
|
||||||
private SimpleDateFormat simpleFormatter;
|
private SimpleDateFormat simpleFormatter;
|
||||||
private Date ausleiheBeginn, ausleiheEnde;
|
private Date ausleiheBeginn, ausleiheEnde;
|
||||||
private Mediumverwalter medium;
|
private Mediumverwalter medium;
|
||||||
|
private int verlängerungen;
|
||||||
|
|
||||||
public Ausleihe(Mediumverwalter medium,Date ausleiheBeginn, Date ausleiheEnde) {
|
public Ausleihe(Mediumverwalter medium,Date ausleiheBeginn, Date ausleiheEnde) {
|
||||||
this.medium = medium;
|
this.medium = medium;
|
||||||
this.ausleiheBeginn = ausleiheBeginn;
|
this.ausleiheBeginn = ausleiheBeginn;
|
||||||
this.ausleiheEnde = ausleiheEnde;
|
this.ausleiheEnde = ausleiheEnde;
|
||||||
this.simpleFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm");
|
this.simpleFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm");
|
||||||
|
this.verlängerungen = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getAusleiheBeginn() {
|
public Date getAusleiheBeginn() {
|
||||||
|
@ -41,6 +43,6 @@ public class Ausleihe {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Ausgeliehene Mediums= "+ medium.toStringOhneAnzahl() + " Ausleihe Beginn= " +simpleFormatter.format(ausleiheBeginn) + " ,Ausleihe Ende= " + simpleFormatter.format(ausleiheEnde);
|
return "Ausgeliehene Mediums= "+ medium.toStringOhneAnzahl() + " Ausleihe Beginn= " +simpleFormatter.format(ausleiheBeginn) + " ,Ausleihe Ende= " + simpleFormatter.format(ausleiheEnde) + " ,verlängerungen= " + verlängerungen;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,14 +24,16 @@ public class AusleiheSystem {
|
||||||
throw new MediumNichtGefundenException("Das Medium ist ausgeliehen");
|
throw new MediumNichtGefundenException("Das Medium ist ausgeliehen");
|
||||||
|
|
||||||
mediumAusleihen.setIstAusgeliehen(true);
|
mediumAusleihen.setIstAusgeliehen(true);
|
||||||
|
mediumAusleihen.setAnzahl(mediumAusleihen.getAnzahl() - 1);
|
||||||
this.ausleiheBeginn = new Date();
|
this.ausleiheBeginn = new Date();
|
||||||
this.calendar = Calendar.getInstance();
|
this.calendar = Calendar.getInstance();
|
||||||
calendar.setTime(ausleiheBeginn);
|
calendar.setTime(ausleiheBeginn);
|
||||||
|
|
||||||
calendar.add(Calendar.WEEK_OF_YEAR, mediumAusleihen.getWocheAnzahlZumAusleihen());
|
calendar.add(Calendar.WEEK_OF_YEAR, mediumAusleihen.getLeihdauer());
|
||||||
this.ausleiheEnde = calendar.getTime();
|
this.ausleiheEnde = calendar.getTime();
|
||||||
Ausleihe neueAusleihe = new Ausleihe(mediumAusleihen,ausleiheBeginn,ausleiheEnde);
|
Ausleihe neueAusleihe = new Ausleihe(mediumAusleihen,ausleiheBeginn,ausleiheEnde);
|
||||||
benutzer.ausleihen(neueAusleihe);
|
benutzer.ausleihen(neueAusleihe);
|
||||||
|
|
||||||
return neueAusleihe;
|
return neueAusleihe;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package domain.Benutzer;
|
package domain.Benutzer;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import domain.AusleiheSystem.Ausleihe;
|
import domain.AusleiheSystem.Ausleihe;
|
||||||
import domain.Medium.Medium;
|
import domain.Medium.Medium;
|
||||||
|
@ -14,7 +17,8 @@ public abstract class Benutzer {
|
||||||
private ArrayList<Ausleihe> ausgeliehenenMedien;
|
private ArrayList<Ausleihe> ausgeliehenenMedien;
|
||||||
private boolean angemeldet;
|
private boolean angemeldet;
|
||||||
private double gebühren;
|
private double gebühren;
|
||||||
|
private Date anmeldebeginn,anmeldeEnde;
|
||||||
|
private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
|
||||||
|
|
||||||
public Benutzer(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
public Benutzer(Ausweis bibAusweis, String name, int alter, boolean istStudent) {
|
||||||
super();
|
super();
|
||||||
|
@ -24,6 +28,8 @@ public abstract class Benutzer {
|
||||||
this.istStudent = istStudent;
|
this.istStudent = istStudent;
|
||||||
this.ausgeliehenenMedien = new ArrayList<>();
|
this.ausgeliehenenMedien = new ArrayList<>();
|
||||||
this.angemeldet = false;
|
this.angemeldet = false;
|
||||||
|
this.gebühren = 0;
|
||||||
|
this.anmeldebeginn = new Date();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Ausweis getBibAusweis() {
|
public Ausweis getBibAusweis() {
|
||||||
|
@ -87,10 +93,30 @@ public abstract class Benutzer {
|
||||||
this.gebühren = gebühren;
|
this.gebühren = gebühren;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Date getAnmeldebeginn() {
|
||||||
|
return anmeldebeginn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnmeldebeginn(String anmeldebeginn) throws ParseException {
|
||||||
|
this.anmeldebeginn = formatter.parse(anmeldebeginn);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getAnmeldeEnde() {
|
||||||
|
return anmeldeEnde;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAnmeldeEnde(String anmeldeEnde) throws ParseException {
|
||||||
|
this.anmeldeEnde= formatter.parse(anmeldeEnde);
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract double getJahresgebühr();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Benutzer [bibAusweisNummer= " + bibAusweis.getKartenNummer() + ", name=" + name + ", alter=" + alter + ", istStudent="
|
return "Benutzer [bibAusweisNummer= " + bibAusweis.getKartenNummer() + ", name=" + name + ", alter=" + alter + ", istStudent="
|
||||||
+ istStudent + ", ist im System Online = " + angemeldet + "Gebühren= "+ gebühren + ", ausgeliehenenMedien=" + ausgeliehenenMedien + "]";
|
+ istStudent + ", ist im System Online = " + angemeldet + "Gebühren= "+ gebühren +"Anmeldet seit= " + formatter.format(anmeldeEnde) + ", ausgeliehenenMedien=" + ausgeliehenenMedien + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,4 +6,9 @@ public class Kunde extends Benutzer {
|
||||||
super(bibAusweis, name, alter, istStudent);
|
super(bibAusweis, name, alter, istStudent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getJahresgebühr() {
|
||||||
|
return 25.0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,4 +6,12 @@ public class Mitarbeiter extends Benutzer {
|
||||||
super(bibAusweis, name, alter, istStudent);
|
super(bibAusweis, name, alter, istStudent);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getJahresgebühr() {
|
||||||
|
return 50.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void gebührVerbuchen(Benutzer benutzer) {
|
||||||
|
benutzer.setGebühren(getGebühren() * 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package domain.MedienDurchsuchen;
|
package domain.Bibliothekskatalog;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package domain.MedienDurchsuchen;
|
package domain.Bibliothekskatalog;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
|
@ -4,15 +4,15 @@ public class Mediumverwalter {
|
||||||
|
|
||||||
private boolean verlängerbar;
|
private boolean verlängerbar;
|
||||||
private int anzahl;
|
private int anzahl;
|
||||||
private int wocheAnzahlZumAusleihen;
|
private int leihdauer;
|
||||||
private Medium medium;
|
private Medium medium;
|
||||||
private boolean istAusgeliehen;
|
private boolean istAusgeliehen;
|
||||||
|
|
||||||
public Mediumverwalter(boolean verlängerbar, int anzahl, int wocheAnzahlZumAusleihen, Medium medium) {
|
public Mediumverwalter(boolean verlängerbar, int anzahl, int leihdauer, Medium medium) {
|
||||||
super();
|
super();
|
||||||
this.verlängerbar = verlängerbar;
|
this.verlängerbar = verlängerbar;
|
||||||
this.anzahl = anzahl;
|
this.anzahl = anzahl;
|
||||||
this.wocheAnzahlZumAusleihen = wocheAnzahlZumAusleihen;
|
this.leihdauer = leihdauer;
|
||||||
this.medium = medium;
|
this.medium = medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,8 +29,8 @@ public class Mediumverwalter {
|
||||||
this.anzahl = anzahl;
|
this.anzahl = anzahl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getWocheAnzahlZumAusleihen() {
|
public int getLeihdauer(){
|
||||||
return wocheAnzahlZumAusleihen;
|
return leihdauer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Medium getMedium() {
|
public Medium getMedium() {
|
||||||
|
@ -48,8 +48,8 @@ public class Mediumverwalter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Medium=" + medium.toString() + " ,verlängerbar=" + verlängerbar + ", anzahl=" + anzahl + ",ist Ausgeliehen= " + istAusgeliehen + ", wocheAnzahlZumAusleihen="
|
return "Medium=" + medium.toString() + " ,verlängerbar=" + verlängerbar + ", anzahl=" + anzahl + ",ist Ausgeliehen= " + istAusgeliehen + ", Leihdauer="
|
||||||
+ wocheAnzahlZumAusleihen ;
|
+ leihdauer ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
package domain.fassade;
|
package domain.fassade;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
@ -11,8 +14,8 @@ import java.util.stream.Stream;
|
||||||
import domain.AusleiheSystem.Ausleihe;
|
import domain.AusleiheSystem.Ausleihe;
|
||||||
import domain.AusleiheSystem.AusleiheSystem;
|
import domain.AusleiheSystem.AusleiheSystem;
|
||||||
import domain.Benutzer.*;
|
import domain.Benutzer.*;
|
||||||
|
import domain.Bibliothekskatalog.Mediensuchen;
|
||||||
import domain.ExceptionsKlassen.*;
|
import domain.ExceptionsKlassen.*;
|
||||||
import domain.MedienDurchsuchen.Mediensuchen;
|
|
||||||
import domain.Medium.Brettspiel;
|
import domain.Medium.Brettspiel;
|
||||||
import domain.Medium.Buch;
|
import domain.Medium.Buch;
|
||||||
import domain.Medium.Medium;
|
import domain.Medium.Medium;
|
||||||
|
@ -25,12 +28,15 @@ public class BibSystem {
|
||||||
private HashMap<String,Mediumverwalter> medien;
|
private HashMap<String,Mediumverwalter> medien;
|
||||||
private ArrayList<Ausleihe> ausleihe;
|
private ArrayList<Ausleihe> ausleihe;
|
||||||
private AusleiheSystem ausleiheSystem;
|
private AusleiheSystem ausleiheSystem;
|
||||||
|
private Date heutigesDatum;
|
||||||
|
private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
|
||||||
|
|
||||||
public BibSystem() {
|
public BibSystem() {
|
||||||
|
|
||||||
this.alleBibBenutzer = new ArrayList<>();
|
this.alleBibBenutzer = new ArrayList<>();
|
||||||
this.medien = new HashMap<>();
|
this.medien = new HashMap<>();
|
||||||
this.ausleiheSystem = new AusleiheSystem(medien);
|
this.ausleiheSystem = new AusleiheSystem(medien);
|
||||||
|
this.heutigesDatum = new Date();
|
||||||
mediumsAufladen();
|
mediumsAufladen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,10 +91,13 @@ public class BibSystem {
|
||||||
ausleihe.add(neueAusleihe);
|
ausleihe.add(neueAusleihe);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public Date getHeutigesDatum() {
|
||||||
|
return heutigesDatum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeutigesDatum(String heutigesDatum) throws ParseException {
|
||||||
|
this.heutigesDatum = formatter.parse(heutigesDatum);
|
||||||
|
}
|
||||||
|
|
||||||
// Temporäre Test Methode
|
// Temporäre Test Methode
|
||||||
private void mediumsAufladen() {
|
private void mediumsAufladen() {
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
package domain.fassade;
|
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.Disabled;
|
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
|
|
||||||
import domain.Benutzer.Benutzer;
|
|
||||||
import domain.ExceptionsKlassen.BenutzerNichtAngemeldetException;
|
|
||||||
import domain.ExceptionsKlassen.BenutzerNichtGefundenException;
|
|
||||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
|
||||||
import domain.ExceptionsKlassen.MediumNichtGefundenException;
|
|
||||||
import domain.UserRegistieren.Registieren;
|
|
||||||
|
|
||||||
class MediumDurchsuchenTest {
|
|
||||||
|
|
||||||
BibSystem fassade;
|
|
||||||
@BeforeEach
|
|
||||||
void setUp() throws Exception {
|
|
||||||
fassade = new BibSystem();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Disabled
|
|
||||||
void testMediumsuchen() throws FalscheEingabeException, BenutzerNichtGefundenException, MediumNichtGefundenException, BenutzerNichtAngemeldetException {
|
|
||||||
fassade.userRegistrieren("obai", "student", 15, "nein");
|
|
||||||
assertTrue(fassade.userAnmdelden("K1000"));
|
|
||||||
ArrayList<String> treffer = (ArrayList<String>) fassade.mediumDurchsuchen("Effektives Java Programmieren", "B001");
|
|
||||||
treffer.forEach(System.out::println);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testMediumNichtGefunden() throws FalscheEingabeException, BenutzerNichtGefundenException, MediumNichtGefundenException, BenutzerNichtAngemeldetException {
|
|
||||||
fassade.userRegistrieren("obai", "student", 15, "nein");
|
|
||||||
assertTrue(fassade.userAnmdelden("K1000"));
|
|
||||||
assertThrows(MediumNichtGefundenException.class, () -> fassade.mediumDurchsuchen("C++ Programmieren", "B001"));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -31,7 +31,7 @@ public class Tui {
|
||||||
System.out.println("6.Ausgeliehene Gegenstände, Fälligkeitsdaten und aufgelaufene Gebühren anzeigen");
|
System.out.println("6.Ausgeliehene Gegenstände, Fälligkeitsdaten und aufgelaufene Gebühren anzeigen");
|
||||||
System.out.println("7.Verlängern der Leihfrist");
|
System.out.println("7.Verlängern der Leihfrist");
|
||||||
System.out.println("8.Verbuchen von überfälligen Gebühren (Admin)");
|
System.out.println("8.Verbuchen von überfälligen Gebühren (Admin)");
|
||||||
System.out.println("9.Abmlden");
|
System.out.println("9.Gebühren berechnen");
|
||||||
System.out.println("Wählen Sie bitte eine Aktion aus: ");
|
System.out.println("Wählen Sie bitte eine Aktion aus: ");
|
||||||
System.out.print(">");
|
System.out.print(">");
|
||||||
aktion = eingabe.nextLine();
|
aktion = eingabe.nextLine();
|
||||||
|
@ -70,6 +70,11 @@ public class Tui {
|
||||||
System.out.print(">");
|
System.out.print(">");
|
||||||
eindutigeKennung = eingabe.nextLine();
|
eindutigeKennung = eingabe.nextLine();
|
||||||
|
|
||||||
|
System.out.println("Geben Sie bitte den Datum ein");
|
||||||
|
System.out.println("Geben Sie bitte die Ausleihebeginn");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
fassade.mediumAusleihen(kartennummer, eindutigeKennung);
|
fassade.mediumAusleihen(kartennummer, eindutigeKennung);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue