Hinzufügen einer Finanzverwaltung und Hinzufügen einer neuer Option
Finanzverwaltung beim Systemcontrollermaster
parent
b9b3783831
commit
a0e53bef20
|
|
@ -5,3 +5,10 @@ Bestellte Gerichte:
|
||||||
|
|
||||||
Zeit: 20:00
|
Zeit: 20:00
|
||||||
--------------------------
|
--------------------------
|
||||||
|
ID: 47856861-c7fc-4fb7-9366-174851fb1f46
|
||||||
|
Tisch Nummer: 01
|
||||||
|
Bestellte Gerichte:
|
||||||
|
- Cheeseburger
|
||||||
|
|
||||||
|
Zeit: 16:13
|
||||||
|
--------------------------
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,144 @@
|
||||||
|
import java.io.*;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
class FinancialManager {
|
||||||
|
private static final String TRANSACTION_FILE = "src/transactions.txt"; // Datei für Transaktionen (Einnahmen und Ausgaben)
|
||||||
|
private List<Transaction> transactions = new ArrayList<>();
|
||||||
|
|
||||||
|
public FinancialManager() {
|
||||||
|
loadTransactionsFromFile();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void recordTransaction(double amount, String description, boolean isIncome) {
|
||||||
|
Date date = new Date();
|
||||||
|
Transaction transaction = new Transaction(amount, description, isIncome, date);
|
||||||
|
transactions.add(transaction);
|
||||||
|
saveTransactionToFile(transaction);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void saveTransactionToFile(Transaction transaction) {
|
||||||
|
try (BufferedWriter writer = new BufferedWriter(new FileWriter(TRANSACTION_FILE, true))) {
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
String transactionLine = dateFormat.format(transaction.getDate()) + ";" + transaction.getAmount() + ";" + transaction.getDescription() + ";" + (transaction.isIncome() ? "Income" : "Expense");
|
||||||
|
writer.write(transactionLine);
|
||||||
|
writer.newLine();
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("Fehler beim Speichern der Transaktion: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void loadTransactionsFromFile() {
|
||||||
|
try (BufferedReader reader = new BufferedReader(new FileReader(TRANSACTION_FILE))) {
|
||||||
|
String line;
|
||||||
|
while ((line = reader.readLine()) != null) {
|
||||||
|
String[] parts = line.split(";");
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
Date date = dateFormat.parse(parts[0]);
|
||||||
|
double amount = Double.parseDouble(parts[1]);
|
||||||
|
String description = parts[2];
|
||||||
|
boolean isIncome = "Income".equals(parts[3]);
|
||||||
|
transactions.add(new Transaction(amount, description, isIncome, date));
|
||||||
|
}
|
||||||
|
} catch (IOException | java.text.ParseException e) {
|
||||||
|
System.out.println("Fehler beim Laden der Transaktionen: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showFinancialReport(String period) {
|
||||||
|
double totalIncome = 0;
|
||||||
|
double totalExpense = 0;
|
||||||
|
Date startDate = null;
|
||||||
|
Date endDate = new Date();
|
||||||
|
|
||||||
|
switch (period.toLowerCase()) {
|
||||||
|
case "daily":
|
||||||
|
startDate = getStartOfDay();
|
||||||
|
break;
|
||||||
|
case "weekly":
|
||||||
|
startDate = getStartOfWeek();
|
||||||
|
break;
|
||||||
|
case "monthly":
|
||||||
|
startDate = getStartOfMonth();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
System.out.println("Ungültige Zeitraumoption!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Berechnen der Einnahmen und Ausgaben im angegebenen Zeitraum
|
||||||
|
for (Transaction transaction : transactions) {
|
||||||
|
if (!transaction.getDate().before(startDate) && !transaction.getDate().after(endDate)) {
|
||||||
|
if (transaction.isIncome()) {
|
||||||
|
totalIncome += transaction.getAmount();
|
||||||
|
} else {
|
||||||
|
totalExpense += transaction.getAmount();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println("\n--- Finanzbericht für " + period + " ---");
|
||||||
|
System.out.println("Gesamte Einnahmen: " + totalIncome + " EUR");
|
||||||
|
System.out.println("Gesamte Ausgaben: " + totalExpense + " EUR");
|
||||||
|
System.out.println("Nettogewinn: " + (totalIncome - totalExpense) + " EUR");
|
||||||
|
}
|
||||||
|
|
||||||
|
private Date getStartOfDay() {
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
cal.set(Calendar.MINUTE, 0);
|
||||||
|
cal.set(Calendar.SECOND, 0);
|
||||||
|
cal.set(Calendar.MILLISECOND, 0);
|
||||||
|
return cal.getTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Date getStartOfWeek() {
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
|
||||||
|
cal.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
cal.set(Calendar.MINUTE, 0);
|
||||||
|
cal.set(Calendar.SECOND, 0);
|
||||||
|
cal.set(Calendar.MILLISECOND, 0);
|
||||||
|
return cal.getTime();
|
||||||
|
}
|
||||||
|
|
||||||
|
private Date getStartOfMonth() {
|
||||||
|
Calendar cal = Calendar.getInstance();
|
||||||
|
cal.set(Calendar.DAY_OF_MONTH, 1);
|
||||||
|
cal.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
cal.set(Calendar.MINUTE, 0);
|
||||||
|
cal.set(Calendar.SECOND, 0);
|
||||||
|
cal.set(Calendar.MILLISECOND, 0);
|
||||||
|
return cal.getTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Transaction {
|
||||||
|
private double amount;
|
||||||
|
private String description;
|
||||||
|
private boolean isIncome;
|
||||||
|
private Date date;
|
||||||
|
|
||||||
|
public Transaction(double amount, String description, boolean isIncome, Date date) {
|
||||||
|
this.amount = amount;
|
||||||
|
this.description = description;
|
||||||
|
this.isIncome = isIncome;
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getAmount() {
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isIncome() {
|
||||||
|
return isIncome;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,238 +1,237 @@
|
||||||
import java.util.Scanner;
|
import java.util.*;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
||||||
class SystemController {
|
class SystemController {
|
||||||
private Scanner scanner = new Scanner(System.in);
|
private Scanner scanner = new Scanner(System.in);
|
||||||
private Map<String, User> users = new HashMap<>();
|
private Map<String, User> users = new HashMap<>();
|
||||||
private final String USERS_FILE = "src/users.txt";
|
private final String USERS_FILE = "src/users.txt";
|
||||||
public static Inventory inventory = new Inventory();
|
public static Inventory inventory = new Inventory();
|
||||||
private Menu menu = new Menu();
|
private Menu menu = new Menu();
|
||||||
|
private FinancialManager financialManager = new FinancialManager();
|
||||||
|
|
||||||
public SystemController() {
|
public SystemController() {
|
||||||
loadUsersFromFile();
|
loadUsersFromFile();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
public void startSystem() {
|
||||||
|
System.out.println("Willkommen im Restaurant Management System!");
|
||||||
|
System.out.println("Bitte loggen Sie sich ein: ");
|
||||||
|
|
||||||
public void startSystem() {
|
System.out.print("Username ---------------> ");
|
||||||
System.out.println("Willkommen im Restaurant Management System!");
|
String username = scanner.nextLine();
|
||||||
System.out.println("Bitte loggen Sie sich ein: ");
|
|
||||||
|
|
||||||
System.out.print("Username ---------------> ");
|
System.out.print("Passwort ---------------> ");
|
||||||
String username = scanner.nextLine();
|
String password = scanner.nextLine();
|
||||||
|
|
||||||
System.out.print("Passwort ---------------> ");
|
User user = authenticate(username, password);
|
||||||
String password = scanner.nextLine();
|
if (user != null) {
|
||||||
|
displayMainMenu(user);
|
||||||
|
} else {
|
||||||
|
System.out.println("Ungültige Anmeldedaten.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
User user = authenticate(username, password);
|
private User authenticate(String username, String password) {
|
||||||
if (user != null) {
|
if (users.containsKey(username) && users.get(username).password.equals(password)) {
|
||||||
displayMainMenu(user);
|
return users.get(username);
|
||||||
} else {
|
}
|
||||||
System.out.println("Ungültige Anmeldedaten.");
|
return null;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private User authenticate(String username, String password) {
|
private void displayMainMenu(User user) {
|
||||||
if (users.containsKey(username) && users.get(username).password.equals(password)) {
|
boolean running = true;
|
||||||
return users.get(username);
|
while (running) {
|
||||||
}
|
inventory.loadStockFromFile();
|
||||||
return null;
|
System.out.println("\n--- Hauptmenü ---");
|
||||||
}
|
System.out.println("1. Bestand verwalten");
|
||||||
|
System.out.println("2. Neuer Nutzer erstellen");
|
||||||
|
System.out.println("3. Menü anzeigen");
|
||||||
|
System.out.println("4. Bestellungen verwalten");
|
||||||
|
System.out.println("5. Finanzbericht anzeigen");
|
||||||
|
System.out.println("6. Beenden");
|
||||||
|
|
||||||
private void displayMainMenu(User user) {
|
System.out.print("Bitte wähle eine Option: ");
|
||||||
boolean running = true;
|
int choice = scanner.nextInt();
|
||||||
while (running) {
|
scanner.nextLine(); // Eingabepuffer leeren
|
||||||
inventory.loadStockFromFile();
|
|
||||||
System.out.println("\n--- Hauptmenü ---");
|
|
||||||
System.out.println("1. Bestand verwalten");
|
|
||||||
System.out.println("2. Neuer Nutzer erstellen");
|
|
||||||
System.out.println("3. Menü anzeigen");
|
|
||||||
System.out.println("4. Bestellungen verwalten");
|
|
||||||
System.out.println("5. Beenden");
|
|
||||||
|
|
||||||
System.out.print("Bitte wähle eine Option: ");
|
switch (choice) {
|
||||||
int choice = scanner.nextInt();
|
case 1 -> manageInventory();
|
||||||
scanner.nextLine(); // Eingabepuffer leeren
|
case 2 -> {
|
||||||
|
if (user.role == Role.MANAGER) {
|
||||||
|
createUser();
|
||||||
|
} else {
|
||||||
|
System.out.println("Keine Rechte, um neue Nutzer zu erstellen.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case 3 -> menu.displayMenu(inventory);
|
||||||
|
case 4 -> manageOrders(); // Übergibt an Bestellsystem
|
||||||
|
case 5 -> showFinancialReports(); // Anzeige der Finanzberichte
|
||||||
|
case 6 -> {
|
||||||
|
running = false;
|
||||||
|
System.out.println("System wird beendet. Auf Wiedersehen!");
|
||||||
|
}
|
||||||
|
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (choice) {
|
private void manageInventory() {
|
||||||
case 1 -> manageInventory();
|
boolean managingInventory = true;
|
||||||
case 2 -> {
|
while (managingInventory) {
|
||||||
if (user.role == Role.MANAGER) {
|
inventory.loadStockFromFile();
|
||||||
createUser();
|
System.out.println("\n--- Bestand verwalten ---");
|
||||||
} else {
|
System.out.println("1. Bestand ansehen");
|
||||||
System.out.println("Keine Rechte, um neue Nutzer zu erstellen.");
|
System.out.println("2. Bestand ändern");
|
||||||
}
|
System.out.println("3. Bestand erweitern");
|
||||||
}
|
System.out.println("4. Zurück zum Hauptmenü");
|
||||||
case 3 -> menu.displayMenu(inventory);
|
|
||||||
case 4 -> manageOrders(); // Übergibt an Bestellsystem
|
|
||||||
case 5 -> {
|
|
||||||
running = false;
|
|
||||||
System.out.println("System wird beendet. Auf Wiedersehen!");
|
|
||||||
}
|
|
||||||
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void manageInventory() {
|
System.out.print("Bitte wähle eine Option: ");
|
||||||
boolean managingInventory = true;
|
int choice = scanner.nextInt();
|
||||||
while (managingInventory) {
|
scanner.nextLine(); // Eingabepuffer leeren
|
||||||
inventory.loadStockFromFile();
|
|
||||||
System.out.println("\n--- Bestand verwalten ---");
|
|
||||||
System.out.println("1. Bestand ansehen");
|
|
||||||
System.out.println("2. Bestand ändern");
|
|
||||||
System.out.println("3. Bestand erweitern");
|
|
||||||
System.out.println("4. Zurück zum Hauptmenü");
|
|
||||||
|
|
||||||
System.out.print("Bitte wähle eine Option: ");
|
switch (choice) {
|
||||||
int choice = scanner.nextInt();
|
case 1 -> inventory.viewStock(); // Bestand ansehen
|
||||||
scanner.nextLine(); // Eingabepuffer leeren
|
case 2 -> {
|
||||||
|
System.out.println("Welchen Bestand möchten Sie ändern?");
|
||||||
|
String name = scanner.nextLine();
|
||||||
|
System.out.println("Neue Anzahl ---->");
|
||||||
|
try {
|
||||||
|
int anzahl = scanner.nextInt();
|
||||||
|
inventory.overwriteStock(name, anzahl); // Bestellungen im Speicher anzeigen
|
||||||
|
inventory.saveStockToFile(); // Echtzeitspeicherung der Daten
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
System.out.println("Fehler! Überprüfen Sie Ihre Eingabe");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case 3 -> {
|
||||||
|
System.out.println("Bestand wird erweitert.....");
|
||||||
|
System.out.println("Name des Produkts: ");
|
||||||
|
String name = scanner.nextLine();
|
||||||
|
System.out.println("Anzahl :");
|
||||||
|
try {
|
||||||
|
int anzahl = scanner.nextInt();
|
||||||
|
inventory.addIngredients(name, anzahl); // Bestellungen im Speicher anzeigen
|
||||||
|
inventory.saveStockToFile(); // Echtzeitspeicherung der Daten
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
System.out.println("Fehler! Überprüfen Sie Ihre Eingabe");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case 4 -> managingInventory = false;
|
||||||
|
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (choice) {
|
private void manageOrders() {
|
||||||
case 1 -> {
|
boolean managingOrders = true;
|
||||||
inventory.viewStock(); // Bestand ansehen
|
while (managingOrders) {
|
||||||
}
|
System.out.println("\n--- Bestellungen verwalten ---");
|
||||||
case 2 -> {
|
System.out.println("1. Bestellung aufnehmen");
|
||||||
System.out.println("Welchen Bestand möchten sie ändern?");
|
System.out.println("2. Alle Bestellungen anzeigen");
|
||||||
String name = scanner.nextLine();
|
System.out.println("3. Bestellungen löschen");
|
||||||
System.out.println("Neue Anzahl ---->");
|
System.out.println("4. Zurück zum Hauptmenü");
|
||||||
try {
|
|
||||||
int anzahl = scanner.nextInt();
|
|
||||||
inventory.overwriteStock(name, anzahl); // Bestellungen im Speicher anzeigen
|
|
||||||
inventory.saveStockToFile(); // Echtzeitspeicherung der Daten in der Datenbank, die für Daten für
|
|
||||||
// alle Nutzer zugänglich macht
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
System.out.println("Fehler! Übeprüfen Sie ihre Eingabe");
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
System.out.print("Bitte wähle eine Option: ");
|
||||||
case 3 -> {
|
int choice = scanner.nextInt();
|
||||||
System.out.println("Bestand wird erweitert.....");
|
scanner.nextLine(); // Eingabepuffer leeren
|
||||||
System.out.println("Name des Produkts: ");
|
|
||||||
String name = scanner.nextLine();
|
|
||||||
System.out.println("Anzahl :");
|
|
||||||
try {
|
|
||||||
int anzahl = scanner.nextInt();
|
|
||||||
inventory.addIngredients(name, anzahl); // Bestellungen im Speicher anzeigen
|
|
||||||
inventory.saveStockToFile(); // Echtzeitspeicherung der Daten in der Datenbank, die für Daten für
|
|
||||||
// alle Nutzer zugänglich macht
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
System.out.println("Fehler! Übeprüfen Sie ihre Eingabe");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case 4 -> managingInventory = false;
|
|
||||||
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void manageOrders() {
|
switch (choice) {
|
||||||
boolean managingOrders = true;
|
case 1 -> {
|
||||||
while (managingOrders) {
|
menu.displayMenu(inventory);
|
||||||
System.out.println("\n--- Bestellungen verwalten ---");
|
Bestellsystem.erstelleBestellung(); // Neue Bestellung erstellen
|
||||||
System.out.println("1. Bestellung aufnehmen");
|
}
|
||||||
System.out.println("2. Alle Bestellungen anzeigen");
|
case 2 -> {
|
||||||
System.out.println("3. Bestellungen löschen");
|
Bestellsystem.ladeUndZeigeBestellungen(); // Bestellungen aus Datei anzeigen
|
||||||
System.out.println("4. Zurück zum Hauptmenü");
|
}
|
||||||
|
case 3 -> {
|
||||||
|
Bestellsystem.loescheBestellung(); // Bestellungen aus Datei löschen
|
||||||
|
}
|
||||||
|
case 4 -> managingOrders = false;
|
||||||
|
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
System.out.print("Bitte wähle eine Option: ");
|
private void createUser() {
|
||||||
int choice = scanner.nextInt();
|
String username = "";
|
||||||
scanner.nextLine(); // Eingabepuffer leeren
|
String password = "";
|
||||||
|
Role role = null;
|
||||||
|
try {
|
||||||
|
System.out.println("\n--- Neuen Nutzer erstellen ---");
|
||||||
|
System.out.print("Benutzername: ");
|
||||||
|
username = scanner.nextLine();
|
||||||
|
System.out.print("Passwort: ");
|
||||||
|
password = scanner.nextLine();
|
||||||
|
System.out.print("Rolle (MANAGER, SERVICE, KITCHEN): ");
|
||||||
|
role = Role.valueOf(scanner.nextLine().toUpperCase());
|
||||||
|
} catch (IllegalArgumentException d) {
|
||||||
|
System.out.println("Fehler beim Erstellen eines Accounts. Überprüfen Sie Ihre Eingaben.");
|
||||||
|
} catch (NullPointerException c) {
|
||||||
|
System.out.println("Fehler beim Erstellen eines Accounts. Überprüfen Sie Ihre Eingaben.");
|
||||||
|
}
|
||||||
|
|
||||||
switch (choice) {
|
try {
|
||||||
case 1 -> {
|
User newUser = new User(username, password, role);
|
||||||
menu.displayMenu(inventory);
|
users.put(username, newUser);
|
||||||
Bestellsystem.erstelleBestellung(); // Neue Bestellung erstellen
|
saveUserToFile(newUser);
|
||||||
|
|
||||||
}
|
System.out.println("Nutzer erfolgreich erstellt.");
|
||||||
case 2 -> {
|
} catch (NullPointerException c) {
|
||||||
Bestellsystem.ladeUndZeigeBestellungen(); // Bestellungen aus Datei anzeigen
|
System.out.println("Fehler beim Erstellen eines Accounts.");
|
||||||
}
|
}
|
||||||
case 3 -> {
|
}
|
||||||
Bestellsystem.loescheBestellung(); // Bestellungen aus Datei löschen
|
|
||||||
}
|
|
||||||
case 4 -> managingOrders = false;
|
|
||||||
default -> System.out.println("Ungültige Auswahl. Bitte versuche es erneut.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createUser() {
|
private void loadUsersFromFile() {
|
||||||
String username = "";
|
try (BufferedReader reader = new BufferedReader(new FileReader(USERS_FILE))) {
|
||||||
String password = "";
|
String line;
|
||||||
Role role = null;
|
while ((line = reader.readLine()) != null) {
|
||||||
try {
|
String[] parts = line.split(":");
|
||||||
System.out.println("\n--- Neuen Nutzer erstellen ---");
|
if (parts.length == 3) {
|
||||||
System.out.print("Benutzername: ");
|
String username = parts[0];
|
||||||
username = scanner.nextLine();
|
String password = parts[1];
|
||||||
System.out.print("Passwort: ");
|
Role role = Role.valueOf(parts[2].toUpperCase());
|
||||||
password = scanner.nextLine();
|
|
||||||
System.out.print("Rolle (MANAGER, SERVICE, KITCHEN): ");
|
|
||||||
role = Role.valueOf(scanner.nextLine().toUpperCase());
|
|
||||||
} catch (IllegalArgumentException d) {
|
|
||||||
System.out.println("Fehler beim Erstellen eines Accounts. Überprüfen sie Ihre Eingaben");
|
|
||||||
} catch (NullPointerException c) {
|
|
||||||
System.out.println("Fehler beim Erstellen eines Accounts. Überprüfen sie Ihre Eingaben");
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
users.put(username, new User(username, password, role));
|
||||||
User newUser = new User(username, password, role);
|
}
|
||||||
users.put(username, newUser);
|
}
|
||||||
saveUserToFile(newUser);
|
} catch (FileNotFoundException e) {
|
||||||
|
System.out.println("Benutzerdatenbank nicht gefunden. Standard-Manager wird erstellt.");
|
||||||
|
createDefaultManager();
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("Fehler beim Lesen der Benutzerdatenbank: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
System.out.println("Nutzer erfolgreich erstellt.");
|
private void saveUserToFile(User user) {
|
||||||
} catch (NullPointerException c) {
|
try (BufferedWriter writer = new BufferedWriter(new FileWriter(USERS_FILE, true))) {
|
||||||
|
writer.write(user.username + ":" + user.password + ":" + user.role.name());
|
||||||
}
|
writer.newLine();
|
||||||
}
|
} catch (IOException e) {
|
||||||
|
System.out.println("Fehler beim Speichern des Nutzers: " + e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void loadUsersFromFile() {
|
private void createDefaultManager() {
|
||||||
try (BufferedReader reader = new BufferedReader(new FileReader(USERS_FILE))) {
|
User defaultManager = new User("Dimitry", "1234", Role.MANAGER);
|
||||||
String line;
|
users.put("Dimitry", defaultManager);
|
||||||
while ((line = reader.readLine()) != null) {
|
saveUserToFile(defaultManager);
|
||||||
String[] parts = line.split(":");
|
}
|
||||||
if (parts.length == 3) {
|
|
||||||
String username = parts[0];
|
|
||||||
String password = parts[1];
|
|
||||||
Role role = Role.valueOf(parts[2].toUpperCase());
|
|
||||||
|
|
||||||
users.put(username, new User(username, password, role));
|
private void showFinancialReports() {
|
||||||
}
|
System.out.println("\n--- Finanzbericht ---");
|
||||||
}
|
System.out.println("Wählen Sie den Zeitraum:");
|
||||||
} catch (FileNotFoundException e) {
|
System.out.println("1. Täglich");
|
||||||
System.out.println("Benutzerdatenbank nicht gefunden. Standard-Manager wird erstellt.");
|
System.out.println("2. Wöchentlich");
|
||||||
createDefaultManager();
|
System.out.println("3. Monatlich");
|
||||||
} catch (IOException e) {
|
|
||||||
System.out.println("Fehler beim Lesen der Benutzerdatenbank: " + e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void saveUserToFile(User user) {
|
int periodChoice = scanner.nextInt();
|
||||||
try (BufferedWriter writer = new BufferedWriter(new FileWriter(USERS_FILE, true))) {
|
scanner.nextLine(); // Eingabepuffer leeren
|
||||||
writer.write(user.username + ":" + user.password + ":" + user.role.name());
|
|
||||||
writer.newLine();
|
|
||||||
} catch (IOException e) {
|
|
||||||
System.out.println("Fehler beim Speichern des Nutzers: " + e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createDefaultManager() {
|
|
||||||
User defaultManager = new User("Dimitry", "1234", Role.MANAGER);
|
|
||||||
users.put("Dimitry", defaultManager);
|
|
||||||
saveUserToFile(defaultManager);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
switch (periodChoice) {
|
||||||
|
case 1 -> financialManager.showFinancialReport("daily");
|
||||||
|
case 2 -> financialManager.showFinancialReport("weekly");
|
||||||
|
case 3 -> financialManager.showFinancialReport("monthly");
|
||||||
|
default -> System.out.println("Ungültige Auswahl.");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
//Wenn ihr weitere Menü-möglichkeiten hinzufügt, sollt ihr {
|
|
||||||
//if (user.role == Role.MANAGER) {
|
|
||||||
// createUser();
|
|
||||||
//} else {
|
|
||||||
// System.out.println("Keine Rechte, um neue Nutzer zu erstellen.");
|
|
||||||
//}
|
|
||||||
//bei switch case machen, damit es die Rollen richtig funktionieren
|
|
||||||
|
|
||||||
//alle menü-interaktionen sollen wie manageInventory() methode gemacht werden, damit es übersichtlicher bleibt (Ali/Braucht Admin rechte, Abbas/Braucht ADmin rechte eure 2 Funktinonen)
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
|
01,100
|
||||||
Soße,49999996
|
Soße,49999996
|
||||||
Ananasdasdas,5000
|
Ananasdasdas,5000
|
||||||
Brot,1504
|
Brot,1503
|
||||||
Tomaten,503
|
Tomaten,503
|
||||||
Käse,716
|
Käse,715
|
||||||
Fleisch,94
|
Fleisch,93
|
||||||
Salat,494
|
Salat,494
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue