Ausleihe Prozess fertig implementiert
parent
8ada9aa90d
commit
42eee93eac
|
@ -11,12 +11,14 @@ public class Ausleihe {
|
|||
private SimpleDateFormat simpleFormatter;
|
||||
private Date ausleiheBeginn, ausleiheEnde;
|
||||
private Mediumverwalter medium;
|
||||
private int verlängerungen;
|
||||
|
||||
public Ausleihe(Mediumverwalter medium,Date ausleiheBeginn, Date ausleiheEnde) {
|
||||
this.medium = medium;
|
||||
this.ausleiheBeginn = ausleiheBeginn;
|
||||
this.ausleiheEnde = ausleiheEnde;
|
||||
this.simpleFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm");
|
||||
this.verlängerungen = 0;
|
||||
}
|
||||
|
||||
public Date getAusleiheBeginn() {
|
||||
|
@ -41,6 +43,6 @@ public class Ausleihe {
|
|||
|
||||
@Override
|
||||
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");
|
||||
|
||||
mediumAusleihen.setIstAusgeliehen(true);
|
||||
mediumAusleihen.setAnzahl(mediumAusleihen.getAnzahl() - 1);
|
||||
this.ausleiheBeginn = new Date();
|
||||
this.calendar = Calendar.getInstance();
|
||||
calendar.setTime(ausleiheBeginn);
|
||||
|
||||
calendar.add(Calendar.WEEK_OF_YEAR, mediumAusleihen.getWocheAnzahlZumAusleihen());
|
||||
calendar.add(Calendar.WEEK_OF_YEAR, mediumAusleihen.getLeihdauer());
|
||||
this.ausleiheEnde = calendar.getTime();
|
||||
Ausleihe neueAusleihe = new Ausleihe(mediumAusleihen,ausleiheBeginn,ausleiheEnde);
|
||||
benutzer.ausleihen(neueAusleihe);
|
||||
|
||||
return neueAusleihe;
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package domain.Benutzer;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
|
||||
import domain.AusleiheSystem.Ausleihe;
|
||||
import domain.Medium.Medium;
|
||||
|
@ -14,7 +17,8 @@ public abstract class Benutzer {
|
|||
private ArrayList<Ausleihe> ausgeliehenenMedien;
|
||||
private boolean angemeldet;
|
||||
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) {
|
||||
super();
|
||||
|
@ -24,6 +28,8 @@ public abstract class Benutzer {
|
|||
this.istStudent = istStudent;
|
||||
this.ausgeliehenenMedien = new ArrayList<>();
|
||||
this.angemeldet = false;
|
||||
this.gebühren = 0;
|
||||
this.anmeldebeginn = new Date();
|
||||
}
|
||||
|
||||
public Ausweis getBibAusweis() {
|
||||
|
@ -86,11 +92,31 @@ public abstract class Benutzer {
|
|||
public void setGebühren(double 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
|
||||
public String toString() {
|
||||
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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getJahresgebühr() {
|
||||
return 25.0;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -6,4 +6,12 @@ public class Mitarbeiter extends Benutzer {
|
|||
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.*;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package domain.MedienDurchsuchen;
|
||||
package domain.Bibliothekskatalog;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
|
@ -4,15 +4,15 @@ public class Mediumverwalter {
|
|||
|
||||
private boolean verlängerbar;
|
||||
private int anzahl;
|
||||
private int wocheAnzahlZumAusleihen;
|
||||
private int leihdauer;
|
||||
private Medium medium;
|
||||
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();
|
||||
this.verlängerbar = verlängerbar;
|
||||
this.anzahl = anzahl;
|
||||
this.wocheAnzahlZumAusleihen = wocheAnzahlZumAusleihen;
|
||||
this.leihdauer = leihdauer;
|
||||
this.medium = medium;
|
||||
}
|
||||
|
||||
|
@ -29,8 +29,8 @@ public class Mediumverwalter {
|
|||
this.anzahl = anzahl;
|
||||
}
|
||||
|
||||
public int getWocheAnzahlZumAusleihen() {
|
||||
return wocheAnzahlZumAusleihen;
|
||||
public int getLeihdauer(){
|
||||
return leihdauer;
|
||||
}
|
||||
|
||||
public Medium getMedium() {
|
||||
|
@ -48,8 +48,8 @@ public class Mediumverwalter {
|
|||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Medium=" + medium.toString() + " ,verlängerbar=" + verlängerbar + ", anzahl=" + anzahl + ",ist Ausgeliehen= " + istAusgeliehen + ", wocheAnzahlZumAusleihen="
|
||||
+ wocheAnzahlZumAusleihen ;
|
||||
return "Medium=" + medium.toString() + " ,verlängerbar=" + verlängerbar + ", anzahl=" + anzahl + ",ist Ausgeliehen= " + istAusgeliehen + ", Leihdauer="
|
||||
+ leihdauer ;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package domain.fassade;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map.Entry;
|
||||
|
@ -11,8 +14,8 @@ import java.util.stream.Stream;
|
|||
import domain.AusleiheSystem.Ausleihe;
|
||||
import domain.AusleiheSystem.AusleiheSystem;
|
||||
import domain.Benutzer.*;
|
||||
import domain.Bibliothekskatalog.Mediensuchen;
|
||||
import domain.ExceptionsKlassen.*;
|
||||
import domain.MedienDurchsuchen.Mediensuchen;
|
||||
import domain.Medium.Brettspiel;
|
||||
import domain.Medium.Buch;
|
||||
import domain.Medium.Medium;
|
||||
|
@ -25,12 +28,15 @@ public class BibSystem {
|
|||
private HashMap<String,Mediumverwalter> medien;
|
||||
private ArrayList<Ausleihe> ausleihe;
|
||||
private AusleiheSystem ausleiheSystem;
|
||||
|
||||
private Date heutigesDatum;
|
||||
private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
|
||||
|
||||
public BibSystem() {
|
||||
|
||||
this.alleBibBenutzer = new ArrayList<>();
|
||||
this.medien = new HashMap<>();
|
||||
this.ausleiheSystem = new AusleiheSystem(medien);
|
||||
this.heutigesDatum = new Date();
|
||||
mediumsAufladen();
|
||||
}
|
||||
|
||||
|
@ -85,11 +91,14 @@ public class BibSystem {
|
|||
ausleihe.add(neueAusleihe);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public Date getHeutigesDatum() {
|
||||
return heutigesDatum;
|
||||
}
|
||||
|
||||
public void setHeutigesDatum(String heutigesDatum) throws ParseException {
|
||||
this.heutigesDatum = formatter.parse(heutigesDatum);
|
||||
}
|
||||
|
||||
// Temporäre Test Methode
|
||||
private void mediumsAufladen() {
|
||||
Mediumverwalter buch = new Mediumverwalter(true, 10, 4, new Buch("Effektives Java Programmieren", 2018, "Joshua Bloch"));
|
||||
|
|
|
@ -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("7.Verlängern der Leihfrist");
|
||||
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.print(">");
|
||||
aktion = eingabe.nextLine();
|
||||
|
@ -69,6 +69,11 @@ public class Tui {
|
|||
System.out.println("Geben Sie bitte die eindutige Kennung des Mediums");
|
||||
System.out.print(">");
|
||||
eindutigeKennung = eingabe.nextLine();
|
||||
|
||||
System.out.println("Geben Sie bitte den Datum ein");
|
||||
System.out.println("Geben Sie bitte die Ausleihebeginn");
|
||||
|
||||
|
||||
|
||||
try {
|
||||
fassade.mediumAusleihen(kartennummer, eindutigeKennung);
|
||||
|
|
Loading…
Reference in New Issue