diff --git a/pom.xml b/pom.xml
index 8da2cd8..b3e3131 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,7 @@
default-cli
- com.bib.essensbestellungsverwaltung/com.bib.essensbestellungsverwaltung.HelloApplication
+ com.bib.essensbestellungsverwaltung/com.bib.essensbestellungsverwaltung.StartViewApplication
app
app
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java b/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java
index a6d821f..95b306f 100644
--- a/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/AccountMgr.java
@@ -18,12 +18,10 @@ public class AccountMgr {
/**
* creates a user with createUser(...) and adds its id to the 'worker' table
- * @param userData String[] name, firstname, password, email
- * @param addressData String[] street, number, plz, city
* @return userid or -1
*/
- protected static long createWorker(String[] userData, String[] addressData){
- long id = createUser(userData, addressData);
+ protected static long createWorker(Worker worker){
+ long id = createUser(worker);
String sId = String.valueOf(id);
Database.insert("worker", new String[]{"userid"}, new String[]{sId});
return id;
@@ -31,12 +29,10 @@ public class AccountMgr {
/**
* creates a user with createUser(...) and adds its id to the 'parent' table
- * @param userData String[] name, firstname, password, email
- * @param addressData String[] street, number, plz, city
* @return userid or -1
*/
- protected static long createParent(String[] userData, String[] addressData){
- long id = createUser(userData, addressData);
+ protected static long createParent(Parent parent){
+ long id = createUser(parent);
String sId = String.valueOf(id);
Database.insert("parent", new String[]{"userid"}, new String[]{sId});
return id;
@@ -44,46 +40,89 @@ public class AccountMgr {
/**
* adds a user to the database
- * @param userData String[] name, firstname, password, email
- * @param addressData String[] street, number, plz, city
* @return userid or -1
*/
- protected static long createUser(String[] userData, String[] addressData) {
- String[] addressH = {"street", "number", "plz", "city"};
+ protected static long createUser(User user) {
String[] userH = {"name", "firstname", "addressid", "password", "email"};
- String name = userData[0];
- String firstname = userData[1];
- String pw = hashAndSalt(userData[2], getSalt());
- String email = userData[3];
+ String name = user.getName();
+ String firstname = user.getFirstname();
+ String pw = hashAndSalt(user.getPassword(), getSalt());
+ String email = user.getEmail();
+ long addressId = user.getAddress().getId();
+ if(addressId < 1){
+ addressId = createAddress(user.getAddress());
+ }
+ String[] userD = {name, firstname, String.valueOf(addressId), pw, email};
+ return Database.insert("user", userH, userD);
+ }
- long id = Database.insert("address", addressH, addressData);
- String sId = String.valueOf(id);
- String[] userD = {name, firstname, sId, pw, email};
- id = Database.insert("user", userH, userD);
- return id;
+ protected static long createAddress(Address address){
+ String[] addressH = {"street", "number", "plz", "city"};
+ String[] addressD = {address.getStreet(),address.getNumber(),address.getPlz(),address.getCity()};
+ return Database.insert("address",addressH,addressD);
}
/**
* adds a child and allergies to the database
- * @param childData name, firstname, addressid
- * @param allergyData id of allergies order matching with severityData
- * @param severityData id of severity order matching with allergyData
* @return id of child or -1
*/
- protected static long createChild(String[] childData,String[] allergyData, String[] severityData){
+ protected static long createChild(Child child){
String[] childH = {"name","firstname","addressid"};
+ String[] childD = {child.getName(), child.getFirstname(), String.valueOf(child.getAddress().getId())};
+ long id = Database.insert("child", childH, childD);
String[] child_allergyH = {"childid","allergyid","severityid"};
- long id = Database.insert("child", childH, childData);
- if(allergyData.length > 0){
- for(int i = 0; i < allergyData.length; i++){
- String sId = String.valueOf(id);
- String[] child_allergyD = {sId,allergyData[i],severityData[i]};
- Database.insert("child_allergy",child_allergyH,child_allergyD);
- }
+ for (AllergySeverity allergy: child.getAllergies()) {
+ String sId = String.valueOf(id);
+ String sAllergyId = String.valueOf(allergy.getAllergy().getId());
+ String sSeverityId = String.valueOf(allergy.getSeverityId());
+ String[] child_allergyD = {sId,sAllergyId,sSeverityId};
+ Database.insert("child_allergy",child_allergyH,child_allergyD);
}
return id;
}
+ protected static User getUserById(long id){
+ List entry = Database.getEntryById("user",id);
+ String[] parts = entry.get(0).split(":");
+ Address address = getAddressById(id);
+ if(isWorker(String.valueOf(id))){
+ return new Worker(id,parts[1],parts[2],parts[4],parts[5],address);
+ }else{
+ String[] parent_childH = {"parentuserid"};
+ String[] parent_childD = {String.valueOf(id)};
+ List children = new ArrayList<>();
+ List parent_childEntries = Database.select("parent_child",parent_childH,parent_childD);
+ for (String parent_childEntry: parent_childEntries) {
+ String[] parent_childParts = parent_childEntry.split(":");
+ children.add(getChildById(Long.parseLong(parent_childParts[2])));
+ }
+ return new Parent(id,parts[1],parts[2],parts[4],parts[5],address,children);
+ }
+ }
+
+ protected static Child getChildById(long id){
+ List entry = Database.getEntryById("child",id);
+ String[] parts = entry.get(0).split(":");
+ String[] child_allergyH = {"childid"};
+ String[] child_allergyD = {String.valueOf(id)};
+ List entriesAllergy = Database.select("child_allergy",child_allergyH,child_allergyD);
+ List allergySeverities = new ArrayList<>();
+ for (String entryAllergy : entriesAllergy) {
+ String[] allergyParts = entryAllergy.split(":");
+ List severity = Database.getEntryById("severity", Long.parseLong(allergyParts[3]));
+ String sSeverity = severity.get(0).split(":")[1];
+ long lSeverity = Long.parseLong(severity.get(0).split(":")[0]);
+ allergySeverities.add(new AllergySeverity(FoodMgr.getAllergyById(Long.parseLong(allergyParts[2])),lSeverity,sSeverity));
+ }
+ return new Child(id,parts[1],parts[2],getAddressById(Long.parseLong(parts[3])),allergySeverities);
+ }
+
+ protected static Address getAddressById(long id){
+ List entry = Database.getEntryById("address",id);
+ String[] parts = entry.get(0).split(":");
+ return new Address(Long.parseLong(parts[0]),parts[1],parts[2],parts[3],parts[4]);
+ }
+
/**
* creates entries in the database to match parent to child
* @param parentId id of parent
@@ -149,7 +188,7 @@ public class AccountMgr {
* @param pw the password to hash
* @return hashed and salted password
*/
- protected static String hashAndSalt(String pw, String salt){
+ private static String hashAndSalt(String pw, String salt){
Base64.Decoder dec = Base64.getDecoder();
byte[] bySalt = dec.decode(salt);
KeySpec spec = new PBEKeySpec(pw.toCharArray(), bySalt,310001,256);
@@ -205,4 +244,15 @@ public class AccountMgr {
invoice.add("Total: " + (invoice.size()-2) + " X " + price + "€ = " + ((invoice.size()-2)*price) + "€");
return invoice;
}
+
+ protected static void getPriceFromDb(){
+ List priceEntry = Database.getEntryById("price",1);
+ price = Double.parseDouble(priceEntry.get(0).split(":")[1])/100.0;
+ }
+
+ protected static void setPriceInDb(){
+ String[] priceH = {"id","price"};
+ String[] priceD = {"1", String.valueOf(price*100)};
+ Database.update("price",priceH,priceD);
+ }
}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Address.java b/src/main/java/com/bib/essensbestellungsverwaltung/Address.java
new file mode 100644
index 0000000..641330d
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/Address.java
@@ -0,0 +1,47 @@
+package com.bib.essensbestellungsverwaltung;
+/*
+ @author Malte Schulze Hobeling
+ */
+
+public class Address {
+ private long id;
+ private String street;
+ private String number;
+ private String plz;
+ private String city;
+
+ public long getId() {
+ return id;
+ }
+
+ public String getStreet() {
+ return street;
+ }
+
+ public String getNumber() {
+ return number;
+ }
+
+ public String getPlz() {
+ return plz;
+ }
+
+ public String getCity() {
+ return city;
+ }
+
+ public Address(long id, String street, String number, String plz, String city) {
+ this.id = id;
+ this.street = street;
+ this.number = number;
+ this.plz = plz;
+ this.city = city;
+ }
+ public Address(String street, String number, String plz, String city) {
+ this.id = -1;
+ this.street = street;
+ this.number = number;
+ this.plz = plz;
+ this.city = city;
+ }
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java b/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java
new file mode 100644
index 0000000..77518be
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/Allergy.java
@@ -0,0 +1,28 @@
+package com.bib.essensbestellungsverwaltung;
+/*
+ @author Malte Schulze Hobeling
+ */
+
+public class Allergy {
+ private final long id;
+ private final String name;
+ private final String handle;
+
+ public Allergy(long id, String name, String handle) {
+ this.id = id;
+ this.name = name;
+ this.handle = handle;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getHandle() {
+ return handle;
+ }
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/AllergySeverity.java b/src/main/java/com/bib/essensbestellungsverwaltung/AllergySeverity.java
new file mode 100644
index 0000000..5ad3e9e
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/AllergySeverity.java
@@ -0,0 +1,28 @@
+package com.bib.essensbestellungsverwaltung;
+/*
+ @author Malte Schulze Hobeling
+ */
+
+public class AllergySeverity {
+ private Allergy allergy;
+ private long severityId;
+ private String severity;
+
+ public AllergySeverity(Allergy allergy, long severityId, String severity) {
+ this.allergy = allergy;
+ this.severityId = severityId;
+ this.severity = severity;
+ }
+
+ public Allergy getAllergy() {
+ return allergy;
+ }
+
+ public long getSeverityId() {
+ return severityId;
+ }
+
+ public String getSeverity() {
+ return severity;
+ }
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Child.java b/src/main/java/com/bib/essensbestellungsverwaltung/Child.java
new file mode 100644
index 0000000..697e055
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/Child.java
@@ -0,0 +1,49 @@
+package com.bib.essensbestellungsverwaltung;
+/*
+ @author Malte Schulze Hobeling
+ */
+
+import java.util.List;
+
+public class Child {
+ private long id;
+ private String name;
+ private String firstname;
+ private Address address;
+ private List allergies;
+
+ public Child(long id, String name, String firstname, Address address, List allergies) {
+ this.id = id;
+ this.name = name;
+ this.firstname = firstname;
+ this.address = address;
+ this.allergies = allergies;
+ }
+ public Child(String name, String firstname, Address address, List allergies) {
+ this.id = -1;
+ this.name = name;
+ this.firstname = firstname;
+ this.address = address;
+ this.allergies = allergies;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public Address getAddress() {
+ return address;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public List getAllergies() {
+ return allergies;
+ }
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java
index fa9775f..8699e65 100644
--- a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleLib.java
@@ -29,7 +29,9 @@ public class ConsoleLib {
userData[3] = sc.nextLine();
System.out.print("Passwort: ");
userData[2] = sc.nextLine();
- long id = AccountMgr.createWorker(userData,addressData);
+ Address address = new Address(addressData[0],addressData[1],addressData[2],addressData[3]);
+ Worker worker = new Worker(userData[0],userData[1],userData[2],userData[3],address);
+ long id = AccountMgr.createWorker(worker);
if(id < 1){
System.out.println("Fehler beim erstellen");
}
@@ -56,7 +58,9 @@ public class ConsoleLib {
userData[3] = sc.nextLine();
System.out.print("Passwort: ");
userData[2] = sc.nextLine();
- long id = AccountMgr.createParent(userData,addressData);
+ Address address = new Address(addressData[0],addressData[1],addressData[2],addressData[3]);
+ Parent parent = new Parent(userData[0],userData[1],userData[2],userData[3],address);
+ long id = AccountMgr.createParent(parent);
if(id < 1){
System.out.println("Fehler beim erstellen");
}
@@ -88,7 +92,15 @@ public class ConsoleLib {
System.out.print("Schweren (1 Harmlos - 3 Kritisch[2,3,1,3]): ");
String severities = sc.nextLine();
String[] severityData = severities.split(",");
- long id = AccountMgr.createChild(childData,allergyData,severityData);
+ Address address = AccountMgr.getAddressById(Long.parseLong(childData[2]));
+ List allergySeverities = new ArrayList<>();
+ for(int i = 0; i < allergyData.length; i++){
+ List allergySeverity = Database.getEntryById("severity", Long.parseLong(severityData[i]));
+ String[] asParts = allergySeverity.get(0).split(":");
+ allergySeverities.add(new AllergySeverity(FoodMgr.getAllergyById(Long.parseLong(allergyData[0])),Long.parseLong(asParts[0]),asParts[1]));
+ }
+ Child child = new Child(childData[0],childData[1],address,allergySeverities);
+ long id = AccountMgr.createChild(child);
if(id < 1){
System.out.println("Fehler beim erstellen");
return;
@@ -119,27 +131,39 @@ public class ConsoleLib {
System.out.print("Allergienummer: ");
String allergies = sc.nextLine();
String[] allergyData = allergies.split(",");
- if(FoodMgr.createFood(foodData,allergyData) < 1){
+ FoodType foodType = FoodMgr.getFoodTypeById(Long.parseLong(foodData[3]));
+ List allergyList = new ArrayList<>();
+ for (String data : allergyData) {
+ allergyList.add(FoodMgr.getAllergyById(Long.parseLong(data)));
+ }
+ boolean isDessert = !foodData[2].equals("0");
+ Food food = new Food(foodData[0],foodData[1],isDessert,foodType,allergyList);
+ if(FoodMgr.createFood(food) < 1){
System.out.println("Fehler");
}
}
- public static long loginPrompt(){
+ public static User loginPrompt(){
System.out.println("Login");
Scanner sc = new Scanner(System.in);
- long id = -1;
- while (id == -1){
+ User user = null;
+ while (user == null){
System.out.print("Email: ");
String email = sc.nextLine();
+ if(email.isEmpty()){
+ return null;
+ }
System.out.print("Passwort: ");
String pw = sc.nextLine();
- id = AccountMgr.login(email,pw);
+ long id = AccountMgr.login(email,pw);
if(id == -1){
System.out.println("Login fehlgeschlagen");
+ }else {
+ user = AccountMgr.getUserById(id);
}
}
System.out.println("Login erfolgreich");
- return id;
+ return user;
}
public static void matchParentChildPrompt(String parentId){
@@ -183,19 +207,36 @@ public class ConsoleLib {
Scanner sc = new Scanner(System.in);
System.out.print("Bitte geben Sie das Datum im Format YYYY-MM-DD an: ");
food_planData[0] = sc.nextLine();
- printConsole(FoodMgr.getVeganFood(false));
+ List veganMain = FoodMgr.getVeganFood(false);
+ for (Food food : veganMain) {
+ System.out.println(food.getId() + " : " + food.getName());
+ }
System.out.print("Veganes Hauptgericht Nr: ");
food_planData[1] = sc.nextLine();
- printConsole(FoodMgr.getFood(false));
+ List foodMain = FoodMgr.getFood(false);
+ for (Food food : foodMain) {
+ System.out.println(food.getId() + " : " + food.getName());
+ }
System.out.print("Zweites Hauptgericht Nr: ");
food_planData[2] = sc.nextLine();
- printConsole(FoodMgr.getVeganFood(true));
+ List veganDessert = FoodMgr.getVeganFood(true);
+ for (Food food : veganDessert) {
+ System.out.println(food.getId() + " : " + food.getName());
+ }
System.out.print("Veganes Dessert Nr: ");
food_planData[3] = sc.nextLine();
- printConsole(FoodMgr.getFood(true));
+ List foodDessert = FoodMgr.getFood(true);
+ for (Food food : foodDessert) {
+ System.out.println(food.getId() + " : " + food.getName());
+ }
System.out.print("Zweites Dessert Nr: ");
food_planData[4] = sc.nextLine();
- long id = FoodMgr.createFood_plan(food_planData);
+ FoodPlan foodPlan = new FoodPlan(food_planData[0],
+ FoodMgr.getFoodById(Long.parseLong(food_planData[1])),
+ FoodMgr.getFoodById(Long.parseLong(food_planData[2])),
+ FoodMgr.getFoodById(Long.parseLong(food_planData[3])),
+ FoodMgr.getFoodById(Long.parseLong(food_planData[4])));
+ long id = FoodMgr.createFood_plan(foodPlan);
if(id < 0){
System.out.println("Fehler");
}
@@ -206,33 +247,22 @@ public class ConsoleLib {
Scanner sc = new Scanner(System.in);
System.out.print("Bitte geben Sie das Datum im Format YYYY-MM-DD an: ");
String date = sc.nextLine();
- List plan = FoodMgr.getFood_plan(date);
- List food = new ArrayList<>();
+ FoodPlan plan = FoodMgr.getFoodPlan(date);
+ List foodList = new ArrayList<>();
StringBuilder sb;
- for (String day : plan) {
- sb = new StringBuilder();
- String[] parts = day.split(":");
- sb.append("Tag: ");
- sb.append(parts[1]);
- sb.append(" Veganesgericht: ");
- food = FoodMgr.getFoodById(Long.parseLong(parts[2]));
- String[] foodParts = food.get(0).split(":");
- sb.append(foodParts[1]);
- sb.append(" Zweites Hauptgericht: ");
- food = FoodMgr.getFoodById(Long.parseLong(parts[3]));
- foodParts = food.get(0).split(":");
- sb.append(foodParts[1]);
- sb.append(" Veganesdessert: ");
- food = FoodMgr.getFoodById(Long.parseLong(parts[4]));
- foodParts = food.get(0).split(":");
- sb.append(foodParts[1]);
- sb.append(" Zweites Dessert: ");
- food = FoodMgr.getFoodById(Long.parseLong(parts[5]));
- foodParts = food.get(0).split(":");
- sb.append(foodParts[1]);
- food.add(sb.toString());
- }
- printConsole(food);
+ sb = new StringBuilder();
+ sb.append("Tag: ");
+ sb.append(plan.getDate());
+ sb.append(" Veganesgericht: ");
+ sb.append(plan.getFoodVegan().getName());
+ sb.append(" Zweites Hauptgericht: ");
+ sb.append(plan.getFoodSecond().getName());
+ sb.append(" Veganesdessert: ");
+ sb.append(plan.getDessertVegan().getName());
+ sb.append(" Zweites Dessert: ");
+ sb.append(plan.getDessertSecond().getName());
+ foodList.add(sb.toString());
+ printConsole(foodList);
}
public static void createFood_selectionPrompt(){
@@ -291,5 +321,6 @@ public class ConsoleLib {
double price = sc.nextDouble();
sc.nextLine();
AccountMgr.price = price;
+ AccountMgr.setPriceInDb();
}
}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java
index 6d823e5..2927351 100644
--- a/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/ConsoleMain.java
@@ -6,9 +6,8 @@ package com.bib.essensbestellungsverwaltung;
import java.util.Scanner;
public class ConsoleMain {
- static long currentUserId = -1;
- static boolean isWorker = false;
- static boolean isParent = false;
+ static User currentUser = null;
+ static boolean running = true;
public static void main(String[] args) {
boolean firstRun = Database.init();
if(firstRun){
@@ -16,15 +15,14 @@ public class ConsoleMain {
Database.fillDb();
ConsoleLib.createWorkerPrompt();
}
- while (true){
- if(currentUserId == -2){
- break;
- }else if(currentUserId < 0){
+ AccountMgr.getPriceFromDb();
+ while (running){
+ if(currentUser == null){
defaultMenu();
}else{
- if(isWorker){
+ if(currentUser.getClass().getSimpleName().equals("Worker")){
adminMenu();
- }else if(isParent){
+ }else if(currentUser.getClass().getSimpleName().equals("Parent")){
parentMenu();
}
}
@@ -32,21 +30,21 @@ public class ConsoleMain {
}
public static void defaultMenu(){
+ System.out.println("0: Programm beenden");
System.out.println("1: Login");
System.out.println("2: Essensplan anzeigen");
- System.out.println("3: Programm beenden");
+ System.out.println("3: Registrieren");
System.out.print("Auswahl: ");
Scanner sc = new Scanner(System.in);
String selection = sc.nextLine();
switch (selection) {
+ case "0" -> running = false;
case "1" -> {
- currentUserId = ConsoleLib.loginPrompt();
- isWorker = AccountMgr.isWorker(String.valueOf(currentUserId));
- isParent = AccountMgr.isParent(String.valueOf(currentUserId));
+ currentUser = ConsoleLib.loginPrompt();
}
case "2" -> ConsoleLib.showFood_planPrompt();
- case "3" -> currentUserId = -2;
+ case "3" -> ConsoleLib.createParentPrompt();
}
}
@@ -57,14 +55,14 @@ public class ConsoleMain {
System.out.println("3: Ein neues Kind anlegen");
System.out.println("4: Kind einem Elternteil zuordnen");
System.out.println("5: Ein neues Essen anlegen");
- System.out.println("6: Table");
- System.out.println("7: Einen Essensplan erstellen");
- System.out.println("8: Essensplan anzeigen");
- System.out.println("9: Löschen");
- System.out.println("10: Essen auswählen");
- System.out.println("11: Bestellungen des Tages sammeln");
- System.out.println("12: Monatsabrechnung");
- System.out.println("13: Preis ändern");
+ System.out.println("6: Einen Essensplan erstellen");
+ System.out.println("7: Essensplan anzeigen");
+ System.out.println("8: Essen auswählen");
+ System.out.println("9: Bestellungen des Tages sammeln");
+ System.out.println("10: Monatsabrechnung");
+ System.out.println("11: Preis ändern");
+ System.out.println("x1: Table");
+ System.out.println("x2: Löschen");
System.out.print("Auswahl: ");
@@ -72,23 +70,21 @@ public class ConsoleMain {
String selection = sc.nextLine();
switch (selection) {
case "0" -> {
- currentUserId = -1;
- isWorker = false;
- isParent = false;
+ currentUser = null;
}
case "1" -> ConsoleLib.createWorkerPrompt();
case "2" -> ConsoleLib.createParentPrompt();
- case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUserId));
- case "4" -> ConsoleLib.matchParentChildPrompt(String.valueOf(currentUserId));
+ case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUser.getId()));
+ case "4" -> ConsoleLib.matchParentChildPrompt(String.valueOf(currentUser.getId()));
case "5" -> ConsoleLib.createFoodPrompt();
- case "6" -> ConsoleLib.tablePrompt();
- case "7" -> ConsoleLib.createFood_planPrompt();
- case "8" -> ConsoleLib.showFood_planPrompt();
- case "9" -> ConsoleLib.deletePrompt();
- case "10" -> ConsoleLib.createFood_selectionPrompt();
- case "11" -> ConsoleLib.dayOrderPrompt();
- case "12" -> ConsoleLib.invoicePrompt();
- case "13" -> ConsoleLib.changePricePrompt();
+ case "6" -> ConsoleLib.createFood_planPrompt();
+ case "7" -> ConsoleLib.showFood_planPrompt();
+ case "8" -> ConsoleLib.createFood_selectionPrompt();
+ case "9" -> ConsoleLib.dayOrderPrompt();
+ case "10" -> ConsoleLib.invoicePrompt();
+ case "11" -> ConsoleLib.changePricePrompt();
+ case "x1" -> ConsoleLib.tablePrompt();
+ case "x2" -> ConsoleLib.deletePrompt();
}
}
@@ -96,7 +92,8 @@ public class ConsoleMain {
public static void parentMenu(){
System.out.println("0: Ausloggen");
System.out.println("3: Ein neues Kind anlegen");
- System.out.println("4: Kind einem Elternteil zuordnen");
+ System.out.println("7: Essensplan anzeigen");
+ System.out.println("8: Essen auswählen");
System.out.print("Auswahl: ");
@@ -104,15 +101,12 @@ public class ConsoleMain {
String selection = sc.nextLine();
switch (selection) {
case "0" -> {
- currentUserId = -1;
- isWorker = false;
- isParent = false;
+ currentUser = null;
}
- case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUserId));
- case "4" -> ConsoleLib.matchParentChildPrompt(String.valueOf(currentUserId));
+ case "3" -> ConsoleLib.createChildPrompt(String.valueOf(currentUser.getId()));
case "6" -> ConsoleLib.tablePrompt();
- default -> {
- }
+ case "7" -> ConsoleLib.showFood_planPrompt();
+ case "8" -> ConsoleLib.createFood_selectionPrompt();
}
}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Database.java b/src/main/java/com/bib/essensbestellungsverwaltung/Database.java
index a09068a..887a822 100644
--- a/src/main/java/com/bib/essensbestellungsverwaltung/Database.java
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/Database.java
@@ -45,7 +45,7 @@ public class Database {
* creates the initial structure of the db
*/
protected static void createDb(){
- String[] sql = new String[14];
+ String[] sql = new String[15];
sql[0] = """
CREATE TABLE IF NOT EXISTS address (
id integer PRIMARY KEY,
@@ -62,7 +62,8 @@ public class Database {
sql[2] = """
CREATE TABLE IF NOT EXISTS allergy (
id integer PRIMARY KEY,
- name text UNIQUE
+ name text UNIQUE,
+ handle text UNIQUE
);""";
sql[3] = """
CREATE TABLE IF NOT EXISTS severity (
@@ -156,6 +157,11 @@ public class Database {
FOREIGN KEY(food_planid) REFERENCES food_plan(id),
FOREIGN KEY(foodid) REFERENCES food(id)
);""";
+ sql[14] = """
+ CREATE TABLE IF NOT EXISTS price (
+ id integer PRIMARY KEY,
+ price integer
+ );""";
try(Connection conn = connect(); Statement stmt = conn.createStatement()){
for(int i = 0; i < sql.length; i++){
stmt.execute(sql[i]);
@@ -180,71 +186,71 @@ public class Database {
INSERT OR IGNORE INTO food_type (id,name)
VALUES ('3','Fleischhaltig');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('1','Eier');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('1','Eier','a');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('2','Soja');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('2','Soja','b');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('3','Milch');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('3','Milch','c');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('4','Erdnüsse');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('4','Erdnüsse','d');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('5','Weichtiere');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('5','Weichtiere','e');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('6','Krebstiere');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('6','Krebstiere','f');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('7','Getreide');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('7','Getreide','g');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('8','Senf');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('8','Senf','h');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('9','Sesam');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('9','Sesam','i');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('10','Schwefeldioxid und Sulfit');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('10','Schwefeldioxid und Sulfit','j');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('11','Nüsse');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('11','Nüsse','k');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('12','Sellerie');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('12','Sellerie','l');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('13','Fische');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('13','Fische','m');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('14','Lupinen');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('14','Lupinen','n');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('15','Nitrit-Pökelsalz');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('15','Nitrit-Pökelsalz','1');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('16','Phosphat');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('16','Phosphat','2');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('17','Nitrat');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('17','Nitrat','3');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('18','Antioxidationsmittel');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('18','Antioxidationsmittel','4');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('19','Farbstoff');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('19','Farbstoff','5');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('20','Geschmacksverstärker');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('20','Geschmacksverstärker','6');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('21','Süßungsmittel');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('21','Süßungsmittel','7');""");
sqls.add("""
- INSERT OR IGNORE INTO allergy (id,name)
- VALUES('22','Konservierungsstoff');""");
+ INSERT OR IGNORE INTO allergy (id,name,handle)
+ VALUES('22','Konservierungsstoff','8');""");
sqls.add("""
INSERT OR IGNORE INTO severity (id,name)
VALUES('1','Harmlos');""");
@@ -254,6 +260,9 @@ public class Database {
sqls.add("""
INSERT OR IGNORE INTO severity (id,name)
VALUES('3','Kritisch');""");
+ sqls.add("""
+ INSERT OR IGNORE INTO price (id,price)
+ VALUES('1','500');""");
try(Connection conn = connect(); Statement stmt = conn.createStatement()){
for (String sql : sqls) {
stmt.execute(sql);
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Food.java b/src/main/java/com/bib/essensbestellungsverwaltung/Food.java
new file mode 100644
index 0000000..f8b3816
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/Food.java
@@ -0,0 +1,62 @@
+package com.bib.essensbestellungsverwaltung;
+/*
+ @author Malte Schulze Hobeling
+ */
+
+import java.util.List;
+
+public class Food {
+ private long id;
+ private String name;
+ private String description;
+ private boolean isDessert;
+ private FoodType foodType;
+ private List allergies;
+
+ public Food(long id, String name, String description, boolean isDessert, FoodType foodType, List allergies) {
+ this.id = id;
+ this.name = name;
+ this.description = description;
+ this.isDessert = isDessert;
+ this.foodType = foodType;
+ this.allergies = allergies;
+ }
+
+ public Food(String name, String description, boolean isDessert, FoodType foodType, List allergies) {
+ this.id = -1;
+ this.name = name;
+ this.description = description;
+ this.isDessert = isDessert;
+ this.foodType = foodType;
+ this.allergies = allergies;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public boolean isDessert() {
+ return isDessert;
+ }
+
+ public FoodType getFoodType() {
+ return foodType;
+ }
+
+ public List getAllergies() {
+ return allergies;
+ }
+
+ @Override
+ public String toString() {
+ return getName();
+ }
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java b/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java
index 5aa44b8..ac1bcc1 100644
--- a/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/FoodMgr.java
@@ -6,21 +6,21 @@ package com.bib.essensbestellungsverwaltung;
import java.util.ArrayList;
import java.util.List;
+
public class FoodMgr {
/**
* inserts a food int to the database and creates the food_restriction entries
- * @param foodData name, description, isdessert, food_typeid
- * @param allergyData allergyids
* @return id of food or -1
*/
- public static long createFood(String[] foodData, String[] allergyData){
+ public static long createFood(Food food){
String[] foodH = {"name","description","isDessert","food_typeid"};
String[] food_restrictionH = {"foodid","allergyid"};
- long id = Database.insert("food",foodH,foodData);
- if(allergyData.length > 0){
+ String[] foodD = {food.getName(),food.getDescription(),(food.isDessert() ? "1" : "0"), String.valueOf(food.getFoodType().getId())};
+ long id = Database.insert("food",foodH,foodD);
+ if(food.getAllergies().size() > 0){
String sId = String.valueOf(id);
- for (String allergyId : allergyData) {
- String[] food_restrictionD = {sId,allergyId};
+ for (Allergy allergy : food.getAllergies()) {
+ String[] food_restrictionD = {sId, String.valueOf(allergy.getId())};
Database.insert("food_restriction",food_restrictionH, food_restrictionD);
}
}
@@ -29,12 +29,16 @@ public class FoodMgr {
/**
* inserts a food_plan into the database
- * @param food_planData date[YYYY-MM-DD], foodid[vegan], foodid, foodid[dessert,vegan], foodid[dessert]
* @return id of food_plan or -1
*/
- public static long createFood_plan(String[] food_planData){
+ public static long createFood_plan(FoodPlan foodPlan){
String[] food_planH = {"date","food1","food2","dessert1","dessert2"};
- return Database.insert("food_plan",food_planH,food_planData);
+ String[] food_planD = {foodPlan.getDate(),
+ String.valueOf(foodPlan.getFoodVegan().getId()),
+ String.valueOf(foodPlan.getFoodSecond().getId()),
+ String.valueOf(foodPlan.getDessertVegan().getId()),
+ String.valueOf(foodPlan.getDessertSecond().getId())};
+ return Database.insert("food_plan",food_planH,food_planD);
}
/**
@@ -42,10 +46,16 @@ public class FoodMgr {
* @param isDessert true for only desserts false for non desserts
* @return a list of all non desserts or all desserts
*/
- public static List getFood(boolean isDessert){
+ public static List getFood(boolean isDessert){
String[] foodH = {"isDessert"};
String[] foodD = {(isDessert ? "1" : "0")};
- return Database.select("food",foodH,foodD);
+ List entries = Database.select("food",foodH,foodD);
+ List foods = new ArrayList<>();
+ for (String entry : entries) {
+ String[] parts = entry.split(":");
+ foods.add(getFoodById(Long.parseLong(parts[0])));
+ }
+ return foods;
}
/**
@@ -53,10 +63,16 @@ public class FoodMgr {
* @param isDessert true for only desserts false for non desserts
* @return a list of all vegan non desserts or all vegan desserts
*/
- public static List getVeganFood(boolean isDessert){
+ public static List getVeganFood(boolean isDessert){
String[] foodH = {"isDessert","food_typeid"};
String[] foodD = {(isDessert ? "1" : "0"),"1"};
- return Database.select("food",foodH,foodD);
+ List entries = Database.select("food",foodH,foodD);
+ List foods = new ArrayList<>();
+ for (String entry : entries) {
+ String[] parts = entry.split(":");
+ foods.add(getFoodById(Long.parseLong(parts[0])));
+ }
+ return foods;
}
/**
@@ -64,14 +80,66 @@ public class FoodMgr {
* @param date YYYY-MM-DD one day
* @return food_plan for date
*/
- public static List getFood_plan(String date){
+ public static FoodPlan getFoodPlan(String date){
String[] food_planH = {"date"};
String[] food_planD = {date};
- return Database.select("food_plan",food_planH,food_planD);
+ List entry = Database.select("food_plan",food_planH,food_planD);
+ String[] parts = entry.get(0).split(":");
+ Food foodVegan = getFoodById(Long.parseLong(parts[2]));
+ Food foodSecond = getFoodById(Long.parseLong(parts[3]));
+ Food dessertVegan = getFoodById(Long.parseLong(parts[4]));
+ Food dessertSecond = getFoodById(Long.parseLong(parts[5]));
+ boolean isSent = !parts[6].equals("0");
+ return new FoodPlan(Long.parseLong(parts[0]),date,foodVegan,foodSecond,dessertVegan,dessertSecond,isSent);
}
- public static List getFoodById(long id){
- return Database.getEntryById("food",id);
+ public static FoodPlan getFoodPlanById(long id){
+ List entry = Database.getEntryById("food_plan",id);
+ String[] parts = entry.get(0).split(":");
+ Food foodVegan = getFoodById(Long.parseLong(parts[2]));
+ Food foodSecond = getFoodById(Long.parseLong(parts[3]));
+ Food dessertVegan = getFoodById(Long.parseLong(parts[4]));
+ Food dessertSecond = getFoodById(Long.parseLong(parts[5]));
+ boolean isSent = !parts[6].equals("0");
+ return new FoodPlan(id,parts[1], foodVegan,foodSecond,dessertVegan,dessertSecond,isSent);
+ }
+
+ public static Food getFoodById(long id){
+ List entry = Database.getEntryById("food",id);
+ String[] parts = entry.get(0).split(":");
+ String name = parts[1];
+ String description = parts[2];
+ boolean isDessert;
+ isDessert = parts[3].equals("0");
+ FoodType foodType = getFoodTypeById(Long.parseLong(parts[4]));
+ List allergies = getAllergies(id);
+ return new Food(id,name,description,isDessert,foodType,allergies);
+ }
+
+ public static FoodType getFoodTypeById(long id){
+ List entry = Database.getEntryById("food_type",id);
+ String[] typeParts = entry.get(0).split(":");
+ return new FoodType(Long.parseLong(typeParts[0]),typeParts[1]);
+ }
+
+ public static Allergy getAllergyById(long id){
+ String[] allergyH = {"id"};
+ String[] allergyD = {String.valueOf(id)};
+ List allergies = Database.select("allergy",allergyH,allergyD);
+ String[] allergyParts = allergies.get(0).split(":");
+ return new Allergy(id,allergyParts[1],allergyParts[2]);
+ }
+
+ public static List getAllergies(long foodId){
+ List allergies = new ArrayList<>();
+ String[] restrictionsH = {"foodid"};
+ String[] restrictionsD = {String.valueOf(foodId)};
+ List restrictions = Database.select("food_restriction",restrictionsH,restrictionsD);
+ for (String restriction : restrictions) {
+ String[] partsRestrictions = restriction.split(":");
+ allergies.add(getAllergyById(Long.parseLong(partsRestrictions[2])));
+ }
+ return allergies;
}
/**
@@ -81,9 +149,8 @@ public class FoodMgr {
*/
public static long createFood_selection(String[] food_selectionData){
String[] food_selectionH = {"childid","food_planid","foodid"};
- List food_plan = Database.getEntryById("food_plan",Long.parseLong(food_selectionData[1]));
- String[] food_planParts = food_plan.get(0).split(":");
- if(Long.parseLong(food_planParts[6]) == 0){
+ FoodPlan food_plan = getFoodPlanById(Long.parseLong(food_selectionData[1]));
+ if(!food_plan.isSent()){
return Database.insert("food_selection",food_selectionH,food_selectionData);
}else {
return -1;
@@ -97,19 +164,23 @@ public class FoodMgr {
*/
public static List getDayOrder(String date){
List orders = new ArrayList<>();
- List food_plan = getFood_plan(date);
- String[] food_planParts = food_plan.get(0).split(":");
- for(int i = 2; i < 2+4; i++){
- List food = getFoodById(Long.parseLong(food_planParts[i]));
- String[] foodParts = food.get(0).split(":");
- String foodName = foodParts[1];
- String[] food_selectionH = {"food_planid","foodid"};
- String[] food_selectionD = {food_planParts[0],foodParts[0]};
+ FoodPlan food_plan = getFoodPlan(date);
+ String sId = String.valueOf(food_plan.getId());
+ String[] food_selectionH = {"food_planid","foodid"};
+ Food[] foodArray = {
+ food_plan.getFoodVegan(),
+ food_plan.getFoodSecond(),
+ food_plan.getDessertVegan(),
+ food_plan.getDessertSecond()
+ };
+ for(int i = 0; i < 4; i++){
+ String foodName = foodArray[i].getName();
+ String[] food_selectionD = {sId, String.valueOf(foodArray[i].getId())};
int count = Database.count("food_selection",food_selectionH,food_selectionD);
- orders.add(foodName+":"+count);
+ orders.add(count+" X "+foodName);
}
String[] updateH = {"id","issent"};
- String[] updateD = {food_planParts[0],"1"};
+ String[] updateD = {sId,"1"};
if(Database.update("food_plan",updateH,updateD) < 0){
System.out.println("Fehler");
}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/FoodPlan.java b/src/main/java/com/bib/essensbestellungsverwaltung/FoodPlan.java
new file mode 100644
index 0000000..c0b10a2
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/FoodPlan.java
@@ -0,0 +1,58 @@
+package com.bib.essensbestellungsverwaltung;
+
+public class FoodPlan {
+ private long id;
+ private String date;
+ private Food foodVegan;
+ private Food foodSecond;
+ private Food dessertVegan;
+ private Food dessertSecond;
+ private boolean isSent;
+
+ public FoodPlan(long id, String date, Food foodVegan, Food foodSecond, Food dessertVegan, Food dessertSecond, boolean isSent) {
+ this.id = id;
+ this.date = date;
+ this.foodVegan = foodVegan;
+ this.foodSecond = foodSecond;
+ this.dessertVegan = dessertVegan;
+ this.dessertSecond = dessertSecond;
+ this.isSent = isSent;
+ }
+ public FoodPlan(String date, Food foodVegan, Food foodSecond, Food dessertVegan, Food dessertSecond) {
+ this.id = -1;
+ this.date = date;
+ this.foodVegan = foodVegan;
+ this.foodSecond = foodSecond;
+ this.dessertVegan = dessertVegan;
+ this.dessertSecond = dessertSecond;
+ this.isSent = false;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public String getDate() {
+ return date;
+ }
+
+ public Food getFoodVegan() {
+ return foodVegan;
+ }
+
+ public Food getFoodSecond() {
+ return foodSecond;
+ }
+
+ public Food getDessertVegan() {
+ return dessertVegan;
+ }
+
+ public Food getDessertSecond() {
+ return dessertSecond;
+ }
+
+ public boolean isSent() {
+ return isSent;
+ }
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java b/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java
new file mode 100644
index 0000000..be7ca6a
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/FoodType.java
@@ -0,0 +1,22 @@
+package com.bib.essensbestellungsverwaltung;
+/*
+ @author Malte Schulze Hobeling
+ */
+
+public class FoodType {
+ private long id;
+ private String name;
+
+ public FoodType(long id, String name) {
+ this.id = id;
+ this.name = name;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/LoginController.java b/src/main/java/com/bib/essensbestellungsverwaltung/LoginController.java
index f5b3abd..6f96348 100644
--- a/src/main/java/com/bib/essensbestellungsverwaltung/LoginController.java
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/LoginController.java
@@ -1,12 +1,10 @@
/*Reshad Meher*/
package com.bib.essensbestellungsverwaltung;
-import javafx.beans.NamedArg;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
-import javafx.scene.control.Button;
import javafx.scene.control.PasswordField;
import javafx.scene.control.TextField;
import javafx.stage.Stage;
@@ -27,7 +25,7 @@ public class LoginController {
String email = tfEmail.getText();
String password = pfPassword.getText();
if(benutzerMap.containsKey(email) && benutzerMap.containsValue(password)){
- FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("menue-view.fxml"));
+ FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource("menue-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 950,480);
HelloApplication.primary.setScene(scene);
}else {
@@ -39,7 +37,7 @@ public class LoginController {
}
@FXML
protected void changeToSignUp() throws IOException {
- FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("signUp-view.fxml"));
+ FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource("signUp-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 950,480);
HelloApplication.primary.setScene(scene);
}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Parent.java b/src/main/java/com/bib/essensbestellungsverwaltung/Parent.java
new file mode 100644
index 0000000..616e432
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/Parent.java
@@ -0,0 +1,24 @@
+package com.bib.essensbestellungsverwaltung;
+/*
+ @author Malte Schulze Hobeling
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Parent extends User{
+ List children;
+
+ public Parent(long id, String name, String firstname, String password, String email, Address address, List children) {
+ super(id, name, firstname, password, email, address);
+ this.children = children;
+ }
+ public Parent(String name, String firstname, String password, String email, Address address) {
+ super(name, firstname, password, email, address);
+ this.children = new ArrayList<>();
+ }
+
+ public List getChildren() {
+ return children;
+ }
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/SingUpController.java b/src/main/java/com/bib/essensbestellungsverwaltung/SingUpController.java
new file mode 100644
index 0000000..f46cb63
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/SingUpController.java
@@ -0,0 +1,65 @@
+/** Reshad Meher*/
+package com.bib.essensbestellungsverwaltung;
+
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Scene;
+import javafx.scene.control.Alert;
+import javafx.scene.control.PasswordField;
+import javafx.scene.control.TextField;
+import javafx.stage.Stage;
+
+import java.io.IOException;
+import java.util.HashMap;
+
+public class SingUpController {
+ @FXML
+ private TextField tfEmail;
+ @FXML
+ private TextField tfBestätigungEmail;
+ @FXML
+ private PasswordField pfPasswort;
+ @FXML
+ private PasswordField pfBestätigungPassowrt;
+
+ private HashMap benutzermap = new HashMap<>();
+ @FXML
+ private void onKontoErstellenBtClick(){
+ String email = tfEmail.getText();
+ String bestätigungEmail = tfBestätigungEmail.getText();
+ String passwort = pfPasswort.getText();
+ String bestätigungPasswort = pfBestätigungPassowrt.getText();
+ if(!(email.isEmpty() || bestätigungEmail.isEmpty() || passwort.isEmpty() && bestätigungEmail.isEmpty() || bestätigungPasswort.isEmpty())){
+
+ Alert alert;
+ if(bestätigungEmail.equals(email) && bestätigungPasswort.equals(passwort)){
+ alert = new Alert(Alert.AlertType.CONFIRMATION,"okay");
+ alert.showAndWait();
+ benutzermap.put(email,passwort);
+ System.out.println(benutzermap);
+ }else {
+ alert = new Alert(Alert.AlertType.ERROR,"Die Eingabe passt nicht.");
+ alert.showAndWait();
+ }
+ tfEmail.setText("");
+ tfBestätigungEmail.setText("");
+ pfPasswort.setText("");
+ pfBestätigungPassowrt.setText("");
+ }
+ else {
+ Alert alert = new Alert(Alert.AlertType.ERROR,"Eingabefield sind leer");
+ alert.showAndWait();
+ }
+ }
+
+ @FXML
+ private void onAnmeldenBtClick() throws IOException {
+ FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("login-view.fxml"));
+ Scene scene = new Scene(fxmlLoader.load(), 950,480);
+ HelloApplication.primary.setScene(scene);
+ }
+ public HashMap getBenutzermap() {
+ return benutzermap;
+ }
+
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/HelloApplication.java b/src/main/java/com/bib/essensbestellungsverwaltung/StartViewApplication.java
similarity index 83%
rename from src/main/java/com/bib/essensbestellungsverwaltung/HelloApplication.java
rename to src/main/java/com/bib/essensbestellungsverwaltung/StartViewApplication.java
index cd4f503..fe03394 100644
--- a/src/main/java/com/bib/essensbestellungsverwaltung/HelloApplication.java
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/StartViewApplication.java
@@ -12,11 +12,11 @@ import javafx.stage.Stage;
import java.io.IOException;
-public class HelloApplication extends Application {
+public class StartViewApplication extends Application {
public static Stage primary;
@Override
public void start(Stage stage) throws IOException {
- FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("login-view.fxml"));
+ FXMLLoader fxmlLoader = new FXMLLoader(StartViewApplication.class.getResource("login-view.fxml"));
Scene scene = new Scene(fxmlLoader.load(), 950,480);
//stage = primary;
stage.setTitle("Essen Bestellung im Kindergarten");
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/SuperMain.java b/src/main/java/com/bib/essensbestellungsverwaltung/SuperMain.java
index 9fb076c..8652a45 100644
--- a/src/main/java/com/bib/essensbestellungsverwaltung/SuperMain.java
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/SuperMain.java
@@ -5,7 +5,7 @@ public class SuperMain {
if(args.length > 0){
ConsoleMain.main(args);
}else {
- HelloApplication.main(args);
+ StartViewApplication.main(args);
}
}
}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/User.java b/src/main/java/com/bib/essensbestellungsverwaltung/User.java
new file mode 100644
index 0000000..23cd3e0
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/User.java
@@ -0,0 +1,54 @@
+package com.bib.essensbestellungsverwaltung;
+/*
+ @author Malte Schulze Hobeling
+ */
+
+public class User {
+ private long id;
+ private String name;
+ private String firstname;
+ private String password;
+ private String email;
+ private Address address;
+
+ public User(long id, String name, String firstname, String password, String email, Address address) {
+ this.id = id;
+ this.name = name;
+ this.firstname = firstname;
+ this.password = password;
+ this.email = email;
+ this.address = address;
+ }
+ public User(String name, String firstname, String password, String email, Address address) {
+ this.id = -1;
+ this.name = name;
+ this.firstname = firstname;
+ this.password = password;
+ this.email = email;
+ this.address = address;
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getFirstname() {
+ return firstname;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public Address getAddress() {
+ return address;
+ }
+}
diff --git a/src/main/java/com/bib/essensbestellungsverwaltung/Worker.java b/src/main/java/com/bib/essensbestellungsverwaltung/Worker.java
new file mode 100644
index 0000000..e4a7d5c
--- /dev/null
+++ b/src/main/java/com/bib/essensbestellungsverwaltung/Worker.java
@@ -0,0 +1,13 @@
+package com.bib.essensbestellungsverwaltung;
+/*
+ @author Malte Schulze Hobeling
+ */
+
+public class Worker extends User{
+ public Worker(long id, String name, String firstname, String password, String email, Address address) {
+ super(id, name, firstname, password, email, address);
+ }
+ public Worker(String name, String firstname, String password, String email, Address address) {
+ super(name, firstname, password, email, address);
+ }
+}
diff --git a/src/main/resources/com/bib/essensbestellungsverwaltung/Neues Textdokument (2).txt b/src/main/resources/com/bib/essensbestellungsverwaltung/Neues Textdokument (2).txt
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/resources/com/bib/essensbestellungsverwaltung/Neues Textdokument.txt b/src/main/resources/com/bib/essensbestellungsverwaltung/Neues Textdokument.txt
new file mode 100644
index 0000000..e69de29
diff --git a/src/main/resources/com/bib/essensbestellungsverwaltung/signUp-view.fxml b/src/main/resources/com/bib/essensbestellungsverwaltung/signUp-view.fxml
index d2ab9ff..9a5f859 100644
--- a/src/main/resources/com/bib/essensbestellungsverwaltung/signUp-view.fxml
+++ b/src/main/resources/com/bib/essensbestellungsverwaltung/signUp-view.fxml
@@ -29,9 +29,9 @@
-
+
-
+
@@ -42,7 +42,7 @@
-
+
@@ -53,7 +53,7 @@
-
+
@@ -67,7 +67,7 @@
-
+
@@ -81,13 +81,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-