Compare commits

..

2 Commits

Author SHA1 Message Date
Marc3308 189c5b29f3 Added Verlängerungs support 2024-11-19 12:51:25 +01:00
Marc3308 e2cd80c677 Added Schulden Support and everything else 2024-11-19 11:01:39 +01:00
10 changed files with 115 additions and 23 deletions

View File

@ -118,12 +118,12 @@ public class framecreater implements ActionListener {
+"<br>"+(m.getTitel()==null ? "Unbekannt" : m.getTitel()) +"<br>"+(m.getTitel()==null ? "Unbekannt" : m.getTitel())
+"<br>"+(m.getBeschreibung()==null ? "NoData" : m.getBeschreibung()) +"<br>"+(m.getBeschreibung()==null ? "NoData" : m.getBeschreibung())
+"<br>"+(m.getVerofentlichung()<=0 ? "NoData" : m.getVerofentlichung()) +"<br>"+(m.getVerofentlichung()<=0 ? "NoData" : m.getVerofentlichung())
+"<br>"+k.getAusgeliehen().get(m).toString() +"<br>"+((m.getAusleizeit()*7)-((int) ChronoUnit.DAYS.between(k.getAusgeliehen().get(m),getDatum())))+" Tage"
+"</html>"); +"</html>");
vorlage.setBounds(10+(80*(counter%4)),100+(100*(counter/4)),80,100 ); vorlage.setBounds(10+(80*(counter%4)),100+(100*(counter/4)),80,100 );
vorlage.addActionListener(e -> { vorlage.addActionListener(e -> {
frame.dispose(); frame.dispose();
profilframe(); onmedienclick(m);
}); });
return vorlage; return vorlage;
} }
@ -297,7 +297,7 @@ public class framecreater implements ActionListener {
panel.add(nummer); panel.add(nummer);
//text feld //text feld
JLabel schulden=new JLabel("Schulden: "+k.getSchulden()); JLabel schulden=new JLabel("Schulden: "+k.getSchulden()+"€");
schulden.setBounds( 10,30,200,25); schulden.setBounds( 10,30,200,25);
panel.add(schulden); panel.add(schulden);
@ -306,9 +306,8 @@ public class framecreater implements ActionListener {
schuldenzuruck.setBounds(170,30,80,25); schuldenzuruck.setBounds(170,30,80,25);
schuldenzuruck.addActionListener( e -> { schuldenzuruck.addActionListener( e -> {
if(!schuldenabezahlen.contains(k))schuldenabezahlen.add(k); if(!schuldenabezahlen.contains(k))schuldenabezahlen.add(k);
profilframe();
}); });
panel.add(schuldenzuruck); if(k.getSchulden()>0.0)panel.add(schuldenzuruck);
//studentstatus feld //studentstatus feld
JLabel studentstatus=new JLabel("Student/Schühler: "+( k.isIstStudent()? "Ja" : "Nein")); JLabel studentstatus=new JLabel("Student/Schühler: "+( k.isIstStudent()? "Ja" : "Nein"));
@ -350,6 +349,15 @@ public class framecreater implements ActionListener {
Startframe(); Startframe();
}); });
panel.add(abmelden); panel.add(abmelden);
//admin schulden erlass knopf
JButton admin=new JButton("Gebüren Verbuchen");
admin.setBounds(170,725,200,25);
admin.addActionListener(e -> {
frame.dispose();
adminclick();
});
if(getAngemeldeterbenuter()==0)panel.add(admin);
} }
public static void onmedienclick(Medien m){ public static void onmedienclick(Medien m){
@ -405,6 +413,8 @@ public class framecreater implements ActionListener {
kundenliste.get(getAngemeldeterbenuter()).getAusgeliehen().put(m,getDatum()); kundenliste.get(getAngemeldeterbenuter()).getAusgeliehen().put(m,getDatum());
Startframe(); Startframe();
}); });
if(m.getAusgeliehen()<0 && getAngemeldeterbenuter()>=0)panel.add(ausleiehen);
if(m.getAusgeliehen()>=0 && m.getAusgeliehen()==getAngemeldeterbenuter()){
//zuruckgeben button //zuruckgeben button
JButton zuruckgeben=new JButton("Zurückgeben"); JButton zuruckgeben=new JButton("Zurückgeben");
zuruckgeben.setBounds(90,125,100,25); zuruckgeben.setBounds(90,125,100,25);
@ -413,11 +423,64 @@ public class framecreater implements ActionListener {
m.setAusgeliehen(-1); m.setAusgeliehen(-1);
schuldenberechnung(m,kundenliste.get(getAngemeldeterbenuter())); schuldenberechnung(m,kundenliste.get(getAngemeldeterbenuter()));
kundenliste.get(getAngemeldeterbenuter()).getAusgeliehen().remove(m); kundenliste.get(getAngemeldeterbenuter()).getAusgeliehen().remove(m);
Startframe(); profilframe();
}); });
if(m.getAusgeliehen()<0 && getAngemeldeterbenuter()>=0)panel.add(ausleiehen); panel.add(zuruckgeben);
if(m.getAusgeliehen()>=0 && m.getAusgeliehen()==getAngemeldeterbenuter())panel.add(zuruckgeben);
//Verlängern button
JButton Verlängern=new JButton("Verlängern");
Verlängern.setBounds(150,100,100,25);
Verlängern.addActionListener(e -> {
//set max verlängerungen
int verlangerung = m.getAusleizeit();
if(m.getClass().getName().substring(20).equals("Buch") && verlangerung<(4*4))verlangerung+=4;
if(m.getClass().getName().substring(20).equals("Viedeospiel") && verlangerung==4)verlangerung*=2;
frame.dispose();
m.setAusleizeit(verlangerung);
onmedienclick(m);
});
if(m.getClass().getName().substring(20).equals("Buch"))panel.add(Verlängern);
if(m.getClass().getName().substring(20).equals("Viedeospiel"))panel.add(Verlängern);
}
}
public static void adminclick(){
//frame
JFrame frame=new JFrame("Gebüren Verbuchen");
JPanel panel=new JPanel();
frame.setSize(300,100+(schuldenabezahlen.size()*30));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.add(panel);
panel.setLayout(null);
schuldenabezahlen.forEach(k -> {
//info feld
JLabel kunde=new JLabel("Nr: "+k.getnummer()+" Schulden: "+k.getSchulden()+"€");
kunde.setBounds(10,schuldenabezahlen.indexOf(k)*25,200,25);
panel.add(kunde);
//admin schulden erlass knopf
JButton admin=new JButton("Bezahlt");
admin.setBounds(200,schuldenabezahlen.indexOf(k)*25,80,25);
admin.addActionListener(e -> {
frame.dispose();
k.setSchulden(0.0);
schuldenabezahlen.remove(k);
adminclick();
});
panel.add(admin);
});
//back
JButton back=new JButton("Zurück");
back.setBounds(10,schuldenabezahlen.size()*25,80,25);
back.addActionListener(e -> {
frame.dispose();
profilframe();
});
panel.add(back);
} }
public static void schuldenberechnung(Medien m, kunden k){ public static void schuldenberechnung(Medien m, kunden k){
@ -425,15 +488,12 @@ public class framecreater implements ActionListener {
LocalDate datethen=k.getAusgeliehen().get(m); LocalDate datethen=k.getAusgeliehen().get(m);
//set max verlängerungen //set max verlängerungen
int verlangerung = m.getAusleizeit(); int verlangerung = m.getAusleizeit()*7;
if(m.getClass().getName().substring(20).equals("Buch"))verlangerung*=4;
if(m.getClass().getName().substring(20).equals("Viedeospiel"))verlangerung*=2;
//wochen berechnen //wochen berechnen
int weeksapart = ((int) ChronoUnit.DAYS.between(datethen,datenow))/7; int weeksapart = ((int) ChronoUnit.DAYS.between(datethen,datenow));
if(weeksapart>verlangerung){ if(weeksapart>verlangerung){
weeksapart-=verlangerung; weeksapart-=verlangerung;
weeksapart*=7;
int schulden=0; int schulden=0;
if(weeksapart<7){ if(weeksapart<7){
schulden=weeksapart; schulden=weeksapart;

View File

@ -23,6 +23,9 @@ public abstract class Medien {
this.ausgeliehen = ausgeliehen; this.ausgeliehen = ausgeliehen;
} }
public void setAusleizeit(int ausleizeit) {
this.ausleizeit = ausleizeit;
}
} }
class Buch extends Medien{ class Buch extends Medien{
@ -33,6 +36,7 @@ class Buch extends Medien{
private int verofentlichung; private int verofentlichung;
private int nummber; private int nummber;
private int ausgeliehen; private int ausgeliehen;
private int ausleizeit;
public Buch(String autor, String titel, String beschreibung, int verofentlichung){ public Buch(String autor, String titel, String beschreibung, int verofentlichung){
@ -42,6 +46,7 @@ class Buch extends Medien{
this.verofentlichung=verofentlichung; this.verofentlichung=verofentlichung;
this.nummber=Bibiliotek.medienliste.size()+1; //test it this.nummber=Bibiliotek.medienliste.size()+1; //test it
this.ausgeliehen=-1; this.ausgeliehen=-1;
this.ausleizeit=4;
} }
@Override @Override
@ -81,7 +86,11 @@ class Buch extends Medien{
@Override @Override
public int getAusleizeit() { public int getAusleizeit() {
return 4; return ausleizeit;
}
@Override
public void setAusleizeit(int ausleizeit) {
this.ausleizeit = ausleizeit;
} }
} }
class DVD extends Medien{ class DVD extends Medien{
@ -103,6 +112,11 @@ class DVD extends Medien{
this.ausgeliehen=-1; this.ausgeliehen=-1;
} }
@Override
public void setAusleizeit(int ausleizeit) {
super.setAusleizeit(ausleizeit);
}
@Override @Override
public void setAusgeliehen(int ausgeliehen) { public void setAusgeliehen(int ausgeliehen) {
this.ausgeliehen = ausgeliehen; this.ausgeliehen = ausgeliehen;
@ -167,6 +181,11 @@ class CD extends Medien{
this.ausgeliehen = ausgeliehen; this.ausgeliehen = ausgeliehen;
} }
@Override
public void setAusleizeit(int ausleizeit) {
super.setAusleizeit(ausleizeit);
}
@Override @Override
public String getAutor() { public String getAutor() {
return autor; return autor;
@ -221,6 +240,11 @@ class Brettspiel extends Medien{
this.ausgeliehen=-1; this.ausgeliehen=-1;
} }
@Override
public void setAusleizeit(int ausleizeit) {
super.setAusleizeit(ausleizeit);
}
@Override @Override
public void setAusgeliehen(int ausgeliehen) { public void setAusgeliehen(int ausgeliehen) {
this.ausgeliehen = ausgeliehen; this.ausgeliehen = ausgeliehen;
@ -270,6 +294,7 @@ class Viedeospiel extends Medien{
private int verofentlichung; private int verofentlichung;
private int nummber; private int nummber;
private int ausgeliehen; private int ausgeliehen;
private int ausleizeit;
public Viedeospiel(String autor, String titel, String beschreibung, int verofentlichung){ public Viedeospiel(String autor, String titel, String beschreibung, int verofentlichung){
@ -279,13 +304,20 @@ class Viedeospiel extends Medien{
this.verofentlichung=verofentlichung; this.verofentlichung=verofentlichung;
this.nummber=Bibiliotek.medienliste.size()+1; //test it this.nummber=Bibiliotek.medienliste.size()+1; //test it
this.ausgeliehen=-1; this.ausgeliehen=-1;
this.ausleizeit=4;
} }
@Override @Override
public void setAusgeliehen(int ausgeliehen) { public void setAusgeliehen(int ausgeliehen) {
this.ausgeliehen = ausgeliehen; this.ausgeliehen = ausgeliehen;
} }
@Override
public void setAusleizeit(int ausleizeit) {
this.ausleizeit = ausleizeit;
}
@Override @Override
public String getAutor() { public String getAutor() {
return autor; return autor;
@ -318,6 +350,6 @@ class Viedeospiel extends Medien{
@Override @Override
public int getAusleizeit() { public int getAusleizeit() {
return 4; return ausleizeit;
} }
} }