add: createFoodplan
This commit is contained in:
		| @@ -0,0 +1,120 @@ | ||||
| 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(); | ||||
|         System.out.println(d); | ||||
|  | ||||
|         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); | ||||
|         } | ||||
|  | ||||
|     } | ||||
| } | ||||
| @@ -41,6 +41,20 @@ public class FoodMgr { | ||||
|         return Database.insert("food_plan",food_planH,food_planD); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * updates a food_plan into the database | ||||
|      * @return number of rows affected or -1 on error | ||||
|      */ | ||||
|     public static long updateFood_plan(FoodPlan foodPlan){ | ||||
|         String[] food_planH = {"id","food1","food2","dessert1","dessert2"}; | ||||
|         String[] food_planD = {String.valueOf(foodPlan.getId()), | ||||
|                 String.valueOf(foodPlan.getFoodVegan().getId()), | ||||
|                 String.valueOf(foodPlan.getFoodSecond().getId()), | ||||
|                 String.valueOf(foodPlan.getDessertVegan().getId()), | ||||
|                 String.valueOf(foodPlan.getDessertSecond().getId())}; | ||||
|         return Database.update("food_plan",food_planH,food_planD); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * returns all non desserts or all desserts | ||||
|      * @param isDessert true for only desserts false for non desserts | ||||
| @@ -84,6 +98,9 @@ public class FoodMgr { | ||||
|         String[] food_planH = {"date"}; | ||||
|         String[] food_planD = {date}; | ||||
|         List<String> entry = Database.select("food_plan",food_planH,food_planD); | ||||
|         if(entry.size() < 1){ | ||||
|             return null; | ||||
|         } | ||||
|         String[] parts = entry.get(0).split(":"); | ||||
|         Food foodVegan = getFoodById(Long.parseLong(parts[2])); | ||||
|         Food foodSecond = getFoodById(Long.parseLong(parts[3])); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Johannes Kantz
					Johannes Kantz