Compare commits
	
		
			4 Commits
		
	
	
		
			0303458524
			...
			stefan
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 7f96fc4b8a | ||
|   | cdafca2e54 | ||
| 8b7a611e2a | |||
| 336a6fc89d | 
| @@ -35,6 +35,10 @@ public class AccounterstellungMitarbeiter { | |||||||
|  |  | ||||||
| 	private ArrayList<Kind> kinder; | 	private ArrayList<Kind> kinder; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Initialisiert die Accounterstellungsmaske | ||||||
|  | 	 * @author Sven Alteköster | ||||||
|  | 	 */ | ||||||
| 	public void initialize() { | 	public void initialize() { | ||||||
| 		//Die Radiobuttons zum auswählen eines Accountypes werden einer ToggleGroup hinzugefügt | 		//Die Radiobuttons zum auswählen eines Accountypes werden einer ToggleGroup hinzugefügt | ||||||
| 		accountTyp = new ToggleGroup(); | 		accountTyp = new ToggleGroup(); | ||||||
| @@ -43,6 +47,7 @@ public class AccounterstellungMitarbeiter { | |||||||
|  |  | ||||||
| 		einmalpw.setText(einmalPwGenerieren()); | 		einmalpw.setText(einmalPwGenerieren()); | ||||||
|  |  | ||||||
|  | 		//kinder wird initialisiert | ||||||
| 		kinder = new ArrayList<>(); | 		kinder = new ArrayList<>(); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -62,7 +67,7 @@ public class AccounterstellungMitarbeiter { | |||||||
| 	 * @author Sven Alteköster | 	 * @author Sven Alteköster | ||||||
| 	 */ | 	 */ | ||||||
| 	public void onAbmelden(ActionEvent actionEvent) { | 	public void onAbmelden(ActionEvent actionEvent) { | ||||||
| 		//VerwaltungApplication.abmelden(); | 		VerwaltungApplication.abmelden(); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
|   | |||||||
| @@ -23,13 +23,18 @@ public class BestelluebersichtMitarbeiter { | |||||||
| 	@FXML | 	@FXML | ||||||
| 	private Accordion accordion; | 	private Accordion accordion; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Initialisiert die Bestellübersicht durch Erstellung eines Accordion mit TitledPanes für verschiedene Datumsangaben. | ||||||
|  | 	 * Geschrieben von: Stefan Groß | ||||||
|  | 	 */ | ||||||
| 	public void initialize() { | 	public void initialize() { | ||||||
|  |  | ||||||
| 		List<String> datum = new ArrayList<>(); | 		List<String> datum = new ArrayList<>(); | ||||||
|  |  | ||||||
| 		datum.add("15.10.1999"); | 		//Placeholder für richtige Daten | ||||||
| 		datum.add("23.12.2002"); | 		datum.add("15.10.2023"); | ||||||
| 		datum.add("05.01.2020"); | 		datum.add("23.12.2023"); | ||||||
|  | 		datum.add("05.01.2024"); | ||||||
|  |  | ||||||
| 		accordion.setStyle("-fx-box-border: transparent;"); | 		accordion.setStyle("-fx-box-border: transparent;"); | ||||||
|  |  | ||||||
| @@ -42,41 +47,33 @@ public class BestelluebersichtMitarbeiter { | |||||||
| 			datumUeberschrift.animatedProperty().set(false); | 			datumUeberschrift.animatedProperty().set(false); | ||||||
| 			datumUeberschrift.setPadding(new Insets(0, 0, 15, 0)); | 			datumUeberschrift.setPadding(new Insets(0, 0, 15, 0)); | ||||||
|  |  | ||||||
| 			//TitledPane personen = new TitledPane("Person", createPersonenAccordion()); |  | ||||||
| 			accordion.getPanes().add(datumUeberschrift); | 			accordion.getPanes().add(datumUeberschrift); | ||||||
| 			//gerichtAkkordion.getPanes().add(personen); |  | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); | 		scrollPane.setHbarPolicy(ScrollPane.ScrollBarPolicy.NEVER); | ||||||
| 		scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS); | 		scrollPane.setVbarPolicy(ScrollPane.ScrollBarPolicy.ALWAYS); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	int anzahlGerichtA = 1; | 	/** | ||||||
|  | 	 * Erstellt ein Accordion mit TitledPanes für die Bestellübersicht der Gerichte und Nachtische. | ||||||
|  | 	 * Geschrieben von: Stefan Groß | ||||||
|  | 	 */ | ||||||
|  |  | ||||||
| 	public Accordion createGerichtAkkordion() { | 	public Accordion createGerichtAkkordion() { | ||||||
| 		Accordion accordion = new Accordion(); | 		Accordion accordion = new Accordion(); | ||||||
|  |  | ||||||
|  | 		//Placeholder für richtige Daten | ||||||
| 		int anzahlGerichtB = 15; | 		int anzahlGerichtB = 15; | ||||||
| 		int anzahlGerichtC = 3; | 		int anzahlGerichtC = 3; | ||||||
| 		int anzahlGerichtD = 2; |  | ||||||
|  |  | ||||||
| 		double preisGerichtA = 4.99; | 		double preisGerichtB = 4.99; | ||||||
| 		double preisGerichtB = 9.99; | 		double preisGerichtC = 9.99; | ||||||
| 		double preisGerichtC = 3.99; |  | ||||||
| 		double preisGerichtD = 12.49; |  | ||||||
|  |  | ||||||
| 		int anzahlNachtischA = 2; | 		int anzahlNachtischA = 2; | ||||||
| 		int anzahlNachtischB = 213; |  | ||||||
|  |  | ||||||
| 		double preisNachtischA = 0.49; | 		double preisNachtischA = 0.49; | ||||||
| 		double preisNachtischB = 99.49; |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 		if (anzahlGerichtA >= 1) { |  | ||||||
| 			TitledPane tp = new TitledPane(); |  | ||||||
| 			tp.setText("GerichtA " + anzahlGerichtA + "-Mal " + preisGerichtA * anzahlGerichtA + " €"); |  | ||||||
| 			accordion.getPanes().addAll(tp); |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		if (anzahlGerichtB >= 1) { | 		if (anzahlGerichtB >= 1) { | ||||||
| 			TitledPane tp = new TitledPane(); | 			TitledPane tp = new TitledPane(); | ||||||
| 			tp.setText("GerichtB " + anzahlGerichtB + "-Mal " + preisGerichtB * anzahlGerichtB + " €"); | 			tp.setText("GerichtB " + anzahlGerichtB + "-Mal " + preisGerichtB * anzahlGerichtB + " €"); | ||||||
| @@ -90,12 +87,6 @@ public class BestelluebersichtMitarbeiter { | |||||||
| 			accordion.getPanes().addAll(tp); | 			accordion.getPanes().addAll(tp); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		if (anzahlGerichtD >= 1) { |  | ||||||
| 			TitledPane tp = new TitledPane(); |  | ||||||
| 			tp.setText("GerichtD " + anzahlGerichtD + "-Mal " + preisGerichtD * anzahlGerichtD + " €"); |  | ||||||
| 			accordion.getPanes().addAll(tp); |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		if (anzahlNachtischA >= 1) { | 		if (anzahlNachtischA >= 1) { | ||||||
| 			TitledPane tp = new TitledPane(); | 			TitledPane tp = new TitledPane(); | ||||||
| 			tp.setText("NachtischA " + anzahlNachtischA + "-Mal " + preisNachtischA * anzahlNachtischA + " €"); | 			tp.setText("NachtischA " + anzahlNachtischA + "-Mal " + preisNachtischA * anzahlNachtischA + " €"); | ||||||
| @@ -104,43 +95,21 @@ public class BestelluebersichtMitarbeiter { | |||||||
|  |  | ||||||
| 		if (anzahlNachtischA >= 1) { | 		if (anzahlNachtischA >= 1) { | ||||||
|  |  | ||||||
| 			Label label2 = new Label("Hans Schwanz" + " für " + " Anja Arbeitslos"); | 			Label label2 = new Label("Beispiel Eltern bestellen \"essen\" für Kind: Anja Arbeitslos"); | ||||||
| 			Label label3 = new Label("Drittes Label"); |  | ||||||
|  |  | ||||||
| 			VBox vbox = new VBox(label2, label3); | 			VBox vbox = new VBox(label2); | ||||||
| 			vbox.setAlignment(Pos.CENTER_LEFT); | 			vbox.setAlignment(Pos.CENTER_LEFT); | ||||||
|  |  | ||||||
| 			TitledPane tp = new TitledPane("NachtischB " + "-Mal " + preisNachtischB * anzahlGerichtB + " €", vbox); | 			TitledPane tp = new TitledPane("NachtischB " + "-Mal " + preisNachtischA * anzahlGerichtB + " €", vbox); | ||||||
|  |  | ||||||
| 			accordion.getPanes().addAll(tp); | 			accordion.getPanes().addAll(tp); | ||||||
| 		} | 		} | ||||||
| 		return accordion; | 		return accordion; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* |  | ||||||
| 	public Accordion createPersonenAccordion() { |  | ||||||
| 		Accordion accordion1 = new Accordion(); |  | ||||||
|  |  | ||||||
| 		for (int i = 0; i < 10; i++) { |  | ||||||
| 			String kind = "Kind"; |  | ||||||
| 			String elternteil = "Max Heer"; |  | ||||||
|  |  | ||||||
| 			Label label = new Label(); |  | ||||||
| 			label.setText(elternteil + " für " + kind); |  | ||||||
|  |  | ||||||
| 			// Erstellen Sie eine TitledPane für jedes Label |  | ||||||
| 			TitledPane titledPane = new TitledPane("Kind Informationen", label); |  | ||||||
|  |  | ||||||
| 			// Fügen Sie die TitledPane zur Accordion hinzu |  | ||||||
| 			accordion1.getPanes().add(titledPane); |  | ||||||
| 		} |  | ||||||
|  |  | ||||||
| 		return accordion1; |  | ||||||
| 	} |  | ||||||
| 	*/ |  | ||||||
|  |  | ||||||
| 	public void onAbmelden(ActionEvent event) { | 	public void onAbmelden(ActionEvent event) { | ||||||
| 		//VerwaltungApplication.abmelden(); | 		VerwaltungApplication.abmelden(); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void onZurueck(ActionEvent actionEvent) { | 	public void onZurueck(ActionEvent actionEvent) { | ||||||
|   | |||||||
| @@ -92,9 +92,9 @@ public class EssensverwaltungMitarbeiterView { | |||||||
| 		//solange das neu geöffnete Fenster offen ist, wird das Hauptfenster gesperrt | 		//solange das neu geöffnete Fenster offen ist, wird das Hauptfenster gesperrt | ||||||
| 		gerichterstellung.initModality(Modality.APPLICATION_MODAL); | 		gerichterstellung.initModality(Modality.APPLICATION_MODAL); | ||||||
|  |  | ||||||
| 		VerwaltungApplication.sceneWechseln(gerichterstellung, 400, 530, "gerichterstellung_mitarbeiter-view.fxml"); | 		VerwaltungApplication.sceneWechseln(gerichterstellung, 450, 600, "gerichterstellung_mitarbeiter-view.fxml"); | ||||||
|  |  | ||||||
| 		gerichterstellung.minWidthProperty().set(420); | 		gerichterstellung.minWidthProperty().set(450); | ||||||
| 		gerichterstellung.minHeightProperty().set(600); | 		gerichterstellung.minHeightProperty().set(600); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -4,7 +4,6 @@ import Logik.Mahlzeit; | |||||||
| import Logik.Zutat; | import Logik.Zutat; | ||||||
| import RestAPISchnittstelle.RestApiClient; | import RestAPISchnittstelle.RestApiClient; | ||||||
| import com.google.gson.*; | import com.google.gson.*; | ||||||
| import javafx.event.ActionEvent; |  | ||||||
| import javafx.fxml.FXML; | import javafx.fxml.FXML; | ||||||
| import javafx.scene.control.*; | import javafx.scene.control.*; | ||||||
| import javafx.scene.layout.HBox; | import javafx.scene.layout.HBox; | ||||||
| @@ -20,18 +19,54 @@ public class GerichterstellungMitarbeiterView { | |||||||
| 	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 TextField eingabePreis; | ||||||
| 	private @FXML DatePicker datePicker; | 	private @FXML DatePicker datePicker; | ||||||
|  | 	private @FXML ListView<String> listViewVorschlag; | ||||||
| 	private @FXML Label status; | 	private @FXML Label status; | ||||||
|  |  | ||||||
| 	private ArrayList<Zutat> zutaten; | 	private ArrayList<Zutat> zutaten; | ||||||
| 	private ArrayList<Mahlzeit> mahlzeiten; | 	private ArrayList<Mahlzeit> mahlzeiten; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Füllt die Listview mit Vorschlägen und enthält den Eventlistener für das Textfeld | ||||||
|  | 	 * Ist außerdem für die Skalierung der Buttons vom Inhaltsstoff zuständig | ||||||
|  | 	 * Geschrieben: Sven Alteköster, Stefan Groß | ||||||
|  | 	 * | ||||||
|  | 	 */ | ||||||
| 	public void initialize() { | 	public void initialize() { | ||||||
| 		zutaten = new ArrayList<>(); | 		zutaten = new ArrayList<>(); | ||||||
| 		mahlzeiten = new ArrayList<>(); | 		mahlzeiten = new ArrayList<>(); | ||||||
|  |  | ||||||
|  | 		//Liste mit Daten füllen | ||||||
|  | 		mahlzeiten = getMahlzeiten(); | ||||||
|  | 		for (Mahlzeit m : mahlzeiten) { | ||||||
|  | 			listViewVorschlag.getItems().add(m.getName()); | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		//Eventlistener für die Eingabe des Textfelds | ||||||
|  | 		eingabeName.textProperty().addListener((obs, oldValue, newValue) -> { | ||||||
|  | 			aktualisiereListView(newValue); | ||||||
|  | 		}); | ||||||
|  |  | ||||||
|  | 		//Wenn ein Eintrag in der Listeview 2x angeklickt wird, werden die entsprechenden Felder mit | ||||||
|  | 		//den Daten des Gerichts eingefügt | ||||||
|  | 		listViewVorschlag.setOnMouseClicked(event -> { | ||||||
|  | 			if (event.getClickCount() == 2) { | ||||||
|  | 				String ausgewaehlterName = listViewVorschlag.getSelectionModel().getSelectedItem(); | ||||||
|  | 				if (ausgewaehlterName != null) { | ||||||
|  | 					for (Mahlzeit m : mahlzeiten) { | ||||||
|  | 						if (m.getName().equals(ausgewaehlterName)) { | ||||||
|  | 							eingabeName.setText(m.getName()); | ||||||
|  | 							eingabePreis.setText(String.valueOf(m.getPreis())); | ||||||
|  | 							eingabeBeschreibung.setText(m.getBeschreibung()); | ||||||
|  | 							break; | ||||||
|  | 						} | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		}); | ||||||
|  |  | ||||||
|  |  | ||||||
| 		//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. | ||||||
| 		((Pane) eingabeInhaltsstoffe.getParent()).widthProperty().addListener((obs, oldValue, newValue) -> { | 		((Pane) eingabeInhaltsstoffe.getParent()).widthProperty().addListener((obs, oldValue, newValue) -> { | ||||||
| @@ -40,9 +75,58 @@ public class GerichterstellungMitarbeiterView { | |||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void onButtonInhaltsstoffeClick(ActionEvent actionEvent) { | 	/** | ||||||
|  | 	 * Holt Mahlzeiten von der API für die ListView. | ||||||
|  | 	 * Geschrieben: Stefan Groß | ||||||
|  | 	 * | ||||||
|  | 	 * @return Liste von Mahlzeiten | ||||||
|  | 	 */ | ||||||
|  | 	public ArrayList<Mahlzeit> getMahlzeiten() { | ||||||
|  | 		ArrayList<Mahlzeit> mahlzeitenListe = new ArrayList<>(); | ||||||
|  | 		RestApiClient restApiClient = new RestApiClient(); | ||||||
|  | 		JsonElement je = JsonParser.parseString(restApiClient.get("Gericht")); | ||||||
|  | 		JsonArray js = je.getAsJsonArray(); | ||||||
|  |  | ||||||
|  | 		for (JsonElement element : js) { | ||||||
|  | 			JsonObject mahlzeitJson = element.getAsJsonObject(); | ||||||
|  | 			String name = mahlzeitJson.get("name").getAsString(); | ||||||
|  | 			float preis = mahlzeitJson.get("preis").getAsFloat(); | ||||||
|  | 			String beschreibung = mahlzeitJson.get("beschreibung").getAsString(); | ||||||
|  | 			Mahlzeit mahlzeit = new Mahlzeit(name, preis, beschreibung); | ||||||
|  | 			mahlzeitenListe.add(mahlzeit); | ||||||
|  | 		} | ||||||
|  | 		return mahlzeitenListe; | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Aktualisiert die ListView je nach Eingabe in das eingabeName-Feld | ||||||
|  | 	 * Geschrieben: Stefan Groß | ||||||
|  | 	 * Getestet: | ||||||
|  | 	 * | ||||||
|  | 	 * @param eingabeGerichtFilter "Suchtext" für die Gerichte | ||||||
|  | 	 */ | ||||||
|  | 	public void aktualisiereListView(String eingabeGerichtFilter) { | ||||||
|  | 		listViewVorschlag.getItems().clear(); | ||||||
|  |  | ||||||
|  | 		if (eingabeGerichtFilter == null || eingabeGerichtFilter.isEmpty()) { | ||||||
|  | 			for (Mahlzeit m : mahlzeiten) { | ||||||
|  | 				listViewVorschlag.getItems().add(m.getName()); | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 		else { | ||||||
|  | 			for (Mahlzeit m : mahlzeiten) { | ||||||
|  | 				if (m.getName().toLowerCase().contains(eingabeGerichtFilter.toLowerCase())) { | ||||||
|  | 					listViewVorschlag.getItems().add(m.getName()); | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	public void onButtonInhaltsstoffeClick() { | ||||||
| 		String text = eingabeInhaltsstoffe.getText(); | 		String text = eingabeInhaltsstoffe.getText(); | ||||||
| 		if (!text.equals("")) { | 		if (!text.isEmpty()) { | ||||||
| 			eingabeInhaltsstoffe.setText(""); | 			eingabeInhaltsstoffe.setText(""); | ||||||
|  |  | ||||||
| 			Button neuerInhalt = new Button(); | 			Button neuerInhalt = new Button(); | ||||||
| @@ -58,37 +142,108 @@ public class GerichterstellungMitarbeiterView { | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Bei klick auf den Speichernbutton wird die Eingabe überprüft | ||||||
|  | 	 * es werden gegebenenfalls Fehlermeldungen angezeigt und es werden Mahlzeiten bei gültigen Eingaben gespeichert | ||||||
|  | 	 * Geschrieben: Stefan Groß | ||||||
|  | 	 */ | ||||||
| 	public void onSpeichernButtonClick() { | 	public void onSpeichernButtonClick() { | ||||||
| 		String eingabe = eingabeName.getText(); | 		String eingabe = eingabeName.getText(); | ||||||
| 		String beschreibung = eingabeBeschreibung.getText(); | 		String beschreibung = eingabeBeschreibung.getText(); | ||||||
| 		float preis = Float.parseFloat(eingabePreis.getText()); | 		StringBuilder fehlerMeldungen = new StringBuilder(); | ||||||
| 		LocalDate datum = datePicker.getValue(); | 		boolean istGueltig = true; | ||||||
|  | 		float preis = 0; | ||||||
|  |  | ||||||
|  | 		resetFehlerrahmen(); | ||||||
|  |  | ||||||
|  | 		if (eingabe.isEmpty()) { | ||||||
|  | 			eingabeName.setStyle("-fx-text-box-border: #B22222; -fx-focus-color: #B22222;"); | ||||||
|  | 			fehlerMeldungen.append("Name eingeben. "); | ||||||
|  | 			istGueltig = false; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		if (beschreibung.isEmpty()) { | ||||||
|  | 			eingabeBeschreibung.setStyle("-fx-text-box-border: #B22222; -fx-focus-color: #B22222;"); | ||||||
|  | 			fehlerMeldungen.append("Beschreibung eingeben. "); | ||||||
|  | 			istGueltig = false; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		try { | ||||||
|  | 			preis = Float.parseFloat(eingabePreis.getText()); | ||||||
|  | 		} | ||||||
|  | 		catch (NumberFormatException e) { | ||||||
|  | 			eingabePreis.setStyle("-fx-text-box-border: #B22222; -fx-focus-color: #B22222;"); | ||||||
|  | 			fehlerMeldungen.append("Preis ist ungültig. "); | ||||||
|  | 			istGueltig = false; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		LocalDate datum = datePicker.getValue(); | ||||||
|  | 		if (datum == null) { | ||||||
|  | 			datePicker.setStyle("-fx-border-color: #B22222;"); | ||||||
|  | 			fehlerMeldungen.append("Gültiges Datum eingeben. "); | ||||||
|  | 			istGueltig = false; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		if (zutaten.isEmpty()) { | ||||||
|  | 			eingabeInhaltsstoffe.setStyle("-fx-border-color: #B22222;"); | ||||||
|  | 			fehlerMeldungen.append("Inhaltsstoffe fehlen. "); | ||||||
|  | 			istGueltig = false; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		if (!istGueltig) { | ||||||
|  | 			status.setText(fehlerMeldungen.toString()); | ||||||
|  | 			return; | ||||||
|  | 		} | ||||||
|  |  | ||||||
| 		if (!eingabe.isEmpty() && !beschreibung.isEmpty()) { |  | ||||||
| 			resetEingabeFelder(); |  | ||||||
|  |  | ||||||
| 		Mahlzeit mahlzeit = new Mahlzeit(eingabe, preis, beschreibung); | 		Mahlzeit mahlzeit = new Mahlzeit(eingabe, preis, beschreibung); | ||||||
| 		mahlzeiten.add(mahlzeit); | 		mahlzeiten.add(mahlzeit); | ||||||
| 		status.setText("Mahlzeit hinzugefügt"); | 		status.setText("Mahlzeit hinzugefügt"); | ||||||
|  | 		resetEingabeFelder(); | ||||||
|  |  | ||||||
| 		int datumId = datumBearbeiten(datum); | 		int datumId = datumBearbeiten(datum); | ||||||
| 			System.out.println(datumId); |  | ||||||
|  |  | ||||||
| 		int gerichtId = gerichteAbfragen(mahlzeit); | 		int gerichtId = gerichteAbfragen(mahlzeit); | ||||||
| 			System.out.println(gerichtId); |  | ||||||
|  |  | ||||||
| 			inhaltsstoff(); | 		inhaltsstoff(gerichtId); | ||||||
| 		gibtsAm(gerichtId, datumId); | 		gibtsAm(gerichtId, datumId); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Setzt die "Fehlerrahmen" der aller Elemente zurück | ||||||
|  | 	 * Geschrieben: Stefan Groß | ||||||
|  | 	 * | ||||||
|  | 	 */ | ||||||
|  | 	private void resetFehlerrahmen() { | ||||||
|  | 		eingabeName.setStyle(null); | ||||||
|  | 		eingabeBeschreibung.setStyle(null); | ||||||
|  | 		eingabePreis.setStyle(null); | ||||||
|  | 		eingabeInhaltsstoffe.setStyle(null); | ||||||
|  | 		datePicker.setStyle(null); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Setzt alle Eingabefelder auf einen leerwert zurück | ||||||
|  | 	 * Geschrieben: Stefan Groß | ||||||
|  | 	 * | ||||||
|  | 	 */ | ||||||
|  |  | ||||||
| 	private void resetEingabeFelder() { | 	private void resetEingabeFelder() { | ||||||
| 		eingabeName.setText(""); | 		eingabeName.setText(""); | ||||||
| 		eingabeBeschreibung.setText(""); | 		eingabeBeschreibung.setText(""); | ||||||
| 		eingabePreis.setText(""); | 		eingabePreis.setText(""); | ||||||
| 		eingabeInhaltsstoffe.setText(""); | 		eingabeInhaltsstoffe.setText(""); | ||||||
|  | 		datePicker.setValue(null); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Holt oder erstellt ein Datum mithilfe der API und gibt die ID zurück. | ||||||
|  | 	 * Geschrieben: Stefan Groß | ||||||
|  | 	 * | ||||||
|  | 	 * @param datum Das eingegebene Datum | ||||||
|  | 	 * | ||||||
|  | 	 * @return ID des Datums | ||||||
|  | 	 */ | ||||||
| 	private int datumBearbeiten(LocalDate datum) { | 	private int datumBearbeiten(LocalDate datum) { | ||||||
| 		RestApiClient restApiClient = new RestApiClient(); | 		RestApiClient restApiClient = new RestApiClient(); | ||||||
| 		String datumAsString = datum.toString(); | 		String datumAsString = datum.toString(); | ||||||
| @@ -118,7 +273,14 @@ public class GerichterstellungMitarbeiterView { | |||||||
| 		return -1; | 		return -1; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void gibtsAm(int gid, int tid){ | 	/** | ||||||
|  | 	 * Verwendet die API, um eine Beziehung in der Datenbank zwischen Gericht und Datum herzustellen. | ||||||
|  | 	 * Geschrieben: Stefan Groß | ||||||
|  | 	 * | ||||||
|  | 	 * @param gid ID des Gerichts | ||||||
|  | 	 * @param tid ID des Datums | ||||||
|  | 	 */ | ||||||
|  | 	public void gibtsAm(int gid, int tid) { | ||||||
| 		RestApiClient restApiClient = new RestApiClient(); | 		RestApiClient restApiClient = new RestApiClient(); | ||||||
|  |  | ||||||
| 		JsonObject gibtsAmJson = new JsonObject(); | 		JsonObject gibtsAmJson = new JsonObject(); | ||||||
| @@ -128,9 +290,15 @@ public class GerichterstellungMitarbeiterView { | |||||||
| 		restApiClient.post("gibtsAm", gibtsAmJson.toString()); | 		restApiClient.post("gibtsAm", gibtsAmJson.toString()); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	public void inhaltsstoff() { | 	/** | ||||||
|  | 	 * Ruft Inhaltsstoffe ab und fügt sie zu einem Gericht hinzu. | ||||||
|  | 	 * Geschrieben: Stefan Groß | ||||||
|  | 	 * | ||||||
|  | 	 * @param gerichtId ID des Gerichts | ||||||
|  | 	 */ | ||||||
|  |  | ||||||
|  | 	public void inhaltsstoff(int gerichtId) { | ||||||
| 		RestApiClient restApiClient = new RestApiClient(); | 		RestApiClient restApiClient = new RestApiClient(); | ||||||
| 		ArrayList<Integer> ids = new ArrayList<>(); |  | ||||||
|  |  | ||||||
| 		for (Zutat zutat : zutaten) { | 		for (Zutat zutat : zutaten) { | ||||||
| 			JsonElement jE = JsonParser.parseString(restApiClient.get("Inhaltsstoff")); | 			JsonElement jE = JsonParser.parseString(restApiClient.get("Inhaltsstoff")); | ||||||
| @@ -138,32 +306,46 @@ public class GerichterstellungMitarbeiterView { | |||||||
|  |  | ||||||
| 			int id = -1; | 			int id = -1; | ||||||
|  |  | ||||||
|  | 			// Überprüfen, ob der Inhaltsstoff bereits existiert. | ||||||
|  | 			// Holt Id falls er existiert | ||||||
| 			for (JsonElement element : inhaltsstoffArray) { | 			for (JsonElement element : inhaltsstoffArray) { | ||||||
| 				JsonObject inhatsstoff = element.getAsJsonObject(); | 				JsonObject inhaltsstoff = element.getAsJsonObject(); | ||||||
| 				if (inhatsstoff.get("name").getAsString().equalsIgnoreCase(zutat.getName())) { | 				if (inhaltsstoff.get("name").getAsString().equalsIgnoreCase(zutat.getName())) { | ||||||
| 					id = inhatsstoff.get("id").getAsInt(); | 					id = inhaltsstoff.get("id").getAsInt(); | ||||||
| 					break; | 					break; | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | 			// Fügt Inhaltsstoff hinzu, wenn er nicht existiert | ||||||
| 			if (id == -1) { | 			if (id == -1) { | ||||||
| 				JsonObject neuerInhaltsstoff = new JsonObject(); | 				JsonObject neuerInhaltsstoff = new JsonObject(); | ||||||
| 				neuerInhaltsstoff.addProperty("name", zutat.getName()); | 				neuerInhaltsstoff.addProperty("name", zutat.getName()); | ||||||
| 				restApiClient.post("Inhaltsstoff", neuerInhaltsstoff.toString()); | 				restApiClient.post("Inhaltsstoff", neuerInhaltsstoff.toString()); | ||||||
|  |  | ||||||
|  | 				// Fragt Id vom neuen Inhaltsstoff ab | ||||||
| 				jE = JsonParser.parseString(restApiClient.get("Inhaltsstoff")); | 				jE = JsonParser.parseString(restApiClient.get("Inhaltsstoff")); | ||||||
| 				inhaltsstoffArray = jE.getAsJsonArray(); | 				inhaltsstoffArray = jE.getAsJsonArray(); | ||||||
|  |  | ||||||
| 				JsonObject letzterInhaltsstoff = inhaltsstoffArray.get(inhaltsstoffArray.size() - 1).getAsJsonObject(); | 				JsonObject letzterInhaltsstoff = inhaltsstoffArray.get(inhaltsstoffArray.size() - 1).getAsJsonObject(); | ||||||
| 				id = letzterInhaltsstoff.get("id").getAsInt(); | 				id = letzterInhaltsstoff.get("id").getAsInt(); | ||||||
| 				System.out.println("Inhaltsstoff hinzugefügt: " + zutat.getName()); |  | ||||||
| 			} |  | ||||||
| 			ids.add(id); |  | ||||||
| 		} |  | ||||||
| 		System.out.println("IDs der Inhaltsstoffe: " + ids); |  | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
|  | 			// Stellt verknüpfung zur Enthälttabelle her | ||||||
|  | 			JsonObject enthaelt = new JsonObject(); | ||||||
|  | 			enthaelt.addProperty("iid", id); | ||||||
|  | 			enthaelt.addProperty("gid", gerichtId); | ||||||
|  | 			restApiClient.post("Enthaelt", enthaelt.toString()); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Prüft, ob ein Gericht bereits existiert, wenn es nicht existiert wird es hinzugefügt. | ||||||
|  | 	 * Falls es existiert wird Preis und Beschreibung aktualisiert. | ||||||
|  | 	 * Geschrieben: Stefan Groß | ||||||
|  | 	 * | ||||||
|  | 	 * @param mahlzeit Die zu überprüfende oder hinzuzufügende Mahlzeit | ||||||
|  | 	 * | ||||||
|  | 	 * @return ID des Gerichts | ||||||
|  | 	 */ | ||||||
|  |  | ||||||
| 	private int gerichteAbfragen(Mahlzeit mahlzeit) { | 	private int gerichteAbfragen(Mahlzeit mahlzeit) { | ||||||
| 		RestApiClient restApiClient = new RestApiClient(); | 		RestApiClient restApiClient = new RestApiClient(); | ||||||
| @@ -197,7 +379,7 @@ public class GerichterstellungMitarbeiterView { | |||||||
|  |  | ||||||
| 		restApiClient.post("Gericht", neuesGericht.toString()); | 		restApiClient.post("Gericht", neuesGericht.toString()); | ||||||
|  |  | ||||||
| 		// ID des neu hinzugefügten Gerichts abrufen | 		// ID des Gerichts abrufen | ||||||
| 		je = JsonParser.parseString(restApiClient.get("Gericht")); | 		je = JsonParser.parseString(restApiClient.get("Gericht")); | ||||||
| 		js = je.getAsJsonArray(); | 		js = je.getAsJsonArray(); | ||||||
| 		for (JsonElement element : js) { | 		for (JsonElement element : js) { | ||||||
| @@ -208,4 +390,5 @@ public class GerichterstellungMitarbeiterView { | |||||||
| 		} | 		} | ||||||
| 		return -1; | 		return -1; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| } | } | ||||||
| @@ -31,25 +31,27 @@ public class InhaltsstoffeFilternController { | |||||||
|  |  | ||||||
| 	private ArrayList<Zutat> zutaten; | 	private ArrayList<Zutat> zutaten; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Initialisert sie InhaltsstoffeFiltern View | ||||||
|  | 	 * @author Sven Alteköster | ||||||
|  | 	 */ | ||||||
| 	public void initialize(){ | 	public void initialize(){ | ||||||
|  | 		//mehrere Inhaltsstoffe können ausgewählt werden | ||||||
| 		zutatListView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); | 		zutatListView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE); | ||||||
|  |  | ||||||
|  | 		//Befüllen der ListView mit allen existierenden Inhaltsstoffen | ||||||
| 		RestApiClient api = new RestApiClient(); | 		RestApiClient api = new RestApiClient(); | ||||||
| 		String json = api.get("Inhaltsstoff"); | 		String json = api.get("Inhaltsstoff"); | ||||||
|  |  | ||||||
| 		zutaten = new ArrayList<>(); | 		zutaten = new ArrayList<>(); | ||||||
|  |  | ||||||
| 		Gson gson = new Gson(); | 		Gson gson = new Gson(); | ||||||
|  |  | ||||||
| 		JsonElement je = JsonParser.parseString(json); | 		JsonElement je = JsonParser.parseString(json); | ||||||
| 		JsonArray ja = je.getAsJsonArray(); | 		JsonArray ja = je.getAsJsonArray(); | ||||||
|  |  | ||||||
| 		for (JsonElement e : ja) { | 		for (JsonElement e : ja) { | ||||||
| 			JsonObject jo = e.getAsJsonObject(); | 			JsonObject jo = e.getAsJsonObject(); | ||||||
| 			zutaten.add(gson.fromJson(jo, Zutat.class)); | 			zutaten.add(gson.fromJson(jo, Zutat.class)); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		zutatListView.setItems(FXCollections.observableArrayList(zutaten)); | 		zutatListView.setItems(FXCollections.observableArrayList(zutaten)); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -21,7 +21,7 @@ public class VerwaltungApplication extends Application { | |||||||
|  |  | ||||||
| 	@Override | 	@Override | ||||||
| 	public void start(Stage stage) throws IOException { | 	public void start(Stage stage) throws IOException { | ||||||
| 		FXMLLoader fxmlLoader = new FXMLLoader(VerwaltungApplication.class.getResource("gerichterstellung_mitarbeiter-view.fxml")); | 		FXMLLoader fxmlLoader = new FXMLLoader(VerwaltungApplication.class.getResource("login-view.fxml")); | ||||||
| 		Scene scene = new Scene(fxmlLoader.load()); | 		Scene scene = new Scene(fxmlLoader.load()); | ||||||
|  |  | ||||||
| 		stage.setWidth(960); | 		stage.setWidth(960); | ||||||
| @@ -48,7 +48,6 @@ public class VerwaltungApplication extends Application { | |||||||
| 	 * Die Scene auf der aktuellen Stage wird durch die in der fxml-Datei definierte Scene ausgetauscht. | 	 * Die Scene auf der aktuellen Stage wird durch die in der fxml-Datei definierte Scene ausgetauscht. | ||||||
| 	 * | 	 * | ||||||
| 	 * Geschrieben: Sven Alteköster | 	 * Geschrieben: Sven Alteköster | ||||||
| 	 * Getestet: |  | ||||||
| 	 * | 	 * | ||||||
| 	 * @param fxml name der zu ladenden fxml Datei. | 	 * @param fxml name der zu ladenden fxml Datei. | ||||||
| 	 */ | 	 */ | ||||||
| @@ -84,9 +83,7 @@ public class VerwaltungApplication extends Application { | |||||||
| 	/** | 	/** | ||||||
| 	 * in einem neuen Fenster wird die in der fxml-Datei definierte Scene gesetzt. | 	 * in einem neuen Fenster wird die in der fxml-Datei definierte Scene gesetzt. | ||||||
| 	 * Die geladene Scene wird <b><u>nicht</u></b> zu der neuen Hauptstage. | 	 * Die geladene Scene wird <b><u>nicht</u></b> zu der neuen Hauptstage. | ||||||
| 	 * |  | ||||||
| 	 * Geschrieben: Sven Alteköster | 	 * Geschrieben: Sven Alteköster | ||||||
| 	 * Getestet: |  | ||||||
| 	 * | 	 * | ||||||
| 	 * @param neue Stage auf der die Scene gesetzt werden soll | 	 * @param neue Stage auf der die Scene gesetzt werden soll | ||||||
| 	 * @param width breite des neuen Fensters | 	 * @param width breite des neuen Fensters | ||||||
|   | |||||||
| @@ -18,7 +18,8 @@ | |||||||
|        <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"/> |            <TextField fx:id="eingabePreis" promptText="Preis des Gerichtes" focusTraversable="false"/> | ||||||
|            <TextArea fx:id="eingabeBeschreibung" promptText="Beschreibung" focusTraversable="false"/> |            <ListView fx:id="listViewVorschlag" focusTraversable="false" minHeight="200" maxHeight="250"/> | ||||||
|  |            <TextArea fx:id="eingabeBeschreibung" promptText="Beschreibung" focusTraversable="false" minHeight="75"/> | ||||||
|            <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"/> | ||||||
|   | |||||||
| @@ -25,8 +25,6 @@ | |||||||
|                 <VBox styleClass="hauptmenue_buttons_links"> |                 <VBox styleClass="hauptmenue_buttons_links"> | ||||||
|                     <Button text="Speiseplan" onAction="#onSpeiseplanClick"/> |                     <Button text="Speiseplan" onAction="#onSpeiseplanClick"/> | ||||||
|                     <Button text="Alle Bestellungen anzeigen" onAction="#onBestellungenAnzeigen"/> |                     <Button text="Alle Bestellungen anzeigen" onAction="#onBestellungenAnzeigen"/> | ||||||
|                     <Button text="Rechnungen herunterladen"/> |  | ||||||
|                     <Button text="Daten importieren/Exportieren"/> |  | ||||||
|                     <Button text="Account anlegen" onAction="#onAccountAnlegenClick"/> |                     <Button text="Account anlegen" onAction="#onAccountAnlegenClick"/> | ||||||
|                 </VBox> |                 </VBox> | ||||||
|             </left> |             </left> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user