120 lines
4.6 KiB
Java
120 lines
4.6 KiB
Java
package com.bib.essensbestellungsverwaltung;
|
|
|
|
import javafx.collections.FXCollections;
|
|
import javafx.collections.ObservableList;
|
|
import javafx.event.ActionEvent;
|
|
import javafx.fxml.FXML;
|
|
import javafx.scene.control.Alert;
|
|
import javafx.scene.control.Button;
|
|
import javafx.scene.control.ChoiceBox;
|
|
import javafx.scene.control.DatePicker;
|
|
|
|
import java.time.LocalDate;
|
|
import java.util.List;
|
|
|
|
public class CreateFoodplanController {
|
|
@FXML
|
|
Button erstellenButton;
|
|
@FXML
|
|
DatePicker date;
|
|
|
|
@FXML
|
|
ChoiceBox firstMeal;
|
|
|
|
@FXML
|
|
ChoiceBox secondMeal;
|
|
|
|
@FXML
|
|
ChoiceBox firstDessert;
|
|
|
|
@FXML
|
|
ChoiceBox secondDessert;
|
|
|
|
private List<Food> foods;
|
|
private List<Food> desserts;
|
|
private FoodPlan currentPlan;
|
|
|
|
|
|
@FXML
|
|
public void initialize() {
|
|
foods = FoodMgr.getFood(false);
|
|
desserts = FoodMgr.getFood(true);
|
|
ObservableList<Object> foodOptions = FXCollections.observableArrayList(foods.stream().map(food -> food.getId() + ": " + food.getName()).toList().toArray(new String[0]));
|
|
firstMeal.setItems(foodOptions);
|
|
secondMeal.setItems(foodOptions);
|
|
|
|
ObservableList<Object> dessertOptions = FXCollections.observableArrayList(desserts.stream().map(dessert -> dessert.getId() + ": " + dessert.getName()).toList().toArray(new String[0]));
|
|
firstDessert.setItems(dessertOptions);
|
|
secondDessert.setItems(dessertOptions);
|
|
|
|
date.setValue(LocalDate.now());
|
|
onDateChange(null);
|
|
}
|
|
|
|
@FXML
|
|
public void onPlanErstellen(ActionEvent actionEvent) {
|
|
if (date.getValue() == null ||
|
|
firstMeal.getValue().toString().isBlank() ||
|
|
secondMeal.getValue().toString().isBlank() ||
|
|
firstDessert.getValue().toString().isBlank() ||
|
|
secondDessert.getValue().toString().isBlank()
|
|
) {
|
|
Alert alert = new Alert(Alert.AlertType.ERROR);
|
|
alert.setTitle("Ungültige Eingabe");
|
|
alert.setHeaderText("Es wurden nicht alle Felder ausgefüllt");
|
|
alert.setContentText("Es kann sein, dass Sie erst Gerichte erstellen müssen, um alle Felder auszufüllen");
|
|
alert.showAndWait();
|
|
return;
|
|
}
|
|
|
|
|
|
int firstMealId = Integer.parseInt(firstMeal.getValue().toString().split(":")[0]);
|
|
int secondMealId = Integer.parseInt(secondMeal.getValue().toString().split(":")[0]);
|
|
int firstDessertId = Integer.parseInt(firstDessert.getValue().toString().split(":")[0]);
|
|
int secondDessertId = Integer.parseInt(secondDessert.getValue().toString().split(":")[0]);
|
|
|
|
|
|
|
|
Food f1 = foods.stream().filter(food -> food.getId() == firstMealId).findFirst().get();
|
|
Food f2 = foods.stream().filter(food -> food.getId() == secondMealId).findFirst().get();
|
|
Food d1 = desserts.stream().filter(dessert -> dessert.getId() == firstDessertId).findFirst().get();
|
|
Food d2 = desserts.stream().filter(dessert -> dessert.getId() == secondDessertId).findFirst().get();
|
|
|
|
String d = date.getValue().toString();
|
|
|
|
if (currentPlan != null) { // update Foodplan
|
|
long id = currentPlan.getId();
|
|
FoodPlan plan = new FoodPlan(id, d, f1, f2, d1, d2, false);
|
|
long i = FoodMgr.updateFood_plan(plan);
|
|
System.out.println("Foodplan updated: " + i);
|
|
} else { // create new Foodplan
|
|
FoodPlan plan = new FoodPlan(d, f1, f2, d1, d2);
|
|
long id = FoodMgr.createFood_plan(plan);
|
|
System.out.println("Foodplan created with id: " + id);
|
|
}
|
|
}
|
|
|
|
@FXML
|
|
public void onAbbrechen(ActionEvent actionEvent) {
|
|
}
|
|
|
|
@FXML
|
|
public void onDateChange(ActionEvent actionEvent) {
|
|
currentPlan = FoodMgr.getFoodPlan(date.getValue().toString());
|
|
if (currentPlan != null) { // current FoodPlan already exists and can be edited
|
|
firstMeal.setValue(currentPlan.getFoodVegan().getId() + ": " + currentPlan.getFoodVegan().getName());
|
|
secondMeal.setValue(currentPlan.getFoodSecond().getId() + ": " + currentPlan.getFoodSecond().getName());
|
|
firstDessert.setValue(currentPlan.getDessertVegan().getId() + ": " + currentPlan.getDessertVegan().getName());
|
|
secondDessert.setValue(currentPlan.getDessertSecond().getId() + ": " + currentPlan.getDessertSecond().getName());
|
|
erstellenButton.setText("Plan updaten");
|
|
} else { // current Foodplan does not exist
|
|
erstellenButton.setText("Plan erstellen");
|
|
firstMeal.setValue(null);
|
|
secondMeal.setValue(null);
|
|
firstDessert.setValue(null);
|
|
secondDessert.setValue(null);
|
|
}
|
|
|
|
}
|
|
}
|