diff --git a/PR2 KI Projekt/customers.txt b/PR2 KI Projekt/customers.txt new file mode 100644 index 0000000..e69de29 diff --git a/PR2 KI Projekt/employees.txt b/PR2 KI Projekt/employees.txt new file mode 100644 index 0000000..e69de29 diff --git a/PR2 KI Projekt/orders.txt b/PR2 KI Projekt/orders.txt new file mode 100644 index 0000000..e69de29 diff --git a/PR2 KI Projekt/products.txt b/PR2 KI Projekt/products.txt new file mode 100644 index 0000000..e69de29 diff --git a/PR2 KI Projekt/src/Warenwirtschaftssystem.java b/PR2 KI Projekt/src/Warenwirtschaftssystem.java index 64d73c7..c799213 100644 --- a/PR2 KI Projekt/src/Warenwirtschaftssystem.java +++ b/PR2 KI Projekt/src/Warenwirtschaftssystem.java @@ -139,6 +139,7 @@ public class Warenwirtschaftssystem { } } + private void initializeMainComponents() { frame = new JFrame("Warenwirtschaftssystem"); frame.setSize(1200, 800); @@ -1033,36 +1034,91 @@ public class Warenwirtschaftssystem { panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Produktionsplanung", TitledBorder.CENTER, TitledBorder.TOP)); panel.setBackground(Color.decode("#ECF0F1")); - panel.add(new JLabel("Plan erstellen")); JButton createPlanButton = new JButton("Plan erstellen"); + JButton manageBOMButton = new JButton("Stückliste anzeigen"); + JButton productionControlButton = new JButton("Steuerung anzeigen"); + JButton qualityControlButton = new JButton("Kontrolle anzeigen"); + JButton productionCostsButton = new JButton("Kosten anzeigen"); + + panel.add(new JLabel("Plan erstellen")); panel.add(createPlanButton); panel.add(new JLabel("Stückliste verwalten")); - JButton manageBOMButton = new JButton("Stückliste anzeigen"); panel.add(manageBOMButton); panel.add(new JLabel("Produktionssteuerung")); - JButton productionControlButton = new JButton("Steuerung anzeigen"); panel.add(productionControlButton); panel.add(new JLabel("Qualitätskontrolle")); - JButton qualityControlButton = new JButton("Kontrolle anzeigen"); panel.add(qualityControlButton); panel.add(new JLabel("Produktionskosten")); - JButton productionCostsButton = new JButton("Kosten anzeigen"); panel.add(productionCostsButton); - createPlanButton.addActionListener(e -> JOptionPane.showMessageDialog(frame, "Produktionsplan erstellt", "Erfolg", JOptionPane.INFORMATION_MESSAGE)); - manageBOMButton.addActionListener(e -> JOptionPane.showMessageDialog(frame, "Stückliste verwaltet", "Erfolg", JOptionPane.INFORMATION_MESSAGE)); - productionControlButton.addActionListener(e -> JOptionPane.showMessageDialog(frame, "Produktionssteuerung angezeigt", "Erfolg", JOptionPane.INFORMATION_MESSAGE)); - qualityControlButton.addActionListener(e -> JOptionPane.showMessageDialog(frame, "Qualitätskontrolle durchgeführt", "Erfolg", JOptionPane.INFORMATION_MESSAGE)); - productionCostsButton.addActionListener(e -> JOptionPane.showMessageDialog(frame, "Produktionskosten berechnet", "Erfolg", JOptionPane.INFORMATION_MESSAGE)); + createPlanButton.addActionListener(e -> showCreatePlanDialog()); + manageBOMButton.addActionListener(e -> openStuecklisten()); + productionControlButton.addActionListener(e -> openProduktionssteuerung()); + qualityControlButton.addActionListener(e -> openQualitaetskontrolle()); + productionCostsButton.addActionListener(e -> openProduktionskosten()); mainPanel.add(panel, BorderLayout.CENTER); mainPanel.repaint(); mainPanel.revalidate(); } + private void showCreatePlanDialog() { + JDialog dialog = new JDialog(frame, "Produktionsplan erstellen", true); + dialog.setSize(400, 300); + dialog.setLocationRelativeTo(frame); + + JPanel panel = new JPanel(new GridLayout(6, 2, 10, 10)); + panel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Produktionsplan", TitledBorder.CENTER, TitledBorder.TOP)); + panel.setBackground(Color.decode("#ECF0F1")); + + panel.add(new JLabel("Produkt:")); + JTextField productField = new JTextField(); + panel.add(productField); + + panel.add(new JLabel("Menge:")); + JTextField quantityField = new JTextField(); + panel.add(quantityField); + + panel.add(new JLabel("Startdatum:")); + JTextField startDateField = new JTextField(); + panel.add(startDateField); + + panel.add(new JLabel("Enddatum:")); + JTextField endDateField = new JTextField(); + panel.add(endDateField); + + JButton saveButton = new JButton("Speichern"); + panel.add(saveButton); + + saveButton.addActionListener(e -> { + String product = productField.getText(); + int quantity = Integer.parseInt(quantityField.getText()); + String startDate = startDateField.getText(); + String endDate = endDateField.getText(); + + // Speichern des Produktionsplans (Implementierung erforderlich) + saveProductionPlan(product, quantity, startDate, endDate); + + dialog.dispose(); + }); + + dialog.add(panel); + dialog.setVisible(true); + } + + private void saveProductionPlan(String product, int quantity, String startDate, String endDate) { + // Implementiere die Logik zum Speichern des Produktionsplans (z.B. in einer Datei oder Datenbank) + // Beispiel: Produktionsplan in eine Datei speichern + try (BufferedWriter writer = new BufferedWriter(new FileWriter("production_plans.txt", true))) { + writer.write(product + "," + quantity + "," + startDate + "," + endDate); + writer.newLine(); + } catch (IOException e) { + e.printStackTrace(); + } + } private void openStuecklisten() { mainPanel.removeAll(); @@ -1074,8 +1130,18 @@ public class Warenwirtschaftssystem { label.setForeground(Color.decode("#2C3E50")); mainPanel.add(label, BorderLayout.NORTH); - // Implementiere hier die Funktionalität zur Verwaltung von Stücklisten + // Beispielhafte Implementierung zur Anzeige der Stücklisten + JPanel panel = new JPanel(new BorderLayout()); + DefaultTableModel bomModel = new DefaultTableModel(new Object[]{"Artikelnummer", "Komponente", "Menge"}, 0); + JTable bomTable = new JTable(bomModel); + JScrollPane scrollPane = new JScrollPane(bomTable); + panel.add(scrollPane, BorderLayout.CENTER); + // Beispiel: Fügen Sie hier Stücklisten hinzu + bomModel.addRow(new Object[]{"P001", "K001", 5}); + bomModel.addRow(new Object[]{"P001", "K002", 3}); + + mainPanel.add(panel, BorderLayout.CENTER); mainPanel.repaint(); mainPanel.revalidate(); } @@ -1090,8 +1156,18 @@ public class Warenwirtschaftssystem { label.setForeground(Color.decode("#2C3E50")); mainPanel.add(label, BorderLayout.NORTH); - // Implementiere hier die Funktionalität zur Produktionssteuerung + // Beispielhafte Implementierung zur Anzeige der Produktionssteuerung + JPanel panel = new JPanel(new BorderLayout()); + DefaultTableModel controlModel = new DefaultTableModel(new Object[]{"Produkt", "Status", "Fortschritt"}, 0); + JTable controlTable = new JTable(controlModel); + JScrollPane scrollPane = new JScrollPane(controlTable); + panel.add(scrollPane, BorderLayout.CENTER); + // Beispiel: Fügen Sie hier Produktionssteuerungsdaten hinzu + controlModel.addRow(new Object[]{"Produkt A", "In Produktion", "50%"}); + controlModel.addRow(new Object[]{"Produkt B", "Geplant", "0%"}); + + mainPanel.add(panel, BorderLayout.CENTER); mainPanel.repaint(); mainPanel.revalidate(); } @@ -1106,12 +1182,23 @@ public class Warenwirtschaftssystem { label.setForeground(Color.decode("#2C3E50")); mainPanel.add(label, BorderLayout.NORTH); - // Implementiere hier die Funktionalität zur Qualitätskontrolle + // Beispielhafte Implementierung zur Anzeige der Qualitätskontrolle + JPanel panel = new JPanel(new BorderLayout()); + DefaultTableModel qualityModel = new DefaultTableModel(new Object[]{"Produkt", "Tester", "Ergebnis", "Datum"}, 0); + JTable qualityTable = new JTable(qualityModel); + JScrollPane scrollPane = new JScrollPane(qualityTable); + panel.add(scrollPane, BorderLayout.CENTER); + // Beispiel: Fügen Sie hier Qualitätskontrolldaten hinzu + qualityModel.addRow(new Object[]{"Produkt A", "Tester 1", "Bestanden", "2024-01-01"}); + qualityModel.addRow(new Object[]{"Produkt B", "Tester 2", "Nicht bestanden", "2024-01-02"}); + + mainPanel.add(panel, BorderLayout.CENTER); mainPanel.repaint(); mainPanel.revalidate(); } + private void openProduktionskosten() { mainPanel.removeAll(); mainPanel.repaint(); @@ -1122,12 +1209,23 @@ public class Warenwirtschaftssystem { label.setForeground(Color.decode("#2C3E50")); mainPanel.add(label, BorderLayout.NORTH); - // Implementiere hier die Funktionalität zur Produktionskosten + // Beispielhafte Implementierung zur Anzeige der Produktionskosten + JPanel panel = new JPanel(new BorderLayout()); + DefaultTableModel costsModel = new DefaultTableModel(new Object[]{"Produkt", "Materialkosten", "Arbeitskosten", "Gesamtkosten"}, 0); + JTable costsTable = new JTable(costsModel); + JScrollPane scrollPane = new JScrollPane(costsTable); + panel.add(scrollPane, BorderLayout.CENTER); + // Beispiel: Fügen Sie hier Produktionskostendaten hinzu + costsModel.addRow(new Object[]{"Produkt A", 5000, 2000, 7000}); + costsModel.addRow(new Object[]{"Produkt B", 3000, 1500, 4500}); + + mainPanel.add(panel, BorderLayout.CENTER); mainPanel.repaint(); mainPanel.revalidate(); } + private void openBuchhaltung() { mainPanel.removeAll(); mainPanel.repaint(); diff --git a/PR2 KI Projekt/suppliers.txt b/PR2 KI Projekt/suppliers.txt new file mode 100644 index 0000000..e69de29 diff --git a/PR2 KI Projekt/users.txt b/PR2 KI Projekt/users.txt index 1c82057..15e0d3e 100644 --- a/PR2 KI Projekt/users.txt +++ b/PR2 KI Projekt/users.txt @@ -2,3 +2,4 @@ 2,manager,manager123,Manager 3,user,user123,User 4,Abbas,12,Administrator +5,Abbas,12,Administrator