Ordner Struktur für KUNDEN und ARTIKEL erstellt.

FIRMENSTAMMDATEN(-CONTROLLER) Klasse erstellt. MAINCONTROLLER angepasst
und in MAIN eingefügt. STARTUPMENUE verbessert.
master
denis 2024-06-14 14:14:24 +02:00
parent 17d389ab2c
commit 4876b5b587
7 changed files with 389 additions and 22 deletions

View File

@ -20,9 +20,22 @@ import java.io.IOException;
import java.util.Scanner;
public class ArtikelController {
private String ordnerPfad = "artikel";
public ArtikelController() {
File ordner = new File(ordnerPfad);
if (!ordner.exists()) {
if (ordner.mkdir()) {
System.out.println("Der Ordner '" + ordnerPfad + "' wurde erfolgreich erstellt.");
} else {
System.err.println("Der Ordner '" + ordnerPfad + "' konnte nicht erstellt werden.");
}
}
}
// Methode zum Speichern der Artikeldaten im XML-Format
public static void speichereAlsXML(Artikel artikel) {
public void speichereAlsXML(Artikel artikel) {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
@ -62,7 +75,7 @@ public class ArtikelController {
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"));
StreamResult result = new StreamResult(new File(this.ordnerPfad + "/" + Integer.toString(artikel.getArtikelnummer()) + ".xml"));
transformer.transform(source, result);
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
@ -73,9 +86,9 @@ public class ArtikelController {
}
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei
public static Artikel leseAusXML(int artikelnummer) {
public Artikel leseAusXML(int artikelnummer) {
try {
File xmlDatei = new File(Integer.toString(artikelnummer) + ".xml");
File xmlDatei = new File(this.ordnerPfad + "/" + Integer.toString(artikelnummer) + ".xml");
Artikel artikel = new Artikel(artikelnummer);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
@ -108,13 +121,13 @@ public class ArtikelController {
}
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei und in der Konsole ausgeben
public static void leseUndGibAusXML(Artikel artikel, String dateiPfad) {
public 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) {
public void eingabeDaten(Artikel artikel, Scanner scanner) {
System.out.print("Einheit: ");
artikel.setEinheit(scanner.nextLine());

View File

@ -0,0 +1,250 @@
package controller;
import model.Firmenstammdaten;
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 FirmenstammdatenController {
private final String dateiPfad = "firmenstammdaten.xml";
// Methode zur Eingabe der Firmendaten über die Konsole
public void eingabeDaten(Firmenstammdaten daten, Scanner scanner) {
System.out.print("Firmenname: ");
daten.setFirmenname(scanner.nextLine());
System.out.print("Inhaber: ");
daten.setInhaber(scanner.nextLine());
System.out.print("Straße: ");
daten.setStrasse(scanner.nextLine());
System.out.print("PLZ: ");
daten.setPlz(scanner.nextLine());
System.out.print("Stadt: ");
daten.setStadt(scanner.nextLine());
System.out.print("Land: ");
daten.setLand(scanner.nextLine());
System.out.print("Telefon: ");
daten.setTelefon(scanner.nextLine());
System.out.print("Mobilnummer: ");
daten.setMobilnummer(scanner.nextLine());
System.out.print("Telefax: ");
daten.setTelefax(scanner.nextLine());
System.out.print("Email: ");
daten.setEmail(scanner.nextLine());
System.out.print("Webseite: ");
daten.setWebseite(scanner.nextLine());
System.out.print("Umsatzsteuer-ID-Nummer: ");
daten.setUmsatzsteuerIdNummer(scanner.nextLine());
System.out.print("Finanzamt: ");
daten.setFinanzamt(scanner.nextLine());
System.out.print("Bankname: ");
daten.setBankname(scanner.nextLine());
System.out.print("IBAN: ");
daten.setIban(scanner.nextLine());
System.out.print("BIC: ");
daten.setBic(scanner.nextLine());
System.out.print("Gläubiger-ID: ");
daten.setGlaeubigerID(scanner.nextLine());
this.speichereAlsXML(daten);
}
// Methode zum Speichern der Firmendaten im XML-Format
public void speichereAlsXML(Firmenstammdaten daten) {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.newDocument();
// Root-Element
Element rootElement = doc.createElement("Firmenstammdaten");
doc.appendChild(rootElement);
// Firmenname-Element
Element firmennameElement = doc.createElement("Firmenname");
firmennameElement.appendChild(doc.createTextNode(daten.getFirmenname()));
rootElement.appendChild(firmennameElement);
// Inhaber-Element
Element inhaberElement = doc.createElement("Inhaber");
inhaberElement.appendChild(doc.createTextNode(daten.getInhaber()));
rootElement.appendChild(inhaberElement);
// Straße-Element
Element strasseElement = doc.createElement("Strasse");
strasseElement.appendChild(doc.createTextNode(daten.getStrasse()));
rootElement.appendChild(strasseElement);
// PLZ-Element
Element plzElement = doc.createElement("PLZ");
plzElement.appendChild(doc.createTextNode(daten.getPlz()));
rootElement.appendChild(plzElement);
// Stadt-Element
Element stadtElement = doc.createElement("Stadt");
stadtElement.appendChild(doc.createTextNode(daten.getStadt()));
rootElement.appendChild(stadtElement);
// Land-Element
Element landElement = doc.createElement("Land");
landElement.appendChild(doc.createTextNode(daten.getLand()));
rootElement.appendChild(landElement);
// Telefon-Element
Element telefonElement = doc.createElement("Telefon");
telefonElement.appendChild(doc.createTextNode(daten.getTelefon()));
rootElement.appendChild(telefonElement);
// Mobilnummer-Element
Element mobilnummerElement = doc.createElement("Mobilnummer");
mobilnummerElement.appendChild(doc.createTextNode(daten.getMobilnummer()));
rootElement.appendChild(mobilnummerElement);
// Telefax-Element
Element telefaxElement = doc.createElement("Telefax");
telefaxElement.appendChild(doc.createTextNode(daten.getTelefax()));
rootElement.appendChild(telefaxElement);
// Email-Element
Element emailElement = doc.createElement("Email");
emailElement.appendChild(doc.createTextNode(daten.getEmail()));
rootElement.appendChild(emailElement);
// Webseite-Element
Element webseiteElement = doc.createElement("Webseite");
webseiteElement.appendChild(doc.createTextNode(daten.getWebseite()));
rootElement.appendChild(webseiteElement);
// Umsatzsteuer-ID-Nummer-Element
Element umsatzsteuerIdNummerElement = doc.createElement("UmsatzsteuerIdNummer");
umsatzsteuerIdNummerElement.appendChild(doc.createTextNode(daten.getUmsatzsteuerIdNummer()));
rootElement.appendChild(umsatzsteuerIdNummerElement);
// Finanzamt-Element
Element finanzamtElement = doc.createElement("Finanzamt");
finanzamtElement.appendChild(doc.createTextNode(daten.getFinanzamt()));
rootElement.appendChild(finanzamtElement);
// Bankname-Element
Element banknameElement = doc.createElement("Bankname");
banknameElement.appendChild(doc.createTextNode(daten.getBankname()));
rootElement.appendChild(banknameElement);
// IBAN-Element
Element ibanElement = doc.createElement("IBAN");
ibanElement.appendChild(doc.createTextNode(daten.getIban()));
rootElement.appendChild(ibanElement);
// BIC-Element
Element bicElement = doc.createElement("BIC");
bicElement.appendChild(doc.createTextNode(daten.getBic()));
rootElement.appendChild(bicElement);
// Gläubiger-ID-Element
Element glaeubigerIDElement = doc.createElement("GlaeubigerID");
glaeubigerIDElement.appendChild(doc.createTextNode(daten.getGlaeubigerID()));
rootElement.appendChild(glaeubigerIDElement);
// 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 Firmendaten aus einer XML-Datei
public Firmenstammdaten leseAusXML() {
Firmenstammdaten daten = new Firmenstammdaten();
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("Firmenstammdaten");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
daten.setFirmenname(eElement.getElementsByTagName("Firmenname").item(0).getTextContent());
daten.setInhaber(eElement.getElementsByTagName("Inhaber").item(0).getTextContent());
daten.setStrasse(eElement.getElementsByTagName("Strasse").item(0).getTextContent());
daten.setPlz(eElement.getElementsByTagName("PLZ").item(0).getTextContent());
daten.setStadt(eElement.getElementsByTagName("Stadt").item(0).getTextContent());
daten.setLand(eElement.getElementsByTagName("Land").item(0).getTextContent());
daten.setTelefon(eElement.getElementsByTagName("Telefon").item(0).getTextContent());
daten.setMobilnummer(eElement.getElementsByTagName("Mobilnummer").item(0).getTextContent());
daten.setTelefax(eElement.getElementsByTagName("Telefax").item(0).getTextContent());
daten.setEmail(eElement.getElementsByTagName("Email").item(0).getTextContent());
daten.setWebseite(eElement.getElementsByTagName("Webseite").item(0).getTextContent());
daten.setUmsatzsteuerIdNummer(eElement.getElementsByTagName("UmsatzsteuerIdNummer").item(0).getTextContent());
daten.setFinanzamt(eElement.getElementsByTagName("Finanzamt").item(0).getTextContent());
daten.setBankname(eElement.getElementsByTagName("Bankname").item(0).getTextContent());
daten.setIban(eElement.getElementsByTagName("IBAN").item(0).getTextContent());
daten.setBic(eElement.getElementsByTagName("BIC").item(0).getTextContent());
daten.setGlaeubigerID(eElement.getElementsByTagName("GlaeubigerID").item(0).getTextContent());
}
}
System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
return daten;
}
public void checkForCompanyData(Scanner scanner) {
File file = new File(this.dateiPfad);
if (!file.exists()) {
System.out.println("Das Programm kann noch nicht gestartet werden. Bitte geben Sie zuerst Ihre Firmenstammdaten ein.");
this.eingabeDaten(new Firmenstammdaten(), scanner);
}
}
}

View File

@ -20,9 +20,22 @@ import java.io.IOException;
import java.util.Scanner;
public class KundenController {
private String ordnerPfad = "kunde";
public KundenController() {
File ordner = new File(ordnerPfad);
if (!ordner.exists()) {
if (ordner.mkdir()) {
System.out.println("Der Ordner '" + ordnerPfad + "' wurde erfolgreich erstellt.");
} else {
System.err.println("Der Ordner '" + ordnerPfad + "' konnte nicht erstellt werden.");
}
}
}
// Methode zum Speichern der Kundendaten im XML-Format
public static void speichereAlsXML(Kunde kunde) {
public void speichereAlsXML(Kunde kunde) {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
@ -72,7 +85,7 @@ public class KundenController {
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
StreamResult result = new StreamResult(new File(Integer.toString(kunde.getKundennummer()) + ".xml"));
StreamResult result = new StreamResult(new File(ordnerPfad + "/" + Integer.toString(kunde.getKundennummer()) + ".xml"));
transformer.transform(source, result);
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
@ -83,9 +96,9 @@ public class KundenController {
}
// Methode zum Auslesen der Kundendaten aus einer XML-Datei
public static Kunde leseAusXML(int kundennummer) {
public Kunde leseAusXML(int kundennummer) {
try {
File xmlDatei = new File(Integer.toString(kundennummer) + ".xml");
File xmlDatei = new File(ordnerPfad + "/" + Integer.toString(kundennummer) + ".xml");
Kunde kunde = new Kunde(kundennummer);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
@ -121,13 +134,13 @@ public class KundenController {
}
// Methode zum Auslesen der Kundendaten aus einer XML-Datei und in der Konsole ausgeben
public static void leseUndGibAusXML(Kunde kunde, String dateiPfad) {
public 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) {
public void eingabeDaten(Kunde kunde, Scanner scanner) {
System.out.print("Name: ");
kunde.setName(scanner.nextLine());

View File

@ -5,7 +5,7 @@ import view.StartUpMenue;
public class Main {
public static void main(String[] args) {
new StartUpMenue(null);
new StartUpMenue(new MainController());
}
}

View File

@ -5,14 +5,28 @@ import model.Kunde;
public class MainController {
private KundenController kundenController;
private ArtikelController artikelController;
private FirmenstammdatenController firmenstammdatenController;
public MainController() {
this.kundenController = new KundenController();
this.artikelController = new ArtikelController();
this.firmenstammdatenController = new FirmenstammdatenController();
}
public KundenController getKundenController() {
return kundenController;
}
public ArtikelController getArtikelController() {
return artikelController;
}
public FirmenstammdatenController getFirmenstammdatenController() {
return this.firmenstammdatenController;
}
}

View File

@ -0,0 +1,74 @@
package model;
public class Firmenstammdaten {
private String firmenname;
private String inhaber;
private String strasse;
private String plz;
private String stadt;
private String land;
private String telefon;
private String mobilnummer;
private String telefax;
private String email;
private String webseite;
private String umsatzsteuerIdNummer;
private String finanzamt;
private String bankname;
private String iban;
private String bic;
private String glaeubigerID;
// Getter und Setter für alle Attribute
public String getFirmenname() { return firmenname; }
public void setFirmenname(String firmenname) { this.firmenname = firmenname; }
public String getInhaber() { return inhaber; }
public void setInhaber(String inhaber) { this.inhaber = inhaber; }
public String getStrasse() { return strasse; }
public void setStrasse(String strasse) { this.strasse = strasse; }
public String getPlz() { return plz; }
public void setPlz(String plz) { this.plz = plz; }
public String getStadt() { return stadt; }
public void setStadt(String stadt) { this.stadt = stadt; }
public String getLand() { return land; }
public void setLand(String land) { this.land = land; }
public String getTelefon() { return telefon; }
public void setTelefon(String telefon) { this.telefon = telefon; }
public String getMobilnummer() { return mobilnummer; }
public void setMobilnummer(String mobilnummer) { this.mobilnummer = mobilnummer; }
public String getTelefax() { return telefax; }
public void setTelefax(String telefax) { this.telefax = telefax; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public String getWebseite() { return webseite; }
public void setWebseite(String webseite) { this.webseite = webseite; }
public String getUmsatzsteuerIdNummer() { return umsatzsteuerIdNummer; }
public void setUmsatzsteuerIdNummer(String umsatzsteuerIdNummer) { this.umsatzsteuerIdNummer = umsatzsteuerIdNummer; }
public String getFinanzamt() { return finanzamt; }
public void setFinanzamt(String finanzamt) { this.finanzamt = finanzamt; }
public String getBankname() { return bankname; }
public void setBankname(String bankname) { this.bankname = bankname; }
public String getIban() { return iban; }
public void setIban(String iban) { this.iban = iban; }
public String getBic() { return bic; }
public void setBic(String bic) { this.bic = bic; }
public String getGlaeubigerID() { return glaeubigerID; }
public void setGlaeubigerID(String glaeubigerID) { this.glaeubigerID = glaeubigerID; }
}

View File

@ -12,7 +12,7 @@ public class StartUpMenue {
private MainController mainController;
public StartUpMenue(MainController mainController) { //selbst geschrieben
public StartUpMenue(MainController mainController) {
this.mainController = mainController;
this.showMenu();
@ -20,6 +20,9 @@ public class StartUpMenue {
public void showMenu() {
Scanner scanner = new Scanner(System.in);
this.mainController.getFirmenstammdatenController().checkForCompanyData(scanner);
int choice = 0;
while (choice != 9) {
@ -36,27 +39,27 @@ public class StartUpMenue {
switch (choice) {
case 1:
Kunde kunde = new Kunde();
KundenController.eingabeDaten(kunde, scanner);
KundenController.speichereAlsXML(kunde);
this.mainController.getKundenController().eingabeDaten(kunde, scanner);
this.mainController.getKundenController().speichereAlsXML(kunde);
break;
case 2:
System.out.println("Kundennummer eingeben:");
int kundenWahl = Integer.parseInt(scanner.nextLine());
Kunde kunde1 = KundenController.leseAusXML(kundenWahl);
Kunde kunde1 = this.mainController.getKundenController().leseAusXML(kundenWahl);
kunde1.anzeigen();
break;
case 3:
Artikel artikel = new Artikel();
ArtikelController.eingabeDaten(artikel, scanner);
ArtikelController.speichereAlsXML(artikel);
this.mainController.getArtikelController().eingabeDaten(artikel, scanner);
this.mainController.getArtikelController().speichereAlsXML(artikel);
break;
case 4:
System.out.println("Artikelnummer eingeben:");
int artikelWahl = Integer.parseInt(scanner.nextLine());
Artikel artikel1 = ArtikelController.leseAusXML(artikelWahl);
Artikel artikel1 = this.mainController.getArtikelController().leseAusXML(artikelWahl);
artikel1.anzeigen();
// MainController.viewArticleData();
break;