EssensverwaltungMitarbeiterView fertig

This commit is contained in:
2023-12-20 08:25:05 +01:00
13 changed files with 608 additions and 26 deletions

View File

@@ -0,0 +1,50 @@
// Programmiert von Samuel Wolff
// Noch nicht getestet
package Logik;
public class Account {
// region Felder
private String passwort;
private int id;
private String benutzername;
// endregion
// region Getter & Setter
public String getPasswort() {
return passwort;
}
public void setPasswort(String passwort) {
this.passwort = passwort;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getBenutzername() {
return benutzername;
}
public void setBenutzername(String benutzername) {
this.benutzername = benutzername;
}
// endregion
// region Konstruktoren
public Account(String passwort, String benutzername) {
this.passwort = passwort;
this.benutzername = benutzername;
}
// endregion
}

View File

@@ -0,0 +1,72 @@
// Programmiert von Samuel Wolff
// Noch nicht getestet
//
// TODO: Methoden implementieren!
//
package Logik;
import java.nio.file.WatchEvent;
import java.util.ArrayList;
public class Benutzer extends Account {
// region Felder
private String email;
private ArrayList<Kind> kinder;
// endregion
// region Getter & Setter
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public ArrayList<Kind> getKinder() {
return kinder;
}
public void setKinder(ArrayList<Kind> kinder) {
this.kinder = kinder;
}
// endregion
// region Konstruktoren
public Benutzer(String passwort, String benutzername, String email) {
super(passwort, benutzername);
this.email = email;
kinder = new ArrayList<>();
}
// endregion
// region Methoden
/**
* Lädt eine Rechnung herunter
*/
public void rechnungHerunterladen() {
}
/**
* Bestellt eine Mahlzeit
*/
public void mahlzeitBestellen() {
}
/**
* Zeigt Rechnungen gefiltert an
* @param params Die Filter Argumente
*/
public void rechnungAnzeigen(String params) {
}
// endregion
}

View File

@@ -0,0 +1,59 @@
package Logik;
import java.util.ArrayList;
public class Kind {
// region Felder
private String name;
private String vorname;
private int id;
// TODO Zutat implementieren!
// private ArrayList<Zutat> filter;
// endregion
// region Getter & Setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVorname() {
return vorname;
}
public void setVorname(String vorname) {
this.vorname = vorname;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
// TODO Zutat implementieren!
/*
public ArrayList<Zutat> getFilter() {
return filter;
}
public void setFilter(ArrayList<Zutat> filter) {
this.filter = filter;
}
*/
// endregion
// region Konstruktoren
public Kind(String name, String vorname) {
this.name = name;
this.vorname = vorname;
}
// endregion
}

View File

@@ -0,0 +1,87 @@
// Programmiert von Samuel Wolff
// Noch nicht getestet
//
// TODO Methoden implementieren
//
package Logik;
import java.util.ArrayList;
public class MitarbeiterAccount extends Account {
// region Konstrukoren
public MitarbeiterAccount(String passwort, String benutzername) {
super(passwort, benutzername);
}
//endregion
// region Methoden
/**
* Setzt das Passwort eines gegebenen Accounts auf das gegebene Passwort zurück
* @param other Der Accout dessen Passwort zurückgesetzt wird
* @param passwort Das neue Passwort
*/
public void passwortZurzecksetzen(Account other, String passwort) {
// Soll das so?
other.setPasswort(passwort);
}
/**
* Bestellt eine Mahlzeit
*/
public void mahlzeitBestellen() {
}
/**
* Ändert einen Tagesplan
*/
public void tagesplanAendern() {
}
/**
* Erstellt einen neuen Account und fügt ihn in die Datenbank ein
* @param passwort Passwort des neuen Accounts
* @param benutzername Benutzername des neuen Accounts
* @param email Die E-Mail mit der sich der User einloggt
* @param kinder Eine Liste mit allen zugehörigen Kindern des Accounts
*/
public void accountErstellen(String passwort, String benutzername, String email, ArrayList<Kind> kinder) {
Benutzer newAccount = new Benutzer(passwort, benutzername, email);
newAccount.setKinder(kinder);
// Id muss aus der Datenbank geholt werden und dann gesetzt werden
}
/**
* Zeigt Rechnungen gefilter nach params an
* @param params Die Filter Arguemente
*/
public void rechnungAnzeigen(String[] params) {
}
// TODO sollte hier nicht noch ein User mitgegeben werden?
/**
* Weist ein Kind einem Account zu
* @param kind Das zuzuweisende Kind
*/
public void kinderZuweisen(Kind kind) {
}
// TODO hier auch?
/**
* Zeigt einen Benutzer an
*/
public void zeigeBenutzer() {
}
// endregion
}

View File

@@ -0,0 +1,128 @@
package de.subway_surfers.vpr_app;
import javafx.collections.ListChangeListener;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.*;
import javafx.scene.layout.Background;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import java.util.Random;
public class AccounterstellungMitarbeiter {
private @FXML Label status;
private @FXML Label einmalpw;
private @FXML HBox kindanzeige;
private @FXML GridPane kindDaten;
private @FXML RadioButton typMitarbeiter;
private @FXML RadioButton typEltern;
private ToggleGroup accountTyp;
public void initialize() {
accountTyp = new ToggleGroup();
accountTyp.getToggles().add(typEltern);
accountTyp.getToggles().add(typMitarbeiter);
einmalpw.setText(einmalPwGenerieren());
}
public void onZurueck(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
}
public void onAbmelden(ActionEvent actionEvent) {
//VerwaltungApplication.abmelden();
}
public void onTypMitarbeiter(ActionEvent actionEvent) {
kindDaten.getChildren().clear();
}
public void onTypEltern(ActionEvent actionEvent) {
Label ueberschrift = new Label();
ueberschrift.setText("Daten des Kindes:");
kindDaten.addRow(0);
kindDaten.addColumn(0);
kindDaten.addRow(1);
kindDaten.add(ueberschrift,0,0);
kindDaten.addRow(1);
Label vname = new Label("Vorname:");
kindDaten.add(vname, 0, 1);
TextField vnameEingabe = new TextField();
kindDaten.add(vnameEingabe, 1, 1);
kindDaten.addRow(2);
Label nname = new Label("Nachname:");
kindDaten.add(nname, 0, 2);
TextField nnameEingabe = new TextField();
kindDaten.add(nnameEingabe, 1, 2);
kindDaten.addRow(3);
Label geburtstag = new Label("Geburtstag: ");
kindDaten.add(geburtstag, 0, 3);
DatePicker geburtstagEingabe = new DatePicker();
geburtstagEingabe.setEditable(false);
kindDaten.add(geburtstagEingabe, 1, 3);
kindDaten.addRow(4);
Button hinzufuegen = new Button("hinzufügen");
kindDaten.add(hinzufuegen, 1, 4);
kindDaten.addRow(5);
hinzufuegen.setOnAction(e -> {
Button neues = new Button(vnameEingabe.getText());
boolean vnameGueltig = false;
boolean gebGueltig = false;
boolean nnameGueltig = false;
if (!vnameEingabe.getText().equals("")) {
vnameGueltig = true;
}
if (!nnameEingabe.getText().equals("")) {
nnameGueltig = true;
}
if (!geburtstagEingabe.getEditor().getText().equals("")) {
gebGueltig = true;
}
if (vnameGueltig && gebGueltig && nnameGueltig) {
kindanzeige.getChildren().add(neues);
neues.setOnAction(a -> {
((HBox) neues.getParent()).getChildren().remove(neues);
});
vnameEingabe.setText("");
nnameEingabe.setText("");
geburtstagEingabe.getEditor().setText("");
}
});
}
private String einmalPwGenerieren() {
final int pwLaenge = 8;
String pw = "";
Random zufall = new Random();
for (int i = 0; i < pwLaenge; i++) {
pw += (char)zufall.nextInt('A', 'Z' + 1);
}
return pw;
}
private boolean eingabenGueltig() {
return true;
}
public void onSpeichern(ActionEvent actionEvent) {
if (eingabenGueltig()) {
status.setText("Daten Erfolgreich gespeichert");
einmalpw.setText(einmalPwGenerieren());
}
}
}

View File

@@ -39,12 +39,15 @@ public class EssensverwaltungMitarbeiterView {
}
public void onFilter(ActionEvent actionEvent) {
}
public void onHinzufuegen(ActionEvent actionEvent) {
}
public void onZurueck(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml");
}
}

View File

@@ -3,7 +3,13 @@ package de.subway_surfers.vpr_app;
import javafx.event.ActionEvent;
public class HauptmenueMitarbeiterView {
public void onAbmelden(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("login-view.fxml");
//VerwaltungApplication.abmelden();
}
public void onAccountAnlegen(ActionEvent actionEvent) {
VerwaltungApplication.sceneWechseln("accounterstellung_mitarbeiter.fxml");
}
}