Test #22
@ -7,8 +7,9 @@
|
|||||||
<option value="$PROJECT_DIR$/pom.xml" />
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
|
<option name="workspaceImportForciblyTurnedOn" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_X" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="21" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
@ -1,6 +1,8 @@
|
|||||||
package Logik;
|
package Logik;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
public class Mahlzeit {
|
public class Mahlzeit {
|
||||||
private String name;
|
private String name;
|
||||||
@ -15,6 +17,7 @@ public class Mahlzeit {
|
|||||||
zutaten = new ArrayList<>();
|
zutaten = new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
@ -95,8 +95,8 @@ public class EssensverwaltungMitarbeiterView {
|
|||||||
|
|
||||||
VerwaltungApplication.sceneWechseln(gerichterstellung, 400, 530, "gerichterstellung_mitarbeiter-view.fxml");
|
VerwaltungApplication.sceneWechseln(gerichterstellung, 400, 530, "gerichterstellung_mitarbeiter-view.fxml");
|
||||||
|
|
||||||
gerichterstellung.minWidthProperty().set(400);
|
gerichterstellung.minWidthProperty().set(420);
|
||||||
gerichterstellung.minHeightProperty().set(530);
|
gerichterstellung.minHeightProperty().set(600);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onZurueck(ActionEvent actionEvent) {
|
public void onZurueck(ActionEvent actionEvent) {
|
||||||
|
@ -1,27 +1,36 @@
|
|||||||
package de.subway_surfers.vpr_app;
|
package de.subway_surfers.vpr_app;
|
||||||
|
|
||||||
|
import Logik.Mahlzeit;
|
||||||
import Logik.Zutat;
|
import Logik.Zutat;
|
||||||
|
import RestAPISchnittstelle.RestApiClient;
|
||||||
|
import com.google.gson.*;
|
||||||
import javafx.event.ActionEvent;
|
import javafx.event.ActionEvent;
|
||||||
import javafx.fxml.FXML;
|
import javafx.fxml.FXML;
|
||||||
import javafx.scene.control.Button;
|
import javafx.scene.control.*;
|
||||||
import javafx.scene.control.TextArea;
|
|
||||||
import javafx.scene.control.TextField;
|
|
||||||
import javafx.scene.layout.HBox;
|
import javafx.scene.layout.HBox;
|
||||||
import javafx.scene.layout.Pane;
|
import javafx.scene.layout.Pane;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class GerichterstellungMitarbeiterView {
|
public class GerichterstellungMitarbeiterView {
|
||||||
|
|
||||||
private @FXML HBox anzeigeInhaltsstoffe;
|
private @FXML HBox anzeigeInhaltsstoffe;
|
||||||
private @FXML TextArea eingabeBeschreibung;
|
private @FXML TextArea eingabeBeschreibung;
|
||||||
private @FXML TextField eingabeName;
|
private @FXML TextField eingabeName;
|
||||||
private @FXML Button buttonInhaltsstoffe;
|
private @FXML Button buttonInhaltsstoffe;
|
||||||
private @FXML TextField eingabeInhaltsstoffe;
|
private @FXML TextField eingabeInhaltsstoffe;
|
||||||
|
private @FXML Button speichernButton;
|
||||||
|
private @FXML TextField eingabePreis;
|
||||||
|
private @FXML DatePicker datePicker;
|
||||||
|
private @FXML Label status;
|
||||||
|
|
||||||
private ArrayList<Zutat> zutaten;
|
private ArrayList<Zutat> zutaten;
|
||||||
|
private ArrayList<Mahlzeit> mahlzeiten;
|
||||||
|
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
zutaten = new ArrayList<>();
|
zutaten = new ArrayList<>();
|
||||||
|
mahlzeiten = new ArrayList<>();
|
||||||
|
|
||||||
//wird das Fenster vergrößert, wird das Eingabefeld für Inhaltstoffe und den Hinzufügenbutton
|
//wird das Fenster vergrößert, wird das Eingabefeld für Inhaltstoffe und den Hinzufügenbutton
|
||||||
// auf die volle breite vergrößert.
|
// auf die volle breite vergrößert.
|
||||||
@ -48,4 +57,155 @@ public class GerichterstellungMitarbeiterView {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void onSpeichernButtonClick() {
|
||||||
|
String eingabe = eingabeName.getText();
|
||||||
|
String beschreibung = eingabeBeschreibung.getText();
|
||||||
|
float preis = Float.parseFloat(eingabePreis.getText());
|
||||||
|
LocalDate datum = datePicker.getValue();
|
||||||
|
|
||||||
|
if (!eingabe.isEmpty() && !beschreibung.isEmpty()) {
|
||||||
|
resetEingabeFelder();
|
||||||
|
|
||||||
|
Mahlzeit mahlzeit = new Mahlzeit(eingabe, preis, beschreibung);
|
||||||
|
mahlzeiten.add(mahlzeit);
|
||||||
|
status.setText("Mahlzeit hinzugefügt");
|
||||||
|
|
||||||
|
int datumId = datumBearbeiten(datum);
|
||||||
|
System.out.println(datumId);
|
||||||
|
|
||||||
|
int gerichtId = gerichteAbfragen(mahlzeit);
|
||||||
|
System.out.println(gerichtId);
|
||||||
|
|
||||||
|
inhaltsstoff();
|
||||||
|
gibtsAm(gerichtId, datumId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void resetEingabeFelder() {
|
||||||
|
eingabeName.setText("");
|
||||||
|
eingabeBeschreibung.setText("");
|
||||||
|
eingabePreis.setText("");
|
||||||
|
eingabeInhaltsstoffe.setText("");
|
||||||
|
}
|
||||||
|
|
||||||
|
private int datumBearbeiten(LocalDate datum) {
|
||||||
|
RestApiClient restApiClient = new RestApiClient();
|
||||||
|
String datumAsString = datum.toString();
|
||||||
|
|
||||||
|
JsonElement jsonElement = JsonParser.parseString(restApiClient.get("Tagesplan"));
|
||||||
|
JsonArray jsonArray = jsonElement.getAsJsonArray();
|
||||||
|
|
||||||
|
for (JsonElement element : jsonArray) {
|
||||||
|
JsonObject obj = element.getAsJsonObject();
|
||||||
|
if (obj.get("datum").getAsString().equals(datumAsString)) {
|
||||||
|
return Integer.parseInt(obj.get("id").getAsString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
restApiClient.post("Tagesplan", "{\"datum\":\"" + datumAsString + "\"}");
|
||||||
|
|
||||||
|
jsonElement = JsonParser.parseString(restApiClient.get("Tagesplan"));
|
||||||
|
jsonArray = jsonElement.getAsJsonArray();
|
||||||
|
|
||||||
|
for (JsonElement element : jsonArray) {
|
||||||
|
JsonObject obj = element.getAsJsonObject();
|
||||||
|
if (obj.get("datum").getAsString().equals(datumAsString)) {
|
||||||
|
return Integer.parseInt(obj.get("id").getAsString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void gibtsAm(int gid, int tid){
|
||||||
|
RestApiClient restApiClient = new RestApiClient();
|
||||||
|
|
||||||
|
JsonObject gibtsAmJson = new JsonObject();
|
||||||
|
|
||||||
|
gibtsAmJson.addProperty("tid", tid);
|
||||||
|
gibtsAmJson.addProperty("gid", gid);
|
||||||
|
restApiClient.post("gibtsAm", gibtsAmJson.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public void inhaltsstoff() {
|
||||||
|
RestApiClient restApiClient = new RestApiClient();
|
||||||
|
ArrayList<Integer> ids = new ArrayList<>();
|
||||||
|
|
||||||
|
for (Zutat zutat : zutaten) {
|
||||||
|
JsonElement jE = JsonParser.parseString(restApiClient.get("Inhaltsstoff"));
|
||||||
|
JsonArray inhaltsstoffArray = jE.getAsJsonArray();
|
||||||
|
|
||||||
|
int id = -1;
|
||||||
|
|
||||||
|
for (JsonElement element : inhaltsstoffArray) {
|
||||||
|
JsonObject inhatsstoff = element.getAsJsonObject();
|
||||||
|
if (inhatsstoff.get("name").getAsString().equalsIgnoreCase(zutat.getName())) {
|
||||||
|
id = inhatsstoff.get("id").getAsInt();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (id == -1) {
|
||||||
|
JsonObject neuerInhaltsstoff = new JsonObject();
|
||||||
|
neuerInhaltsstoff.addProperty("name", zutat.getName());
|
||||||
|
restApiClient.post("Inhaltsstoff", neuerInhaltsstoff.toString());
|
||||||
|
|
||||||
|
jE = JsonParser.parseString(restApiClient.get("Inhaltsstoff"));
|
||||||
|
inhaltsstoffArray = jE.getAsJsonArray();
|
||||||
|
|
||||||
|
JsonObject letzterInhaltsstoff = inhaltsstoffArray.get(inhaltsstoffArray.size() - 1).getAsJsonObject();
|
||||||
|
id = letzterInhaltsstoff.get("id").getAsInt();
|
||||||
|
System.out.println("Inhaltsstoff hinzugefügt: " + zutat.getName());
|
||||||
|
}
|
||||||
|
ids.add(id);
|
||||||
|
}
|
||||||
|
System.out.println("IDs der Inhaltsstoffe: " + ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private int gerichteAbfragen(Mahlzeit mahlzeit) {
|
||||||
|
RestApiClient restApiClient = new RestApiClient();
|
||||||
|
JsonElement je = JsonParser.parseString(restApiClient.get("Gericht"));
|
||||||
|
JsonArray js = je.getAsJsonArray();
|
||||||
|
|
||||||
|
for (JsonElement element : js) {
|
||||||
|
JsonObject mahlzeitJson = element.getAsJsonObject();
|
||||||
|
String nameMahlzeit = mahlzeitJson.get("name").getAsString();
|
||||||
|
|
||||||
|
if (nameMahlzeit.equals(mahlzeit.getName())) {
|
||||||
|
int id = Integer.parseInt(mahlzeitJson.get("id").getAsString());
|
||||||
|
|
||||||
|
// Update des existierenden Gerichts
|
||||||
|
JsonObject updateGericht = new JsonObject();
|
||||||
|
updateGericht.addProperty("id", id);
|
||||||
|
updateGericht.addProperty("name", mahlzeit.getName());
|
||||||
|
updateGericht.addProperty("preis", mahlzeit.getPreis());
|
||||||
|
updateGericht.addProperty("beschreibung", mahlzeit.getBeschreibung());
|
||||||
|
|
||||||
|
restApiClient.put("Gericht", id, updateGericht.toString());
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Neues Gericht zur Datenbank hinzufügen, falls es nicht existiert
|
||||||
|
JsonObject neuesGericht = new JsonObject();
|
||||||
|
neuesGericht.addProperty("name", mahlzeit.getName());
|
||||||
|
neuesGericht.addProperty("preis", mahlzeit.getPreis());
|
||||||
|
neuesGericht.addProperty("beschreibung", mahlzeit.getBeschreibung());
|
||||||
|
|
||||||
|
restApiClient.post("Gericht", neuesGericht.toString());
|
||||||
|
|
||||||
|
// ID des neu hinzugefügten Gerichts abrufen
|
||||||
|
je = JsonParser.parseString(restApiClient.get("Gericht"));
|
||||||
|
js = je.getAsJsonArray();
|
||||||
|
for (JsonElement element : js) {
|
||||||
|
JsonObject mahlzeitJson = element.getAsJsonObject();
|
||||||
|
if (mahlzeitJson.get("name").getAsString().equals(mahlzeit.getName())) {
|
||||||
|
return Integer.parseInt(mahlzeitJson.get("id").getAsString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
<?import javafx.scene.control.*?>
|
<?import javafx.scene.control.*?>
|
||||||
<?import javafx.scene.layout.*?>
|
<?import javafx.scene.layout.*?>
|
||||||
|
|
||||||
|
<?import javafx.geometry.Insets?>
|
||||||
<BorderPane xmlns="http://javafx.com/javafx"
|
<BorderPane xmlns="http://javafx.com/javafx"
|
||||||
xmlns:fx="http://javafx.com/fxml"
|
xmlns:fx="http://javafx.com/fxml"
|
||||||
fx:controller="de.subway_surfers.vpr_app.GerichterstellungMitarbeiterView"
|
fx:controller="de.subway_surfers.vpr_app.GerichterstellungMitarbeiterView"
|
||||||
@ -14,19 +15,22 @@
|
|||||||
<center>
|
<center>
|
||||||
<VBox styleClass="gerichterstellung_felder">
|
<VBox styleClass="gerichterstellung_felder">
|
||||||
<TextField fx:id="eingabeName" promptText="Name des Gerichtes" focusTraversable="false"/>
|
<TextField fx:id="eingabeName" promptText="Name des Gerichtes" focusTraversable="false"/>
|
||||||
|
<TextField fx:id="eingabePreis" promptText="Preis des Gerichtes" focusTraversable="false"/>
|
||||||
<TextArea fx:id="eingabeBeschreibung" promptText="Beschreibung" focusTraversable="false"/>
|
<TextArea fx:id="eingabeBeschreibung" promptText="Beschreibung" focusTraversable="false"/>
|
||||||
<HBox>
|
<HBox>
|
||||||
<TextField fx:id="eingabeInhaltsstoffe" promptText="Inhaltsstoffe" focusTraversable="false"/>
|
<TextField fx:id="eingabeInhaltsstoffe" promptText="Inhaltsstoffe" focusTraversable="false"/>
|
||||||
<Button fx:id="buttonInhaltsstoffe" onAction="#onButtonInhaltsstoffeClick" text="Hinzufügen"/>
|
<Button fx:id="buttonInhaltsstoffe" onAction="#onButtonInhaltsstoffeClick" text="Hinzufügen"/>
|
||||||
</HBox>
|
</HBox>
|
||||||
<HBox fx:id="anzeigeInhaltsstoffe" />
|
<HBox fx:id="anzeigeInhaltsstoffe" minHeight="30"/>
|
||||||
|
<DatePicker fx:id="datePicker" maxWidth="Infinity"/>
|
||||||
|
<Label fx:id="status"/>
|
||||||
</VBox>
|
</VBox>
|
||||||
</center>
|
</center>
|
||||||
<bottom>
|
<bottom>
|
||||||
<BorderPane>
|
<BorderPane>
|
||||||
<right>
|
<right>
|
||||||
<HBox styleClass="button_untenrechts">
|
<HBox styleClass="button_untenrechts">
|
||||||
<Button text="Speichern" defaultButton="true"/>
|
<Button fx:id="speichernButton" text="Speichern" defaultButton="true" onAction="#onSpeichernButtonClick"/>
|
||||||
</HBox>
|
</HBox>
|
||||||
</right>
|
</right>
|
||||||
</BorderPane>
|
</BorderPane>
|
||||||
|
Loading…
Reference in New Issue
Block a user