diff --git a/src/main/java/Logik/Mahlzeit.java b/src/main/java/Logik/Mahlzeit.java index 67173d8..1aebfea 100644 --- a/src/main/java/Logik/Mahlzeit.java +++ b/src/main/java/Logik/Mahlzeit.java @@ -1,10 +1,10 @@ package Logik; -import java.time.LocalDate; import java.util.ArrayList; -import java.util.Date; public class Mahlzeit { + + private int id; private String name; private float preis; private ArrayList zutaten; @@ -17,7 +17,6 @@ public class Mahlzeit { zutaten = new ArrayList<>(); } - public String getName() { return name; } @@ -39,4 +38,6 @@ public class Mahlzeit { return String.format("Name: %s, Preis: %g, Beschreibung: %s", name, preis, beschreibung); } + + } diff --git a/src/main/java/RestAPISchnittstelle/RestApiClient.java b/src/main/java/RestAPISchnittstelle/RestApiClient.java index d41d12a..7e9cc2c 100644 --- a/src/main/java/RestAPISchnittstelle/RestApiClient.java +++ b/src/main/java/RestAPISchnittstelle/RestApiClient.java @@ -461,4 +461,59 @@ public class RestApiClient implements IRestAPI{ } } + public int getGerichtIdOnTag(String name, String datum){ + + URI apiUri = URI.create(String.format("%s/Tagesplan/getGerichtIdOnTag?name=%s&datum=%s", urlBase, name, datum)); + System.out.println(apiUri); + HttpRequest httpRequest = HttpRequest.newBuilder() + .uri(apiUri) + .header("Content-Type", "application/json") + .GET() + .build(); + + try { + // Send the request and get the response + HttpResponse httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + + // Print the response status code and body + System.out.println("Status Code: " + httpResponse.statusCode()); + System.out.println("Response Body: " + httpResponse.body()); + + JsonElement jsonElement = JsonParser.parseString(httpResponse.body()); + + JsonArray json = jsonElement.getAsJsonArray(); + + JsonObject o = json.get(0).getAsJsonObject(); + + return o.get("id").getAsInt(); + + } catch (Exception e) { + e.printStackTrace(); + return -1; + } + } + + public void deleteGericht(int id){ + URI apiUri = URI.create(String.format("%s/Tagesplan/%d", urlBase, id)); + System.out.println(apiUri); + HttpRequest httpRequest = HttpRequest.newBuilder() + .uri(apiUri) + .header("Content-Type", "application/json") + .DELETE() + .build(); + + try { + // Send the request and get the response + HttpResponse httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + + // Print the response status code and body + System.out.println("Status Code: " + httpResponse.statusCode()); + System.out.println("Delete Gericht: Response Body: " + httpResponse.body()); + + + } catch (Exception e) { + e.printStackTrace(); + } + } + } diff --git a/src/main/java/de/subway_surfers/vpr_app/EssensverwaltungMitarbeiterView.java b/src/main/java/de/subway_surfers/vpr_app/EssensverwaltungMitarbeiterView.java index 5c7db0f..dda0e88 100644 --- a/src/main/java/de/subway_surfers/vpr_app/EssensverwaltungMitarbeiterView.java +++ b/src/main/java/de/subway_surfers/vpr_app/EssensverwaltungMitarbeiterView.java @@ -3,6 +3,9 @@ package de.subway_surfers.vpr_app; import Logik.Mahlzeit; import Logik.Tagesplan; import RestAPISchnittstelle.RestApiClient; +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.collections.FXCollections; @@ -23,6 +26,7 @@ import javafx.stage.Stage; import java.net.http.WebSocket; import java.text.DateFormat; +import java.time.LocalDate; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -41,52 +45,47 @@ public class EssensverwaltungMitarbeiterView { private String date; - private String day; - - private String month; - - private String year; - - private ChangeListener listener; - + /** + * Initialize des Controllers. + * Setzt das Datum, holt die Gerichte ein und initialisiert die responsive grid. + * @author Samuel Wolff + */ public void initialize(){ -/* - (obs,oldValue,newValue) -> { - final int zeile = 1; - for (Node n : tagesplan.getChildren()){ - if(n instanceof Control && GridPane.getRowIndex(n) == zeile){ - ((Control) n).setPrefHeight(newValue.floatValue()); - } - } - } - */ + date = LocalDate.now().toString(); - DateFormat dateFormat = DateFormat.getDateInstance(); - date = dateFormat.format(new Date()); - date = date.replace('.', '-'); - day = date.split("-")[0]; - month = date.split("-")[1]; - year = date.split("-")[2]; - date = String.format("%s-%s-%s", year, month, day); - - dateLabel.setText(String.format("%s.%s.%s", day, month, year)); + dateLabel.setText(date); initGrid(); initGerichte(); } + /** + * Methode beim klicken auf den Anmeldebutton. Meldet den User ab + * @param actionEvent + * @author Max Heer + */ public void onAbmelden(ActionEvent actionEvent) { VerwaltungApplication.sceneWechseln("login-view.fxml"); } + /** + * Methode beim klicken auf den Filter Button. Öffnet den Filter Dialog. + * @param actionEvent + * @author Sven Alteköster + */ public void onFilter(ActionEvent actionEvent) { Stage stage = new Stage(); VerwaltungApplication.sceneWechseln(stage, 450, 400, "inhaltsstoffe_filtern-view.fxml"); } + /** + * Methode beim klicken auf den hinzufügen Button. Öffnet den Dialog zum hinzufügen eines Gerichtes zum aktuellen Tag. + * @param actionEvent + * @author Sven Alteköster + */ public void onHinzufuegen(ActionEvent actionEvent) { Stage gerichterstellung = new Stage(); @@ -99,6 +98,11 @@ public class EssensverwaltungMitarbeiterView { gerichterstellung.minHeightProperty().set(600); } + /** + * Methode beim klicken auf den Zurück Button. Kehrt zum Startbildschirm zurück. + * @param actionEvent + * @author Max Heer + */ public void onZurueck(ActionEvent actionEvent) { VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml"); } @@ -106,15 +110,16 @@ public class EssensverwaltungMitarbeiterView { /** * Methode bei Klick auf Pfeil links, ändert das Datum und gibt neue Gerichte auf die GUI aus. * @param actionEvent + * @author Samuel Wolff */ public void pfeilLinks(ActionEvent actionEvent) { tagesplan.getChildren().clear(); - day = String.valueOf(Integer.parseInt(day)-1); - date = String.format("%s-%s-%s", year, month, day); - - dateLabel.setText(String.format("%s.%s.%s", day, month, year)); + LocalDate datum = LocalDate.parse(date); + datum = datum.minusDays(1); + date = datum.toString(); + dateLabel.setText(date); initGerichte(); @@ -123,15 +128,16 @@ public class EssensverwaltungMitarbeiterView { /** * Methode bei Klick auf Pfeil rechts, ändert das Datum und gibt neue Gerichte auf die GUI aus. * @param actionEvent + * @author Samuel Wolff */ public void pfeilRechts(ActionEvent actionEvent) { tagesplan.getChildren().clear(); - day = String.valueOf(Integer.parseInt(day)+1); - date = String.format("%s-%s-%s", year, month, day); - - dateLabel.setText(String.format("%s.%s.%s", day, month, year)); + LocalDate datum = LocalDate.parse(date); + datum = datum.plusDays(1); + date = datum.toString(); + dateLabel.setText(date); initGerichte(); @@ -139,10 +145,12 @@ public class EssensverwaltungMitarbeiterView { /** * Initialisiert alle Gerichte des aktuellen Datums auf der Seite. + * @author Samuel Wolff */ private void initGerichte(){ tagesplan.getStyleClass().clear(); + tagesplan.getChildren().clear(); t = new RestApiClient().getGerichteOnTag(date); @@ -183,6 +191,10 @@ public class EssensverwaltungMitarbeiterView { tagesplan.getStyleClass().add("essensuebersicht_gridlines"); } + /** + * Initialisiert das responsive grid. + * @author Max Heer, Sven Alteköster + */ public void initGrid(){ for (int i = 0; i < tagesplan.getColumnCount(); i++) { ColumnConstraints cc = new ColumnConstraints(); @@ -203,10 +215,25 @@ public class EssensverwaltungMitarbeiterView { VerwaltungApplication.responsiveBreiteGrid(tagesplan); } + /** + * Methode beim klicken auf den Löschen Button eines Tagesplan Elementes + * @param a + * @author Samuel Wolff + */ private void loeschenButtonKlick(ActionEvent a){ Button btn = (Button) a.getSource(); int col = GridPane.getColumnIndex(btn); + Mahlzeit m = t.getGerichte().get(col); + + RestApiClient cl = new RestApiClient(); + + int id = cl.getGerichtIdOnTag(t.getGerichte().get(col < 0 ? 0 : col).getName().replace(' ', '_'), date); + t.getGerichte().remove(col); + + System.out.println("Die Id lautet: " + id + col); + + cl.delete("GibtsAm", id); initGerichte(); } diff --git a/src/main/java/de/subway_surfers/vpr_app/HauptmenueMitarbeiterView.java b/src/main/java/de/subway_surfers/vpr_app/HauptmenueMitarbeiterView.java index 2b57878..28db083 100644 --- a/src/main/java/de/subway_surfers/vpr_app/HauptmenueMitarbeiterView.java +++ b/src/main/java/de/subway_surfers/vpr_app/HauptmenueMitarbeiterView.java @@ -9,6 +9,7 @@ import javafx.scene.layout.GridPane; import javafx.scene.text.TextAlignment; import java.text.DateFormat; +import java.time.LocalDate; import java.util.Date; public class HauptmenueMitarbeiterView { @@ -21,7 +22,7 @@ public class HauptmenueMitarbeiterView { private String year; /** - * Ruft die Methode zum Befüllen der Ansicht auf + * Ruft die Methode zum Befüllen der Ansicht auf der Hauptseite auf * @author Max Heer */ public void initialize(){ @@ -34,14 +35,8 @@ public class HauptmenueMitarbeiterView { */ public void wochenuebersichtFuellen(){ String dateanzeige; - DateFormat dateFormat = DateFormat.getDateInstance(); - date = dateFormat.format(new Date()); - date = date.replace('.', '-'); - day = date.split("-")[0]; - month = date.split("-")[1]; - year = date.split("-")[2]; - date = String.format("%s-%s-%s", year, month, day); - dateanzeige = String.format("%s.%s.%s",day,month,year); + date = LocalDate.now().toString(); + dateanzeige = date; Tagesplan t = new RestApiClient().getGerichteOnTag(date); for(int i=0;i<5;i++){ Label tag = new Label(); @@ -55,15 +50,21 @@ public class HauptmenueMitarbeiterView { name.setPrefHeight(75); name.setTextAlignment(TextAlignment.CENTER); } - day = String.valueOf(Integer.parseInt(day)+1); - date = String.format("%s-%s-%s", year, month, day); - dateanzeige = String.format("%s.%s.%s",day,month,year); + LocalDate datum = LocalDate.parse(date); + datum = datum.plusDays(1); + date = datum.toString(); + dateanzeige = date; t = new RestApiClient().getGerichteOnTag(date); } } + /** + * Methode beim klicken auf den Anmeldebutton. Meldet den User ab + * @param actionEvent + * @author Samuel Wolff + */ public void onAbmelden(ActionEvent actionEvent) { - //VerwaltungApplication.abmelden(); + VerwaltungApplication.abmelden(); } public void onAccountAnlegenClick(ActionEvent actionEvent) { diff --git a/src/main/java/de/subway_surfers/vpr_app/VerwaltungApplication.java b/src/main/java/de/subway_surfers/vpr_app/VerwaltungApplication.java index 60dcfdf..d5eef91 100644 --- a/src/main/java/de/subway_surfers/vpr_app/VerwaltungApplication.java +++ b/src/main/java/de/subway_surfers/vpr_app/VerwaltungApplication.java @@ -21,7 +21,7 @@ public class VerwaltungApplication extends Application { @Override public void start(Stage stage) throws IOException { - FXMLLoader fxmlLoader = new FXMLLoader(VerwaltungApplication.class.getResource("essensverwaltung_eltern-view.fxml")); + FXMLLoader fxmlLoader = new FXMLLoader(VerwaltungApplication.class.getResource("login-view.fxml")); Scene scene = new Scene(fxmlLoader.load()); stage.setWidth(960); diff --git a/src/main/resources/de/subway_surfers/vpr_app/essensverwaltung_mitarbeiter-view.fxml b/src/main/resources/de/subway_surfers/vpr_app/essensverwaltung_mitarbeiter-view.fxml index 5bdb910..6390d69 100644 --- a/src/main/resources/de/subway_surfers/vpr_app/essensverwaltung_mitarbeiter-view.fxml +++ b/src/main/resources/de/subway_surfers/vpr_app/essensverwaltung_mitarbeiter-view.fxml @@ -52,9 +52,6 @@ - -