From 17d389ab2c0f37f4db92cd7ef834148edc62efc0 Mon Sep 17 00:00:00 2001 From: denis Date: Fri, 14 Jun 2024 12:42:41 +0200 Subject: [PATCH] =?UTF-8?q?KUNDEN=20und=20ARTIKEL=20die=20XML-Methoden=20i?= =?UTF-8?q?n=20entsprechenden=20Controller=20Klassen=20ausgelagert.=20STAR?= =?UTF-8?q?TUPMENUE=20funktionen=20=C3=BCbergeben.=20->=20Main=20ist=20aus?= =?UTF-8?q?f=C3=BChrbar=20-=20Dateinamen=20von=20Kunden=20und=20Artikeln?= =?UTF-8?q?=20noch=20im=20Konflikt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/controller/ArtikelController.java | 130 ++++++++ .../src/controller/KundenController.java | 93 +++++- Faktura_Gruppe5/src/model/Artikel.java | 134 +------- Faktura_Gruppe5/src/model/Kunde.java | 298 +++++------------- Faktura_Gruppe5/src/view/StartUpMenue.java | 24 +- 5 files changed, 321 insertions(+), 358 deletions(-) create mode 100644 Faktura_Gruppe5/src/controller/ArtikelController.java diff --git a/Faktura_Gruppe5/src/controller/ArtikelController.java b/Faktura_Gruppe5/src/controller/ArtikelController.java new file mode 100644 index 0000000..11925ef --- /dev/null +++ b/Faktura_Gruppe5/src/controller/ArtikelController.java @@ -0,0 +1,130 @@ +package controller; + +import model.Artikel; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; +import java.io.File; +import java.io.IOException; +import java.util.Scanner; + +public class ArtikelController { + + // Methode zum Speichern der Artikeldaten im XML-Format + public static void speichereAlsXML(Artikel artikel) { + try { + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.newDocument(); + + // Root-Element + Element rootElement = doc.createElement("Artikel"); + doc.appendChild(rootElement); + + // Artikelnummer-Element + Element nummerElement = doc.createElement("Artikelnummer"); + nummerElement.appendChild(doc.createTextNode(Integer.toString(artikel.getArtikelnummer()))); + rootElement.appendChild(nummerElement); + + // Einheit-Element + Element einheitElement = doc.createElement("Einheit"); + einheitElement.appendChild(doc.createTextNode(artikel.getEinheit())); + rootElement.appendChild(einheitElement); + + // Bezeichnung-Element + Element bezeichnungElement = doc.createElement("Bezeichnung"); + bezeichnungElement.appendChild(doc.createTextNode(artikel.getBezeichnung())); + rootElement.appendChild(bezeichnungElement); + + // Nettopreis-Element + Element nettopreisElement = doc.createElement("Nettopreis"); + nettopreisElement.appendChild(doc.createTextNode(Double.toString(artikel.getNettopreis()))); + rootElement.appendChild(nettopreisElement); + + // Mehrwertsteuersatz-Element + Element mehrwertsteuersatzElement = doc.createElement("Mehrwertsteuersatz"); + mehrwertsteuersatzElement.appendChild(doc.createTextNode(Double.toString(artikel.getMehrwertsteuersatz()))); + rootElement.appendChild(mehrwertsteuersatzElement); + + // Transformieren und Speichern in Datei + TransformerFactory transformerFactory = TransformerFactory.newInstance(); + Transformer transformer = transformerFactory.newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + DOMSource source = new DOMSource(doc); + StreamResult result = new StreamResult(new File(Integer.toString(artikel.getArtikelnummer()) + ".xml")); + transformer.transform(source, result); + + System.out.println("Die XML-Datei wurde erfolgreich gespeichert."); + + } catch (ParserConfigurationException | TransformerException e) { + e.printStackTrace(); + } + } + + // Methode zum Auslesen der Artikeldaten aus einer XML-Datei + public static Artikel leseAusXML(int artikelnummer) { + try { + File xmlDatei = new File(Integer.toString(artikelnummer) + ".xml"); + Artikel artikel = new Artikel(artikelnummer); + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(xmlDatei); + doc.getDocumentElement().normalize(); + + NodeList nList = doc.getElementsByTagName("Artikel"); + + for (int temp = 0; temp < nList.getLength(); temp++) { + Node nNode = nList.item(temp); + + if (nNode.getNodeType() == Node.ELEMENT_NODE) { + Element eElement = (Element) nNode; + + artikel.setArtikelnummer(Integer.parseInt(eElement.getElementsByTagName("Artikelnummer").item(0).getTextContent())); + artikel.setEinheit(eElement.getElementsByTagName("Einheit").item(0).getTextContent()); + artikel.setBezeichnung(eElement.getElementsByTagName("Bezeichnung").item(0).getTextContent()); + artikel.setNettopreis(Double.parseDouble(eElement.getElementsByTagName("Nettopreis").item(0).getTextContent())); + artikel.setMehrwertsteuersatz(Double.parseDouble(eElement.getElementsByTagName("Mehrwertsteuersatz").item(0).getTextContent())); + } + } + + + System.out.println("Die XML-Datei wurde erfolgreich gelesen."); + return artikel; + } catch (ParserConfigurationException | SAXException | IOException e) { + e.printStackTrace(); + } + return null; + } + + // Methode zum Auslesen der Artikeldaten aus einer XML-Datei und in der Konsole ausgeben + public static void leseUndGibAusXML(Artikel artikel, String dateiPfad) { + leseUndGibAusXML(artikel, dateiPfad); + artikel.anzeigen(); + } + + // Methode zur Eingabe der Artikeldaten über die Konsole + public static void eingabeDaten(Artikel artikel, Scanner scanner) { + System.out.print("Einheit: "); + artikel.setEinheit(scanner.nextLine()); + + System.out.print("Bezeichnung: "); + artikel.setBezeichnung(scanner.nextLine()); + + System.out.print("Nettopreis: "); + artikel.setNettopreis(Double.parseDouble(scanner.nextLine())); + + System.out.print("Mehrwertsteuersatz: "); + artikel.setMehrwertsteuersatz(Double.parseDouble(scanner.nextLine())); + } +} diff --git a/Faktura_Gruppe5/src/controller/KundenController.java b/Faktura_Gruppe5/src/controller/KundenController.java index e6ac301..c5e0a3d 100644 --- a/Faktura_Gruppe5/src/controller/KundenController.java +++ b/Faktura_Gruppe5/src/controller/KundenController.java @@ -12,32 +12,30 @@ import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.Document; import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; import java.io.File; import java.io.IOException; +import java.util.Scanner; public class KundenController { - public void speichereKundeInXML(Kunde kunde) { + // Methode zum Speichern der Kundendaten im XML-Format + public static void speichereAlsXML(Kunde kunde) { try { - // Ordner "Kunden" erstellen, falls er nicht existiert - File ordner = new File("Kunden"); - if (!ordner.exists()) { - ordner.mkdirs(); - } - - // XML-Dokument erstellen DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); Document doc = dBuilder.newDocument(); - // Root-Element "Kunde" + // Root-Element Element rootElement = doc.createElement("Kunde"); doc.appendChild(rootElement); // Kundennummer-Element - Element kundennummerElement = doc.createElement("Kundennummer"); - kundennummerElement.appendChild(doc.createTextNode(Integer.toString(kunde.getKundennummer()))); - rootElement.appendChild(kundennummerElement); + Element nummerElement = doc.createElement("Kundennummer"); + nummerElement.appendChild(doc.createTextNode(Integer.toString(kunde.getKundennummer()))); + rootElement.appendChild(nummerElement); // Name-Element Element nameElement = doc.createElement("Name"); @@ -69,18 +67,83 @@ public class KundenController { ansprechpartnerElement.appendChild(doc.createTextNode(kunde.getAnsprechpartner())); rootElement.appendChild(ansprechpartnerElement); - // XML in Datei speichern + // Transformieren und Speichern in Datei TransformerFactory transformerFactory = TransformerFactory.newInstance(); Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); DOMSource source = new DOMSource(doc); - StreamResult result = new StreamResult(new File(ordner, "kunde_" + kunde.getKundennummer() + ".xml")); + StreamResult result = new StreamResult(new File(Integer.toString(kunde.getKundennummer()) + ".xml")); transformer.transform(source, result); - System.out.println("Kundendaten wurden erfolgreich in XML-Datei gespeichert."); + System.out.println("Die XML-Datei wurde erfolgreich gespeichert."); } catch (ParserConfigurationException | TransformerException e) { e.printStackTrace(); } } + + // Methode zum Auslesen der Kundendaten aus einer XML-Datei + public static Kunde leseAusXML(int kundennummer) { + try { + File xmlDatei = new File(Integer.toString(kundennummer) + ".xml"); + Kunde kunde = new Kunde(kundennummer); + DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); + Document doc = dBuilder.parse(xmlDatei); + doc.getDocumentElement().normalize(); + + NodeList nList = doc.getElementsByTagName("Kunde"); + + for (int temp = 0; temp < nList.getLength(); temp++) { + Node nNode = nList.item(temp); + + if (nNode.getNodeType() == Node.ELEMENT_NODE) { + Element eElement = (Element) nNode; + + kunde.setKundennummer(Integer.parseInt(eElement.getElementsByTagName("Kundennummer").item(0).getTextContent())); + kunde.setName(eElement.getElementsByTagName("Name").item(0).getTextContent()); + kunde.setAnschrift(eElement.getElementsByTagName("Anschrift").item(0).getTextContent()); + kunde.setEmail(eElement.getElementsByTagName("Email").item(0).getTextContent()); + kunde.setTelefonnummer(eElement.getElementsByTagName("Telefonnummer").item(0).getTextContent()); + kunde.setIstKleinunternehmer(Boolean.parseBoolean(eElement.getElementsByTagName("Kleinunternehmer").item(0).getTextContent())); + kunde.setAnsprechpartner(eElement.getElementsByTagName("Ansprechpartner").item(0).getTextContent()); + } + } + + System.out.println("Die XML-Datei wurde erfolgreich gelesen."); + return kunde; + } catch (ParserConfigurationException | SAXException | IOException e) { + e.printStackTrace(); + } + return null; + + + } + + // Methode zum Auslesen der Kundendaten aus einer XML-Datei und in der Konsole ausgeben + public static void leseUndGibAusXML(Kunde kunde, String dateiPfad) { + leseUndGibAusXML(kunde, dateiPfad); + kunde.anzeigen(); + } + + // Methode zur Eingabe der Kundendaten über die Konsole + public static void eingabeDaten(Kunde kunde, Scanner scanner) { + System.out.print("Name: "); + kunde.setName(scanner.nextLine()); + + System.out.print("Anschrift: "); + kunde.setAnschrift(scanner.nextLine()); + + System.out.print("Email: "); + kunde.setEmail(scanner.nextLine()); + + System.out.print("Telefonnummer: "); + kunde.setTelefonnummer(scanner.nextLine()); + + System.out.print("Ist der Kunde ein Kleinunternehmer (true/false)? "); + kunde.setIstKleinunternehmer(Boolean.parseBoolean(scanner.nextLine())); + + System.out.print("Ansprechpartner: "); + kunde.setAnsprechpartner(scanner.nextLine()); + } } diff --git a/Faktura_Gruppe5/src/model/Artikel.java b/Faktura_Gruppe5/src/model/Artikel.java index 999579e..02da4f1 100644 --- a/Faktura_Gruppe5/src/model/Artikel.java +++ b/Faktura_Gruppe5/src/model/Artikel.java @@ -1,23 +1,5 @@ package model; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; -import java.io.File; -import java.io.IOException; -import java.util.Scanner; - public class Artikel { private static int aktuelleArtikelnummer = 0; // Statische Variable für fortlaufende Artikelnummer private int artikelnummer; @@ -34,11 +16,21 @@ public class Artikel { this.nettopreis = nettopreis; this.mehrwertsteuersatz = mehrwertsteuersatz; } + + public Artikel(int artikelnummer) { + this.artikelnummer = artikelnummer; + } + + // Leerer Konstruktor public Artikel() { this.artikelnummer = ++aktuelleArtikelnummer; // Vergabe der Artikelnummer und Inkrement } + + public void setArtikelnummer(int artikelnummer) { + this.artikelnummer = artikelnummer; + } // Getter und Setter public int getArtikelnummer() { @@ -85,110 +77,4 @@ public class Artikel { System.out.println("Nettopreis: " + nettopreis); System.out.println("Mehrwertsteuersatz: " + mehrwertsteuersatz); } - - // Methode zum Speichern der Artikeldaten im XML-Format - public void speichereAlsXML(String dateiPfad) { - try { - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.newDocument(); - - // Root-Element - Element rootElement = doc.createElement("Artikel"); - doc.appendChild(rootElement); - - // Artikelnummer-Element - Element nummerElement = doc.createElement("Artikelnummer"); - nummerElement.appendChild(doc.createTextNode(Integer.toString(artikelnummer))); - rootElement.appendChild(nummerElement); - - // Einheit-Element - Element einheitElement = doc.createElement("Einheit"); - einheitElement.appendChild(doc.createTextNode(einheit)); - rootElement.appendChild(einheitElement); - - // Bezeichnung-Element - Element bezeichnungElement = doc.createElement("Bezeichnung"); - bezeichnungElement.appendChild(doc.createTextNode(bezeichnung)); - rootElement.appendChild(bezeichnungElement); - - // Nettopreis-Element - Element nettopreisElement = doc.createElement("Nettopreis"); - nettopreisElement.appendChild(doc.createTextNode(Double.toString(nettopreis))); - rootElement.appendChild(nettopreisElement); - - // Mehrwertsteuersatz-Element - Element mehrwertsteuersatzElement = doc.createElement("Mehrwertsteuersatz"); - mehrwertsteuersatzElement.appendChild(doc.createTextNode(Double.toString(mehrwertsteuersatz))); - rootElement.appendChild(mehrwertsteuersatzElement); - - // Transformieren und Speichern in Datei - TransformerFactory transformerFactory = TransformerFactory.newInstance(); - Transformer transformer = transformerFactory.newTransformer(); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - DOMSource source = new DOMSource(doc); - StreamResult result = new StreamResult(new File(dateiPfad)); - transformer.transform(source, result); - - System.out.println("Die XML-Datei wurde erfolgreich gespeichert."); - - } catch (ParserConfigurationException | TransformerException e) { - e.printStackTrace(); - } - } - - // Methode zum Auslesen der Artikeldaten aus einer XML-Datei - public void leseAusXML(String dateiPfad) { - try { - File xmlDatei = new File(dateiPfad); - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(xmlDatei); - doc.getDocumentElement().normalize(); - - NodeList nList = doc.getElementsByTagName("Artikel"); - - for (int temp = 0; temp < nList.getLength(); temp++) { - Node nNode = nList.item(temp); - - if (nNode.getNodeType() == Node.ELEMENT_NODE) { - Element eElement = (Element) nNode; - - this.artikelnummer = Integer.parseInt(eElement.getElementsByTagName("Artikelnummer").item(0).getTextContent()); - this.einheit = eElement.getElementsByTagName("Einheit").item(0).getTextContent(); - this.bezeichnung = eElement.getElementsByTagName("Bezeichnung").item(0).getTextContent(); - this.nettopreis = Double.parseDouble(eElement.getElementsByTagName("Nettopreis").item(0).getTextContent()); - this.mehrwertsteuersatz = Double.parseDouble(eElement.getElementsByTagName("Mehrwertsteuersatz").item(0).getTextContent()); - } - } - - System.out.println("Die XML-Datei wurde erfolgreich gelesen."); - } catch (ParserConfigurationException | SAXException | IOException e) { - e.printStackTrace(); - } - } - - // Methode zum Auslesen der Artikeldaten aus einer XML-Datei und in der Konsole ausgeben - public void leseUndGibAusXML(String dateiPfad) { - leseAusXML(dateiPfad); - anzeigen(); - } - - // Methode zur Eingabe der Artikeldaten über die Konsole - public void eingabeDaten(Scanner scanner) { - System.out.print("Einheit: "); - this.einheit = scanner.nextLine(); - - System.out.print("Bezeichnung: "); - this.bezeichnung = scanner.nextLine(); - - System.out.print("Nettopreis: "); - this.nettopreis = Double.parseDouble(scanner.nextLine()); - - System.out.print("Mehrwertsteuersatz: "); - this.mehrwertsteuersatz = Double.parseDouble(scanner.nextLine()); - } - - } - diff --git a/Faktura_Gruppe5/src/model/Kunde.java b/Faktura_Gruppe5/src/model/Kunde.java index 778d26a..bcc5cb7 100644 --- a/Faktura_Gruppe5/src/model/Kunde.java +++ b/Faktura_Gruppe5/src/model/Kunde.java @@ -1,236 +1,102 @@ package model; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; -import java.io.File; -import java.io.IOException; -import java.util.Scanner; - public class Kunde { - private static int aktuelleKundennummer = 0; // Statische Variable für fortlaufende Kundennummer - private int kundennummer; - private String name; - private String anschrift; - private String email; - private String telefonnummer; - private boolean istKleinunternehmer; - private String ansprechpartner; + private static int aktuelleKundennummer = 0; // Statische Variable für fortlaufende Kundennummer + private int kundennummer; + private String name; + private String anschrift; + // Straße - PLZ - Ort + private String email; + private String telefonnummer; + private boolean istKleinunternehmer; + private String ansprechpartner; - // Konstruktor - public Kunde(String name, String anschrift, String email, String telefonnummer, boolean istKleinunternehmer, - String ansprechpartner) { - this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement - this.name = name; - this.anschrift = anschrift; - this.email = email; - this.telefonnummer = telefonnummer; - this.istKleinunternehmer = istKleinunternehmer; - this.ansprechpartner = ansprechpartner; - } + // Konstruktor + public Kunde(String name, String anschrift, String email, String telefonnummer, boolean istKleinunternehmer, + String ansprechpartner) { + this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement + this.name = name; + this.anschrift = anschrift; + this.email = email; + this.telefonnummer = telefonnummer; + this.istKleinunternehmer = istKleinunternehmer; + this.ansprechpartner = ansprechpartner; + } + + public Kunde(int kundennummer) { + this.kundennummer = kundennummer; + } - // Leerer Konstruktor - public Kunde() { - this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement - } + // Leerer Konstruktor + public Kunde() { + this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement + } - // Getter und Setter - public int getKundennummer() { - return kundennummer; - } + // Getter und Setter + public int getKundennummer() { + return kundennummer; + } + + public void setKundennummer(int kundennummer) { + this.kundennummer = kundennummer; + } - public String getName() { - return name; - } + public String getName() { + return name; + } - public void setName(String name) { - this.name = name; - } + public void setName(String name) { + this.name = name; + } - public String getAnschrift() { - return anschrift; - } + public String getAnschrift() { + return anschrift; + } - public void setAnschrift(String anschrift) { - this.anschrift = anschrift; - } + public void setAnschrift(String anschrift) { + this.anschrift = anschrift; + } - public String getEmail() { - return email; - } + public String getEmail() { + return email; + } - public void setEmail(String email) { - this.email = email; - } + public void setEmail(String email) { + this.email = email; + } - public String getTelefonnummer() { - return telefonnummer; - } + public String getTelefonnummer() { + return telefonnummer; + } - public void setTelefonnummer(String telefonnummer) { - this.telefonnummer = telefonnummer; - } + public void setTelefonnummer(String telefonnummer) { + this.telefonnummer = telefonnummer; + } - public boolean isIstKleinunternehmer() { - return istKleinunternehmer; - } + public boolean isIstKleinunternehmer() { + return istKleinunternehmer; + } - public void setIstKleinunternehmer(boolean istKleinunternehmer) { - this.istKleinunternehmer = istKleinunternehmer; - } + public void setIstKleinunternehmer(boolean istKleinunternehmer) { + this.istKleinunternehmer = istKleinunternehmer; + } - public String getAnsprechpartner() { - return ansprechpartner; - } + public String getAnsprechpartner() { + return ansprechpartner; + } - public void setAnsprechpartner(String ansprechpartner) { - this.ansprechpartner = ansprechpartner; - } + public void setAnsprechpartner(String ansprechpartner) { + this.ansprechpartner = ansprechpartner; + } - // Methode zum Anzeigen der Kundendaten - public void anzeigen() { - System.out.println("Kundennummer: " + kundennummer); - System.out.println("Name: " + name); - System.out.println("Anschrift: " + anschrift); - System.out.println("Email: " + email); - System.out.println("Telefonnummer: " + telefonnummer); - System.out.println("Kleinunternehmer: " + (istKleinunternehmer ? "Ja" : "Nein")); - System.out.println("Ansprechpartner: " + ansprechpartner); - } - - // Methode zum Speichern der Kundendaten im XML-Format - public void speichereAlsXML(String dateiPfad) { - try { - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.newDocument(); - - // Root-Element - Element rootElement = doc.createElement("Kunde"); - doc.appendChild(rootElement); - - // Kundennummer-Element - Element nummerElement = doc.createElement("Kundennummer"); - nummerElement.appendChild(doc.createTextNode(Integer.toString(kundennummer))); - rootElement.appendChild(nummerElement); - - // Name-Element - Element nameElement = doc.createElement("Name"); - nameElement.appendChild(doc.createTextNode(name)); - rootElement.appendChild(nameElement); - - // Anschrift-Element - Element anschriftElement = doc.createElement("Anschrift"); - anschriftElement.appendChild(doc.createTextNode(anschrift)); - rootElement.appendChild(anschriftElement); - - // Email-Element - Element emailElement = doc.createElement("Email"); - emailElement.appendChild(doc.createTextNode(email)); - rootElement.appendChild(emailElement); - - // Telefonnummer-Element - Element telefonnummerElement = doc.createElement("Telefonnummer"); - telefonnummerElement.appendChild(doc.createTextNode(telefonnummer)); - rootElement.appendChild(telefonnummerElement); - - // Kleinunternehmer-Element - Element kleinunternehmerElement = doc.createElement("Kleinunternehmer"); - kleinunternehmerElement.appendChild(doc.createTextNode(Boolean.toString(istKleinunternehmer))); - rootElement.appendChild(kleinunternehmerElement); - - // Ansprechpartner-Element - Element ansprechpartnerElement = doc.createElement("Ansprechpartner"); - ansprechpartnerElement.appendChild(doc.createTextNode(ansprechpartner)); - rootElement.appendChild(ansprechpartnerElement); - - // Transformieren und Speichern in Datei - TransformerFactory transformerFactory = TransformerFactory.newInstance(); - Transformer transformer = transformerFactory.newTransformer(); - transformer.setOutputProperty(OutputKeys.INDENT, "yes"); - DOMSource source = new DOMSource(doc); - StreamResult result = new StreamResult(new File(dateiPfad)); - transformer.transform(source, result); - - System.out.println("Die XML-Datei wurde erfolgreich gespeichert."); - - } catch (ParserConfigurationException | TransformerException e) { - e.printStackTrace(); - } - } - - // Methode zum Auslesen der Kundendaten aus einer XML-Datei - public void leseAusXML(String dateiPfad) { - try { - File xmlDatei = new File(dateiPfad); - DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance(); - DocumentBuilder dBuilder = dbFactory.newDocumentBuilder(); - Document doc = dBuilder.parse(xmlDatei); - doc.getDocumentElement().normalize(); - - NodeList nList = doc.getElementsByTagName("Kunde"); - - for (int temp = 0; temp < nList.getLength(); temp++) { - Node nNode = nList.item(temp); - - if (nNode.getNodeType() == Node.ELEMENT_NODE) { - Element eElement = (Element) nNode; - - this.kundennummer = Integer - .parseInt(eElement.getElementsByTagName("Kundennummer").item(0).getTextContent()); - this.name = eElement.getElementsByTagName("Name").item(0).getTextContent(); - this.anschrift = eElement.getElementsByTagName("Anschrift").item(0).getTextContent(); - this.email = eElement.getElementsByTagName("Email").item(0).getTextContent(); - this.telefonnummer = eElement.getElementsByTagName("Telefonnummer").item(0).getTextContent(); - this.istKleinunternehmer = Boolean - .parseBoolean(eElement.getElementsByTagName("Kleinunternehmer").item(0).getTextContent()); - this.ansprechpartner = eElement.getElementsByTagName("Ansprechpartner").item(0).getTextContent(); - } - } - - System.out.println("Die XML-Datei wurde erfolgreich gelesen."); - } catch (ParserConfigurationException | SAXException | IOException e) { - e.printStackTrace(); - } - } - - // Methode zum Auslesen der Kundendaten aus einer XML-Datei und in der Konsole - // ausgeben - public void leseUndGibAusXML(String dateiPfad) { - leseAusXML(dateiPfad); - anzeigen(); - } - - // Methode zur Eingabe der Kundendaten über die Konsole - public void eingabeDaten(Scanner scanner) { - System.out.print("Name: "); - this.name = scanner.nextLine(); - - System.out.print("Anschrift: "); - this.anschrift = scanner.nextLine(); - - System.out.print("Email: "); - this.email = scanner.nextLine(); - - System.out.print("Telefonnummer: "); - this.telefonnummer = scanner.nextLine(); - - System.out.print("Ist der Kunde ein Kleinunternehmer (true/false)? "); - this.istKleinunternehmer = Boolean.parseBoolean(scanner.nextLine()); - - System.out.print("Ansprechpartner: "); - this.ansprechpartner = scanner.nextLine(); - } - + // Methode zum Anzeigen der Kundendaten + public void anzeigen() { + System.out.println("Kundennummer: " + kundennummer); + System.out.println("Name: " + name); + System.out.println("Anschrift: " + anschrift); + System.out.println("Email: " + email); + System.out.println("Telefonnummer: " + telefonnummer); + System.out.println("Kleinunternehmer: " + (istKleinunternehmer ? "Ja" : "Nein")); + System.out.println("Ansprechpartner: " + ansprechpartner); + } } diff --git a/Faktura_Gruppe5/src/view/StartUpMenue.java b/Faktura_Gruppe5/src/view/StartUpMenue.java index fe28311..a3e5196 100644 --- a/Faktura_Gruppe5/src/view/StartUpMenue.java +++ b/Faktura_Gruppe5/src/view/StartUpMenue.java @@ -2,7 +2,11 @@ package view; import java.util.Scanner; +import controller.ArtikelController; +import controller.KundenController; import controller.MainController; +import model.Artikel; +import model.Kunde; public class StartUpMenue { @@ -31,15 +35,29 @@ public class StartUpMenue { choice = Integer.parseInt(scanner.nextLine()); switch (choice) { case 1: -// MainController.createCustomer(); + Kunde kunde = new Kunde(); + + KundenController.eingabeDaten(kunde, scanner); + KundenController.speichereAlsXML(kunde); break; case 2: -// MainController.viewCustomerData(); + System.out.println("Kundennummer eingeben:"); + int kundenWahl = Integer.parseInt(scanner.nextLine()); + Kunde kunde1 = KundenController.leseAusXML(kundenWahl); + kunde1.anzeigen(); + break; case 3: -// MainController.createArticle(); + Artikel artikel = new Artikel(); + + ArtikelController.eingabeDaten(artikel, scanner); + ArtikelController.speichereAlsXML(artikel); break; case 4: + System.out.println("Artikelnummer eingeben:"); + int artikelWahl = Integer.parseInt(scanner.nextLine()); + Artikel artikel1 = ArtikelController.leseAusXML(artikelWahl); + artikel1.anzeigen(); // MainController.viewArticleData(); break; case 9: