diff --git a/Faktura_Gruppe5/firmenstammdaten.xml b/Faktura_Gruppe5/firmenstammdaten.xml
new file mode 100644
index 0000000..7aabcd0
--- /dev/null
+++ b/Faktura_Gruppe5/firmenstammdaten.xml
@@ -0,0 +1,20 @@
+
+
+ Denis
+ Denis
+ Musterweg 1
+ 83636
+ Mannheim
+ Deutschland
+ 026373344
+ 02237353353
+ 03736376363533
+ denis@gmail.com
+ www.abc.de
+ 203636820632
+ Mannheim
+ Deutsche Bank
+ DE 3836823728
+ 2730353
+ 1
+
diff --git a/Faktura_Gruppe5/kunde/1.xml b/Faktura_Gruppe5/kunde/1.xml
new file mode 100644
index 0000000..203fc94
--- /dev/null
+++ b/Faktura_Gruppe5/kunde/1.xml
@@ -0,0 +1,10 @@
+
+
+ 1
+ Denis
+ aadada
+ dadada
+ daadad
+ true
+ sdsds
+
diff --git a/Faktura_Gruppe5/kunde/2.xml b/Faktura_Gruppe5/kunde/2.xml
new file mode 100644
index 0000000..f7a8361
--- /dev/null
+++ b/Faktura_Gruppe5/kunde/2.xml
@@ -0,0 +1,10 @@
+
+
+ 2
+ f
+ frrf
+ rfrfr
+ frfrf
+ false
+ ededed
+
diff --git a/Faktura_Gruppe5/src/controller/AngebotController.java b/Faktura_Gruppe5/src/controller/AngebotController.java
new file mode 100644
index 0000000..9ec42f3
--- /dev/null
+++ b/Faktura_Gruppe5/src/controller/AngebotController.java
@@ -0,0 +1,281 @@
+package controller;
+
+import model.Angebot;
+import model.Artikel;
+import model.Kunde;
+
+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.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Scanner;
+import java.lang.reflect.Field;
+
+public class AngebotController {
+ private final static String ordnerPfad = "angebote";
+ private static KundenController kundenController;
+ private static ArtikelController artikelController;
+
+ public AngebotController() {
+ File ordner = new File(ordnerPfad);
+ if (!ordner.exists()) {
+ ordner.mkdir();
+ }
+ kundenController = new KundenController();
+ artikelController = new ArtikelController();
+ }
+
+ // Methode zum Überprüfen, ob eine Angebotsnummer bereits existiert
+ private boolean angebotsnummerExistiert(int angebotsnummer) {
+ File xmlDatei = new File(ordnerPfad + "/" + angebotsnummer + ".xml");
+ return xmlDatei.exists();
+ }
+
+ // Methode zur Generierung einer neuen, eindeutigen Angebotsnummer
+ private int generiereNeueAngebotsnummer() {
+ int neueAngebotsnummer = 1;
+ while (angebotsnummerExistiert(neueAngebotsnummer)) {
+ neueAngebotsnummer++;
+ }
+ return neueAngebotsnummer;
+ }
+
+ public Angebot erstelleAngebot() {
+ Scanner scanner = new Scanner(System.in);
+
+ // Kundennummer abfragen
+ System.out.print("Bitte geben Sie die Kundennummer ein: ");
+ int kundennummer = scanner.nextInt();
+ Kunde kunde = kundenController.leseAusXML(kundennummer);
+
+ if (kunde == null) {
+ System.out.println("Kunde nicht gefunden.");
+ return null;
+ }
+
+ List artikelListe = new ArrayList<>();
+ List mengeListe = new ArrayList<>();
+
+ while (true) {
+ // Artikelnummer und Menge abfragen
+ System.out.print("Bitte geben Sie die Artikelnummer ein (oder -1 zum Beenden): ");
+ int artikelnummer = scanner.nextInt();
+ if (artikelnummer == -1) {
+ break;
+ }
+
+ Artikel artikel = artikelController.leseAusXML(artikelnummer);
+ if (artikel == null) {
+ System.out.println("Artikel nicht gefunden.");
+ continue;
+ }
+
+ System.out.print("Bitte geben Sie die Menge ein: ");
+ int menge = scanner.nextInt();
+
+ artikelListe.add(artikel);
+ mengeListe.add(menge);
+ }
+
+ if (artikelListe.isEmpty()) {
+ System.out.println("Kein Artikel hinzugefügt. Angebot wird nicht erstellt.");
+ return null;
+ }
+
+ Angebot angebot = new Angebot();
+ angebot.setAngebotnummer(generiereNeueAngebotsnummer());
+ angebot.setKunde(kunde);
+ angebot.setArtikelListe(artikelListe);
+ angebot.setMenge(mengeListe);
+
+ // Summe berechnen
+ double summeNetto = 0.0;
+ double summeBrutto = 0.0;
+ for (int i = 0; i < artikelListe.size(); i++) {
+ Artikel artikel = artikelListe.get(i);
+ int menge = mengeListe.get(i);
+ summeNetto += artikel.getNettopreis() * menge;
+ summeBrutto += artikel.getBruttopreis() * menge;
+ }
+ angebot.setSummeNetto(summeNetto);
+ angebot.setSummeBrutto(summeBrutto);
+
+ // Angebot anzeigen
+ angebot.anzeigen();
+
+ // Angebot speichern
+ speichereAngebot(angebot);
+ return angebot;
+ }
+
+ private void speichereAngebot(Angebot angebot) {
+ try {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.newDocument();
+
+ // Root-Element
+ Element rootElement = doc.createElement("Angebot");
+ doc.appendChild(rootElement);
+
+ // Angebotsnummer-Element
+ Element nummerElement = doc.createElement("Angebotsnummer");
+ nummerElement.appendChild(doc.createTextNode(Integer.toString(angebot.getAngebotnummer())));
+ rootElement.appendChild(nummerElement);
+
+ // Erstellungsdatum-Element
+ Element datumElement = doc.createElement("Erstellungsdatum");
+ datumElement.appendChild(doc.createTextNode(angebot.getErstellungsdatum().toString()));
+ rootElement.appendChild(datumElement);
+
+ // Kunde-Element
+ Element kundeElement = doc.createElement("Kunde");
+ rootElement.appendChild(kundeElement);
+
+ // Kundennummer-Element
+ Element kundennummerElement = doc.createElement("Kundennummer");
+ kundennummerElement.appendChild(doc.createTextNode(Integer.toString(angebot.getKunde().getKundennummer())));
+ kundeElement.appendChild(kundennummerElement);
+
+ // Artikel-Element
+ Element artikelElement = doc.createElement("Artikel");
+ rootElement.appendChild(artikelElement);
+
+ for (int i = 0; i < angebot.getArtikelListe().size(); i++) {
+ Artikel artikel = angebot.getArtikelListe().get(i);
+ int menge = angebot.getMenge().get(i);
+
+ Element artikelDetailsElement = doc.createElement("ArtikelDetails");
+
+ Element artikelNummerElement = doc.createElement("Artikelnummer");
+ artikelNummerElement.appendChild(doc.createTextNode(Integer.toString(artikel.getArtikelnummer())));
+ artikelDetailsElement.appendChild(artikelNummerElement);
+
+ Element artikelMengeElement = doc.createElement("Menge");
+ artikelMengeElement.appendChild(doc.createTextNode(Integer.toString(menge)));
+ artikelDetailsElement.appendChild(artikelMengeElement);
+
+ Element artikelNettoElement = doc.createElement("Nettopreis");
+ artikelNettoElement.appendChild(doc.createTextNode(Double.toString(artikel.getNettopreis())));
+ artikelDetailsElement.appendChild(artikelNettoElement);
+
+ Element artikelBruttoElement = doc.createElement("Bruttopreis");
+ artikelBruttoElement.appendChild(doc.createTextNode(Double.toString(artikel.getBruttopreis())));
+ artikelDetailsElement.appendChild(artikelBruttoElement);
+
+ artikelElement.appendChild(artikelDetailsElement);
+ }
+
+ // Summe Netto-Element
+ Element summeNettoElement = doc.createElement("SummeNetto");
+ summeNettoElement.appendChild(doc.createTextNode(Double.toString(angebot.getSummeNetto())));
+ rootElement.appendChild(summeNettoElement);
+
+ // Summe Brutto-Element
+ Element summeBruttoElement = doc.createElement("SummeBrutto");
+ summeBruttoElement.appendChild(doc.createTextNode(Double.toString(angebot.getSummeBrutto())));
+ rootElement.appendChild(summeBruttoElement);
+
+ // 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(ordnerPfad + "/" + angebot.getAngebotnummer() + ".xml"));
+ transformer.transform(source, result);
+
+ System.out.println("Angebot wurde erfolgreich gespeichert.");
+ } catch (ParserConfigurationException | TransformerException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public Angebot leseAusXML(int angebotsnummer) {
+ try {
+ File xmlDatei = new File(ordnerPfad + "/" + angebotsnummer + ".xml");
+ if (!xmlDatei.exists()) {
+ return null;
+ }
+
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.parse(xmlDatei);
+ doc.getDocumentElement().normalize();
+
+ Angebot angebot = new Angebot();
+ NodeList nList = doc.getElementsByTagName("Angebot");
+
+ for (int temp = 0; temp < nList.getLength(); temp++) {
+ Node nNode = nList.item(temp);
+
+ if (nNode.getNodeType() == Node.ELEMENT_NODE) {
+ Element eElement = (Element) nNode;
+
+ // Angebotsnummer setzen
+ int nummer = Integer.parseInt(eElement.getElementsByTagName("Angebotsnummer").item(0).getTextContent());
+ Angebot.setAktuelleAngebotnummer(nummer - 1); // Damit die Angebotsnummer korrekt gesetzt wird
+ angebot = new Angebot(); // Neues Angebot-Objekt erstellen mit der richtigen Angebotsnummer
+
+ // Erstellungsdatum setzen
+ String datumString = eElement.getElementsByTagName("Erstellungsdatum").item(0).getTextContent();
+ SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", java.util.Locale.ENGLISH);
+ Date erstellungsdatum = dateFormat.parse(datumString);
+
+ // Reflektiere das Datum im Angebot-Objekt
+ Field field = Angebot.class.getDeclaredField("erstellungsdatum");
+ field.setAccessible(true);
+ field.set(angebot, erstellungsdatum);
+
+ // Kunde setzen
+ int kundennummer = Integer.parseInt(eElement.getElementsByTagName("Kundennummer").item(0).getTextContent());
+ Kunde kunde = kundenController.leseAusXML(kundennummer);
+ angebot.setKunde(kunde);
+
+ // Artikel und Menge setzen
+ List artikelListe = new ArrayList<>();
+ List mengeListe = new ArrayList<>();
+ NodeList artikelNodes = eElement.getElementsByTagName("ArtikelDetails");
+ for (int i = 0; i < artikelNodes.getLength(); i++) {
+ Element artikelElement = (Element) artikelNodes.item(i);
+ int artikelnummer = Integer.parseInt(artikelElement.getElementsByTagName("Artikelnummer").item(0).getTextContent());
+ Artikel artikel = artikelController.leseAusXML(artikelnummer);
+ int menge = Integer.parseInt(artikelElement.getElementsByTagName("Menge").item(0).getTextContent());
+ artikelListe.add(artikel);
+ mengeListe.add(menge);
+ }
+ angebot.setArtikelListe(artikelListe);
+ angebot.setMenge(mengeListe);
+
+ // Summen setzen
+ angebot.setSummeNetto(Double.parseDouble(eElement.getElementsByTagName("SummeNetto").item(0).getTextContent()));
+ angebot.setSummeBrutto(Double.parseDouble(eElement.getElementsByTagName("SummeBrutto").item(0).getTextContent()));
+ }
+ }
+
+ System.out.println("Angebot wurde erfolgreich gelesen.");
+ return angebot;
+ } catch (ParserConfigurationException | SAXException | IOException | ParseException | NoSuchFieldException | IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/Faktura_Gruppe5/src/controller/ArtikelController.java b/Faktura_Gruppe5/src/controller/ArtikelController.java
index 2d236bf..d151524 100644
--- a/Faktura_Gruppe5/src/controller/ArtikelController.java
+++ b/Faktura_Gruppe5/src/controller/ArtikelController.java
@@ -20,10 +20,10 @@ import java.io.IOException;
import java.util.Scanner;
public class ArtikelController {
-
- private String ordnerPfad = "artikel";
-
- public ArtikelController() {
+
+ private String ordnerPfad = "artikel";
+
+ public ArtikelController() {
File ordner = new File(ordnerPfad);
if (!ordner.exists()) {
if (ordner.mkdir()) {
@@ -33,7 +33,22 @@ public class ArtikelController {
}
}
}
-
+
+ // Methode zum Überprüfen, ob eine Artikelnummer bereits existiert
+ private boolean artikelnummerExistiert(int artikelnummer) {
+ File xmlDatei = new File(ordnerPfad + "/" + artikelnummer + ".xml");
+ return xmlDatei.exists();
+ }
+
+ // Methode zur Generierung einer neuen, eindeutigen Artikelnummer
+ private int generiereNeueArtikelnummer() {
+ int neueArtikelnummer = 1;
+ while (artikelnummerExistiert(neueArtikelnummer)) {
+ neueArtikelnummer++;
+ }
+ return neueArtikelnummer;
+ }
+
// Methode zum Speichern der Artikeldaten im XML-Format
public void speichereAlsXML(Artikel artikel) {
try {
@@ -70,12 +85,17 @@ public class ArtikelController {
mehrwertsteuersatzElement.appendChild(doc.createTextNode(Double.toString(artikel.getMehrwertsteuersatz())));
rootElement.appendChild(mehrwertsteuersatzElement);
+ // Bruttopreis-Element
+ Element bruttopreisElement = doc.createElement("Bruttopreis");
+ bruttopreisElement.appendChild(doc.createTextNode(Double.toString(artikel.getBruttopreis())));
+ rootElement.appendChild(bruttopreisElement);
+
// 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(this.ordnerPfad + "/" + Integer.toString(artikel.getArtikelnummer()) + ".xml"));
+ StreamResult result = new StreamResult(new File(this.ordnerPfad + "/" + artikel.getArtikelnummer() + ".xml"));
transformer.transform(source, result);
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
@@ -88,7 +108,7 @@ public class ArtikelController {
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei
public Artikel leseAusXML(int artikelnummer) {
try {
- File xmlDatei = new File(this.ordnerPfad + "/" + Integer.toString(artikelnummer) + ".xml");
+ File xmlDatei = new File(this.ordnerPfad + "/" + artikelnummer + ".xml");
Artikel artikel = new Artikel(artikelnummer);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
@@ -108,16 +128,16 @@ public class ArtikelController {
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()));
+ artikel.setBruttopreis(Double.parseDouble(eElement.getElementsByTagName("Bruttopreis").item(0).getTextContent()));
}
}
-
-
+
System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
return artikel;
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
}
- return null;
+ return null;
}
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei und in der Konsole ausgeben
@@ -128,6 +148,8 @@ public class ArtikelController {
// Methode zur Eingabe der Artikeldaten über die Konsole
public void eingabeDaten(Artikel artikel, Scanner scanner) {
+ artikel.setArtikelnummer(generiereNeueArtikelnummer());
+
System.out.print("Einheit: ");
artikel.setEinheit(scanner.nextLine());
@@ -139,5 +161,8 @@ public class ArtikelController {
System.out.print("Mehrwertsteuersatz: ");
artikel.setMehrwertsteuersatz(Double.parseDouble(scanner.nextLine()));
+
+ // Der Bruttopreis wird automatisch berechnet und gesetzt
+ artikel.setBruttopreis(artikel.getNettopreis() + (artikel.getNettopreis() * artikel.getMehrwertsteuersatz() / 100));
}
}
diff --git a/Faktura_Gruppe5/src/controller/AuftragsbestaetigungController.java b/Faktura_Gruppe5/src/controller/AuftragsbestaetigungController.java
new file mode 100644
index 0000000..faa56f3
--- /dev/null
+++ b/Faktura_Gruppe5/src/controller/AuftragsbestaetigungController.java
@@ -0,0 +1,163 @@
+package controller;
+
+import model.Auftragsbestaetigung;
+import model.Angebot;
+import model.Artikel;
+import model.Kunde;
+
+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.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Scanner;
+
+public class AuftragsbestaetigungController {
+ private final String ordnerPfad = "auftragsbestaetigungen";
+ private AngebotController angebotController;
+
+ public AuftragsbestaetigungController() {
+ angebotController = new AngebotController();
+ File ordner = new File(ordnerPfad);
+ if (!ordner.exists()) {
+ ordner.mkdir();
+ }
+ }
+
+ // Methode zum Überprüfen, ob eine Auftragsnummer bereits existiert
+ private boolean auftragsnummerExistiert(int auftragsnummer) {
+ File xmlDatei = new File(ordnerPfad + "/" + auftragsnummer + ".xml");
+ return xmlDatei.exists();
+ }
+
+ // Methode zur Generierung einer neuen, eindeutigen Auftragsnummer
+ private int generiereNeueAuftragsnummer() {
+ int neueAuftragsnummer = 1;
+ while (auftragsnummerExistiert(neueAuftragsnummer)) {
+ neueAuftragsnummer++;
+ }
+ return neueAuftragsnummer;
+ }
+
+ // Methode zum Speichern der Auftragsbestaetigung im XML-Format
+ public void speichereAlsXML(Auftragsbestaetigung auftragsbestaetigung) {
+ try {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.newDocument();
+
+ // Root-Element
+ Element rootElement = doc.createElement("Auftragsbestaetigung");
+ doc.appendChild(rootElement);
+
+ // Auftragsnummer-Element
+ Element nummerElement = doc.createElement("Auftragsnummer");
+ nummerElement.appendChild(doc.createTextNode(Integer.toString(auftragsbestaetigung.getAuftragsnummer())));
+ rootElement.appendChild(nummerElement);
+
+ // Auftragsdatum-Element
+ Element datumElement = doc.createElement("Auftragsdatum");
+ datumElement.appendChild(doc.createTextNode(String.valueOf(auftragsbestaetigung.getAuftragsdatum())));
+ rootElement.appendChild(datumElement);
+
+ // Angebot-Element
+ Element angebotElement = doc.createElement("Angebot");
+ rootElement.appendChild(angebotElement);
+
+ // Angebotsnummer-Element
+ Element angebotsnummerElement = doc.createElement("Angebotsnummer");
+ angebotsnummerElement.appendChild(doc.createTextNode(Integer.toString(auftragsbestaetigung.getAngebot().getAngebotnummer())));
+ angebotElement.appendChild(angebotsnummerElement);
+
+ // 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(ordnerPfad + "/" + auftragsbestaetigung.getAuftragsnummer() + ".xml"));
+ transformer.transform(source, result);
+
+ System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
+
+ } catch (ParserConfigurationException | TransformerException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // Methode zum Auslesen der Auftragsbestaetigung aus einer XML-Datei
+ public Auftragsbestaetigung leseAusXML(int auftragsnummer) {
+ try {
+ File xmlDatei = new File(ordnerPfad + "/" + auftragsnummer + ".xml");
+ if (!xmlDatei.exists()) {
+ return null;
+ }
+
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.parse(xmlDatei);
+ doc.getDocumentElement().normalize();
+
+ Auftragsbestaetigung auftragsbestaetigung = new Auftragsbestaetigung();
+ NodeList nList = doc.getElementsByTagName("Auftragsbestaetigung");
+
+ for (int temp = 0; temp < nList.getLength(); temp++) {
+ Node nNode = nList.item(temp);
+
+ if (nNode.getNodeType() == Node.ELEMENT_NODE) {
+ Element eElement = (Element) nNode;
+
+ auftragsbestaetigung.setAuftragsnummer(Integer.parseInt(eElement.getElementsByTagName("Auftragsnummer").item(0).getTextContent()));
+
+ String datumString = eElement.getElementsByTagName("Auftragsdatum").item(0).getTextContent();
+// SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", java.util.Locale.ENGLISH);
+ int auftragsdatum = Integer.parseInt(datumString);
+ auftragsbestaetigung.setAuftragsdatum(auftragsdatum);
+
+ int angebotsnummer = Integer.parseInt(eElement.getElementsByTagName("Angebotsnummer").item(0).getTextContent());
+ Angebot angebot = angebotController.leseAusXML(angebotsnummer);
+ auftragsbestaetigung.setAngebot(angebot);
+ }
+ }
+
+ System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
+ return auftragsbestaetigung;
+ } catch (ParserConfigurationException | SAXException | IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public Auftragsbestaetigung erstelleAuftragsbestaetigung(Angebot angebot) {
+ Scanner scanner = new Scanner(System.in);
+
+ System.out.print("Bitte geben Sie die Auftragsbestaetigungsdatum ein: ");
+ int datum = scanner.nextInt();
+ Auftragsbestaetigung auftragsbestaetigung = new Auftragsbestaetigung();
+ auftragsbestaetigung.setAuftragsnummer(generiereNeueAuftragsnummer());
+ auftragsbestaetigung.setAngebot(angebot);
+ auftragsbestaetigung.setAuftragsdatum(datum);
+// Auftragsbestaetigung auftragsbestaetigung = new Auftragsbestaetigung(angebot, datum);
+ speichereAlsXML(auftragsbestaetigung);
+
+ return auftragsbestaetigung;
+
+ }
+}
diff --git a/Faktura_Gruppe5/src/controller/FirmenstammdatenController.java b/Faktura_Gruppe5/src/controller/FirmenstammdatenController.java
index 50c2551..966acfd 100644
--- a/Faktura_Gruppe5/src/controller/FirmenstammdatenController.java
+++ b/Faktura_Gruppe5/src/controller/FirmenstammdatenController.java
@@ -1,6 +1,7 @@
package controller;
import model.Firmenstammdaten;
+import model.Anschrift;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -33,17 +34,17 @@ public class FirmenstammdatenController {
System.out.print("Inhaber: ");
daten.setInhaber(scanner.nextLine());
+ Anschrift anschrift = new Anschrift();
System.out.print("Straße: ");
- daten.setStrasse(scanner.nextLine());
+ anschrift.setStrasse(scanner.nextLine());
System.out.print("PLZ: ");
- daten.setPlz(scanner.nextLine());
+ anschrift.setPlz(scanner.nextLine());
- System.out.print("Stadt: ");
- daten.setStadt(scanner.nextLine());
+ System.out.print("Ort: ");
+ anschrift.setOrt(scanner.nextLine());
- System.out.print("Land: ");
- daten.setLand(scanner.nextLine());
+ daten.setAnschrift(anschrift);
System.out.print("Telefon: ");
daten.setTelefon(scanner.nextLine());
@@ -102,25 +103,22 @@ public class FirmenstammdatenController {
inhaberElement.appendChild(doc.createTextNode(daten.getInhaber()));
rootElement.appendChild(inhaberElement);
- // Straße-Element
+ // Anschrift-Element
+ Element anschriftElement = doc.createElement("Anschrift");
+
Element strasseElement = doc.createElement("Strasse");
- strasseElement.appendChild(doc.createTextNode(daten.getStrasse()));
- rootElement.appendChild(strasseElement);
+ strasseElement.appendChild(doc.createTextNode(daten.getAnschrift().getStrasse()));
+ anschriftElement.appendChild(strasseElement);
- // PLZ-Element
Element plzElement = doc.createElement("PLZ");
- plzElement.appendChild(doc.createTextNode(daten.getPlz()));
- rootElement.appendChild(plzElement);
+ plzElement.appendChild(doc.createTextNode(daten.getAnschrift().getPlz()));
+ anschriftElement.appendChild(plzElement);
- // Stadt-Element
- Element stadtElement = doc.createElement("Stadt");
- stadtElement.appendChild(doc.createTextNode(daten.getStadt()));
- rootElement.appendChild(stadtElement);
+ Element ortElement = doc.createElement("Ort");
+ ortElement.appendChild(doc.createTextNode(daten.getAnschrift().getOrt()));
+ anschriftElement.appendChild(ortElement);
- // Land-Element
- Element landElement = doc.createElement("Land");
- landElement.appendChild(doc.createTextNode(daten.getLand()));
- rootElement.appendChild(landElement);
+ rootElement.appendChild(anschriftElement);
// Telefon-Element
Element telefonElement = doc.createElement("Telefon");
@@ -212,10 +210,14 @@ public class FirmenstammdatenController {
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());
+
+ Element anschriftElement = (Element) eElement.getElementsByTagName("Anschrift").item(0);
+ Anschrift anschrift = new Anschrift();
+ anschrift.setStrasse(anschriftElement.getElementsByTagName("Strasse").item(0).getTextContent());
+ anschrift.setPlz(anschriftElement.getElementsByTagName("PLZ").item(0).getTextContent());
+ anschrift.setOrt(anschriftElement.getElementsByTagName("Ort").item(0).getTextContent());
+ daten.setAnschrift(anschrift);
+
daten.setTelefon(eElement.getElementsByTagName("Telefon").item(0).getTextContent());
daten.setMobilnummer(eElement.getElementsByTagName("Mobilnummer").item(0).getTextContent());
daten.setTelefax(eElement.getElementsByTagName("Telefax").item(0).getTextContent());
@@ -236,15 +238,13 @@ public class FirmenstammdatenController {
}
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);
- }
-
+ 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);
+ }
}
-
-}
\ No newline at end of file
+}
diff --git a/Faktura_Gruppe5/src/controller/KundenController.java b/Faktura_Gruppe5/src/controller/KundenController.java
index f9d105d..53d13a8 100644
--- a/Faktura_Gruppe5/src/controller/KundenController.java
+++ b/Faktura_Gruppe5/src/controller/KundenController.java
@@ -1,5 +1,6 @@
package controller;
+import model.Anschrift;
import model.Kunde;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
@@ -20,10 +21,10 @@ import java.io.IOException;
import java.util.Scanner;
public class KundenController {
-
- private String ordnerPfad = "kunde";
-
- public KundenController() {
+
+ private String ordnerPfad = "kunde";
+
+ public KundenController() {
File ordner = new File(ordnerPfad);
if (!ordner.exists()) {
if (ordner.mkdir()) {
@@ -34,6 +35,21 @@ public class KundenController {
}
}
+ // Methode zum Überprüfen, ob eine Kundennummer bereits existiert
+ private boolean kundennummerExistiert(int kundennummer) {
+ File xmlDatei = new File(ordnerPfad + "/" + kundennummer + ".xml");
+ return xmlDatei.exists();
+ }
+
+ // Methode zur Generierung einer neuen, eindeutigen Kundennummer
+ private int generiereNeueKundennummer() {
+ int neueKundennummer = 1;
+ while (kundennummerExistiert(neueKundennummer)) {
+ neueKundennummer++;
+ }
+ return neueKundennummer;
+ }
+
// Methode zum Speichern der Kundendaten im XML-Format
public void speichereAlsXML(Kunde kunde) {
try {
@@ -57,9 +73,21 @@ public class KundenController {
// Anschrift-Element
Element anschriftElement = doc.createElement("Anschrift");
- anschriftElement.appendChild(doc.createTextNode(kunde.getAnschrift()));
rootElement.appendChild(anschriftElement);
+ // Anschrift Unterelemente
+ Element strasseElement = doc.createElement("Strasse");
+ strasseElement.appendChild(doc.createTextNode(kunde.getAnschrift().getStrasse()));
+ anschriftElement.appendChild(strasseElement);
+
+ Element plzElement = doc.createElement("PLZ");
+ plzElement.appendChild(doc.createTextNode(kunde.getAnschrift().getPlz()));
+ anschriftElement.appendChild(plzElement);
+
+ Element ortElement = doc.createElement("Ort");
+ ortElement.appendChild(doc.createTextNode(kunde.getAnschrift().getOrt()));
+ anschriftElement.appendChild(ortElement);
+
// Email-Element
Element emailElement = doc.createElement("Email");
emailElement.appendChild(doc.createTextNode(kunde.getEmail()));
@@ -85,7 +113,7 @@ public class KundenController {
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
DOMSource source = new DOMSource(doc);
- StreamResult result = new StreamResult(new File(ordnerPfad + "/" + Integer.toString(kunde.getKundennummer()) + ".xml"));
+ StreamResult result = new StreamResult(new File(ordnerPfad + "/" + kunde.getKundennummer() + ".xml"));
transformer.transform(source, result);
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
@@ -98,7 +126,7 @@ public class KundenController {
// Methode zum Auslesen der Kundendaten aus einer XML-Datei
public Kunde leseAusXML(int kundennummer) {
try {
- File xmlDatei = new File(ordnerPfad + "/" + Integer.toString(kundennummer) + ".xml");
+ File xmlDatei = new File(ordnerPfad + "/" + kundennummer + ".xml");
Kunde kunde = new Kunde(kundennummer);
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
@@ -115,48 +143,123 @@ public class KundenController {
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());
+
+ // Anschrift
+ Element anschriftElement = (Element) eElement.getElementsByTagName("Anschrift").item(0);
+ String strasse = anschriftElement.getElementsByTagName("Strasse").item(0).getTextContent();
+ String plz = anschriftElement.getElementsByTagName("PLZ").item(0).getTextContent();
+ String ort = anschriftElement.getElementsByTagName("Ort").item(0).getTextContent();
+ Anschrift anschrift = new Anschrift(strasse, plz, ort);
+ kunde.setAnschrift(anschrift);
+
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 void leseUndGibAusXML(Kunde kunde, String dateiPfad) {
- leseUndGibAusXML(kunde, dateiPfad);
- kunde.anzeigen();
+ return null;
}
// Methode zur Eingabe der Kundendaten über die Konsole
public void eingabeDaten(Kunde kunde, Scanner scanner) {
- System.out.print("Name: ");
- kunde.setName(scanner.nextLine());
+ kunde.setKundennummer(generiereNeueKundennummer());
- System.out.print("Anschrift: ");
- kunde.setAnschrift(scanner.nextLine());
+ // Name
+ String name;
+ do {
+ System.out.print("Name: ");
+ name = scanner.nextLine();
+ if (name.isEmpty()) {
+ System.out.println("Name darf nicht leer sein. Bitte erneut eingeben.");
+ }
+ } while (name.isEmpty());
+ kunde.setName(name);
- System.out.print("Email: ");
- kunde.setEmail(scanner.nextLine());
+ // Straße
+ String strasse;
+ do {
+ System.out.print("Straße: ");
+ strasse = scanner.nextLine();
+ if (strasse.isEmpty()) {
+ System.out.println("Straße darf nicht leer sein. Bitte erneut eingeben.");
+ }
+ } while (strasse.isEmpty());
- System.out.print("Telefonnummer: ");
- kunde.setTelefonnummer(scanner.nextLine());
+ // PLZ
+ String plz;
+ do {
+ System.out.print("PLZ: ");
+ plz = scanner.nextLine();
+ if (!plz.matches("\\d{5}")) { // Prüft, ob die PLZ 5-stellig ist und nur Ziffern enthält
+ System.out.println("PLZ muss 5-stellig und numerisch sein. Bitte erneut eingeben.");
+ }
+ } while (!plz.matches("\\d{5}"));
- System.out.print("Ist der Kunde ein Kleinunternehmer (true/false)? ");
- kunde.setIstKleinunternehmer(Boolean.parseBoolean(scanner.nextLine()));
+ // Ort
+ String ort;
+ do {
+ System.out.print("Ort: ");
+ ort = scanner.nextLine();
+ if (ort.isEmpty()) {
+ System.out.println("Ort darf nicht leer sein. Bitte erneut eingeben.");
+ }
+ } while (ort.isEmpty());
- System.out.print("Ansprechpartner: ");
- kunde.setAnsprechpartner(scanner.nextLine());
+ Anschrift anschrift = new Anschrift(strasse, plz, ort);
+ kunde.setAnschrift(anschrift);
+
+ // Email
+ String email;
+ do {
+ System.out.print("Email: ");
+ email = scanner.nextLine();
+ if (!email.matches("^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$")) { // Einfache E-Mail-Validierung
+ System.out.println("Bitte geben Sie eine gültige Email-Adresse ein.");
+ }
+ } while (!email.matches("^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$"));
+ kunde.setEmail(email);
+
+ // Telefonnummer
+ String telefonnummer;
+ do {
+ System.out.print("Telefonnummer: ");
+ telefonnummer = scanner.nextLine();
+ if (!telefonnummer.matches("\\+?[0-9]{10,15}")) { // Prüft, ob die Telefonnummer zwischen 10 und 15 Ziffern hat
+ System.out.println("Telefonnummer muss zwischen 10 und 15 Ziffern lang sein. Bitte erneut eingeben.");
+ }
+ } while (!telefonnummer.matches("\\+?[0-9]{10,15}"));
+ kunde.setTelefonnummer(telefonnummer);
+
+ // Kleinunternehmer
+ Boolean istKleinunternehmer = null;
+ do {
+ System.out.print("Ist der Kunde ein Kleinunternehmer (true/false)? ");
+ String input = scanner.nextLine().toLowerCase();
+ if (input.equals("true") || input.equals("false")) {
+ istKleinunternehmer = Boolean.parseBoolean(input);
+ } else {
+ System.out.println("Bitte geben Sie 'true' oder 'false' ein.");
+ }
+ } while (istKleinunternehmer == null);
+ kunde.setIstKleinunternehmer(istKleinunternehmer);
+
+ // Ansprechpartner
+ String ansprechpartner;
+ do {
+ System.out.print("Ansprechpartner: ");
+ ansprechpartner = scanner.nextLine();
+ if (ansprechpartner.isEmpty()) {
+ System.out.println("Ansprechpartner darf nicht leer sein. Bitte erneut eingeben.");
+ }
+ } while (ansprechpartner.isEmpty());
+ kunde.setAnsprechpartner(ansprechpartner);
}
+
}
diff --git a/Faktura_Gruppe5/src/controller/LieferscheinController.java b/Faktura_Gruppe5/src/controller/LieferscheinController.java
new file mode 100644
index 0000000..3db0d56
--- /dev/null
+++ b/Faktura_Gruppe5/src/controller/LieferscheinController.java
@@ -0,0 +1,178 @@
+package controller;
+
+import model.Lieferschein;
+import model.Angebot;
+import model.Auftragsbestaetigung;
+import model.Firmenstammdaten;
+import model.Kunde;
+
+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.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Scanner;
+
+public class LieferscheinController {
+ private final String ordnerPfad = "lieferscheine";
+ private KundenController kundenController;
+ private AngebotController angebotController;
+
+ public LieferscheinController() {
+ kundenController = new KundenController();
+ angebotController = new AngebotController();
+ File ordner = new File(ordnerPfad);
+ if (!ordner.exists()) {
+ ordner.mkdir();
+ }
+ }
+
+ private boolean lieferscheinNummerExistiert(int auftragsnummer) {
+ File xmlDatei = new File(ordnerPfad + "/" + auftragsnummer + ".xml");
+ return xmlDatei.exists();
+ }
+
+ // Methode zur Generierung einer neuen, eindeutigen Auftragsnummer
+ private int generiereNeueLieferscheinNummer() {
+ int neueLieferscheinNummer = 1;
+ while (lieferscheinNummerExistiert(neueLieferscheinNummer)) {
+ neueLieferscheinNummer++;
+ }
+ return neueLieferscheinNummer;
+ }
+
+ // Methode zum Speichern des Lieferscheins im XML-Format
+ public void speichereAlsXML(Lieferschein lieferschein) {
+ try {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.newDocument();
+
+ // Root-Element
+ Element rootElement = doc.createElement("Lieferschein");
+ doc.appendChild(rootElement);
+
+ // Lieferscheinnummer-Element
+ Element lieferscheinnummerElement = doc.createElement("Lieferscheinnummer");
+ lieferscheinnummerElement.appendChild(doc.createTextNode(Integer.toString(lieferschein.getLieferscheinnummer())));
+ rootElement.appendChild(lieferscheinnummerElement);
+
+ // Ausstellungsdatum-Element
+ Element ausstellungsdatumElement = doc.createElement("Ausstellungsdatum");
+// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
+ ausstellungsdatumElement.appendChild(doc.createTextNode(String.valueOf(lieferschein.getAusstellungsdatum())));
+ rootElement.appendChild(ausstellungsdatumElement);
+
+ // Kunde-Element
+ Element kundeElement = doc.createElement("Kunde");
+ kundeElement.appendChild(doc.createTextNode(Integer.toString(lieferschein.getKunde().getKundennummer())));
+ rootElement.appendChild(kundeElement);
+
+ Element angebotElement = doc.createElement("Angebot");
+ kundeElement.appendChild(doc.createTextNode(Integer.toString(lieferschein.getAngebot().getAngebotnummer())));
+ rootElement.appendChild(angebotElement);
+
+ // Bankinformationen-Element
+ Element bankinformationenElement = doc.createElement("Bankinformationen");
+ bankinformationenElement.appendChild(doc.createTextNode(lieferschein.getBankinformationen()));
+ rootElement.appendChild(bankinformationenElement);
+
+ // 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(ordnerPfad + "/" + lieferschein.getLieferscheinnummer() + ".xml"));
+ transformer.transform(source, result);
+
+ System.out.println("Lieferschein wurde erfolgreich gespeichert.");
+ } catch (ParserConfigurationException | TransformerException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // Methode zum Auslesen des Lieferscheins aus einer XML-Datei
+ public Lieferschein leseAusXML(int lieferscheinnummer) {
+ try {
+ File xmlDatei = new File(ordnerPfad + "/" + lieferscheinnummer + ".xml");
+ if (!xmlDatei.exists()) {
+ return null;
+ }
+
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.parse(xmlDatei);
+ doc.getDocumentElement().normalize();
+
+ Lieferschein lieferschein = new Lieferschein();
+
+ NodeList nList = doc.getElementsByTagName("Lieferschein");
+ for (int temp = 0; temp < nList.getLength(); temp++) {
+ Node nNode = nList.item(temp);
+
+ if (nNode.getNodeType() == Node.ELEMENT_NODE) {
+ Element eElement = (Element) nNode;
+
+ int lieferscheinNummer = Integer.parseInt(eElement.getElementsByTagName("Lieferscheinnummer").item(0).getTextContent());
+ String ausstellungsDatumStr = eElement.getElementsByTagName("Ausstellungsdatum").item(0).getTextContent();
+// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
+ int ausstellungsDatum = Integer.parseInt(ausstellungsDatumStr);
+ int kundenNummer = Integer.parseInt(eElement.getElementsByTagName("Kunde").item(0).getTextContent());
+ int angebotsNummer = Integer.parseInt(eElement.getElementsByTagName("Angebot").item(0).getTextContent());
+ Kunde kunde = kundenController.leseAusXML(kundenNummer);
+ Angebot angebot= angebotController.leseAusXML(angebotsNummer);
+
+// AuftragsbestaetigungController auftragsbestaetigungController = new AuftragsbestaetigungController();
+// Auftragsbestaetigung auftragsbestaetigung = auftragsbestaetigungController.leseAusXML(lieferscheinNummer);
+
+ String bankinformation = eElement.getElementsByTagName("Bankinformationen").item(0).getTextContent();
+ lieferschein.setAusstellungsdatum(ausstellungsDatum);
+ lieferschein.setBankinformationen(bankinformation);
+ lieferschein.setAngebot(angebot);
+ lieferschein.setKunde(kunde);
+ lieferschein.setLieferscheinnummer(lieferscheinNummer);
+
+ return lieferschein;
+ }
+ }
+ } catch (ParserConfigurationException | SAXException | IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public Lieferschein erstelleLieferschein(Angebot angebot,Firmenstammdaten firmenstammdaten) {
+ Scanner scanner = new Scanner(System.in);
+
+ System.out.print("Bitte geben Sie das Ausstellungsdatum ein: ");
+ int datum = scanner.nextInt();
+ Lieferschein lieferschein = new Lieferschein();
+ lieferschein.setLieferscheinnummer(generiereNeueLieferscheinNummer());
+ lieferschein.setKunde(angebot.getKunde());
+ lieferschein.setAusstellungsdatum(datum);
+ lieferschein.setBankinformationen(firmenstammdaten.getBankname()+"\n"+firmenstammdaten.getIban());
+ lieferschein.setAngebot(angebot);
+ lieferschein.setKunde(angebot.getKunde());
+// Auftragsbestaetigung auftragsbestaetigung = new Auftragsbestaetigung(angebot, datum);
+ speichereAlsXML(lieferschein);
+
+ return lieferschein;
+
+ }
+}
diff --git a/Faktura_Gruppe5/src/controller/MainController.java b/Faktura_Gruppe5/src/controller/MainController.java
index c5a315e..e34fed8 100644
--- a/Faktura_Gruppe5/src/controller/MainController.java
+++ b/Faktura_Gruppe5/src/controller/MainController.java
@@ -1,32 +1,56 @@
package controller;
-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;
- }
+ private KundenController kundenController;
+ private ArtikelController artikelController;
+ private FirmenstammdatenController firmenstammdatenController;
+ private AngebotController angebotController;
+ private WertschoepfungsketteController wertschoepfungsketteController;
+ private RechnungController rechnungController;
+ private LieferscheinController lieferscheinController;
+ private AuftragsbestaetigungController auftragsbestaetigungController;
- public ArtikelController getArtikelController() {
- return artikelController;
- }
-
- public FirmenstammdatenController getFirmenstammdatenController() {
- return this.firmenstammdatenController;
- }
-
-
+ public MainController() {
+ this.kundenController = new KundenController();
+ this.artikelController = new ArtikelController();
+ this.firmenstammdatenController = new FirmenstammdatenController();
+ this.angebotController = new AngebotController();
+ this.wertschoepfungsketteController = new WertschoepfungsketteController();
+ this.rechnungController = new RechnungController();
+ this.lieferscheinController = new LieferscheinController();
+ this.auftragsbestaetigungController = new AuftragsbestaetigungController();
+ }
-
+ public KundenController getKundenController() {
+ return kundenController;
+ }
+
+ public ArtikelController getArtikelController() {
+ return artikelController;
+ }
+
+ public FirmenstammdatenController getFirmenstammdatenController() {
+ return firmenstammdatenController;
+ }
+
+ public AngebotController getAngebotController() {
+ return angebotController;
+ }
+
+ public WertschoepfungsketteController getWertschoepfungsketteController() {
+ return wertschoepfungsketteController;
+ }
+
+ public RechnungController getRechnungController() {
+ return rechnungController;
+ }
+
+ public LieferscheinController getLieferscheinController() {
+ return lieferscheinController;
+ }
+
+ public AuftragsbestaetigungController getAuftragsbestaetigungController() {
+ return auftragsbestaetigungController;
+ }
}
diff --git a/Faktura_Gruppe5/src/controller/RechnungController.java b/Faktura_Gruppe5/src/controller/RechnungController.java
new file mode 100644
index 0000000..8225733
--- /dev/null
+++ b/Faktura_Gruppe5/src/controller/RechnungController.java
@@ -0,0 +1,221 @@
+package controller;
+
+import model.Rechnung;
+import model.Angebot;
+import model.Firmenstammdaten;
+import model.Kunde;
+import model.Lieferschein;
+
+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.text.ParseException;
+import java.util.Scanner;
+
+public class RechnungController {
+ private final String ordnerPfad = "rechnungen";
+
+ private KundenController kundenController;
+ private AngebotController angebotController;
+
+ public RechnungController() {
+ kundenController = new KundenController();
+ angebotController = new AngebotController();
+ File ordner = new File(ordnerPfad);
+ if (!ordner.exists()) {
+ ordner.mkdir();
+ }
+ }
+
+ private boolean rechnungsnummerExistiert(int rechnungsnummer) {
+ File xmlDatei = new File(ordnerPfad + "/" + rechnungsnummer + ".xml");
+ return xmlDatei.exists();
+ }
+
+ // Methode zur Generierung einer neuen, eindeutigen Rechnungsnummer
+ private int generiereNeueRechnungsnummer() {
+ int neueRechnungsnummer = 1;
+ while (rechnungsnummerExistiert(neueRechnungsnummer)) {
+ neueRechnungsnummer++;
+ }
+ return neueRechnungsnummer;
+ }
+
+ // Methode zum Speichern der Rechnung im XML-Format
+ public void speichereAlsXML(Rechnung rechnung) {
+ try {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.newDocument();
+
+ // Root-Element
+ Element rootElement = doc.createElement("Rechnung");
+ doc.appendChild(rootElement);
+
+ // Rechnungsnummer-Element
+ Element rechnungsnummerElement = doc.createElement("Rechnungsnummer");
+ rechnungsnummerElement.appendChild(doc.createTextNode(Integer.toString(rechnung.getRechnungsnummer())));
+ rootElement.appendChild(rechnungsnummerElement);
+
+ // Rechnungsdatum-Element
+ Element rechnungsdatumElement = doc.createElement("Rechnungsdatum");
+ rechnungsdatumElement.appendChild(doc.createTextNode(String.valueOf(rechnung.getRechnungsdatum())));
+ rootElement.appendChild(rechnungsdatumElement);
+
+ // Lieferart-Element
+ Element lieferartElement = doc.createElement("Lieferart");
+ lieferartElement.appendChild(doc.createTextNode(rechnung.getLieferart()));
+ rootElement.appendChild(lieferartElement);
+
+ // Zahlungsfrist-Element
+ Element zahlungsfristElement = doc.createElement("Zahlungsfrist");
+ zahlungsfristElement.appendChild(doc.createTextNode(String.valueOf(rechnung.getZahlungsfrist())));
+ rootElement.appendChild(zahlungsfristElement);
+
+ // Firmeninformationen-Element
+ Element firmeninformationenElement = doc.createElement("Firmeninformationen");
+ firmeninformationenElement.appendChild(doc.createTextNode(rechnung.getFirmeninformationen()));
+ rootElement.appendChild(firmeninformationenElement);
+
+ // Kunde-Element
+ Element kundeElement = doc.createElement("Kunde");
+ rootElement.appendChild(kundeElement);
+
+ // Kundennummer-Element
+ Element kundennummerElement = doc.createElement("Kundennummer");
+ kundennummerElement.appendChild(doc.createTextNode(Integer.toString(rechnung.getKunde().getKundennummer())));
+ kundeElement.appendChild(kundennummerElement);
+
+ // Angebot-Element
+ Element angebotElement = doc.createElement("Angebot");
+ rootElement.appendChild(angebotElement);
+
+ // Angebotsnummer-Element
+ Element angebotsnummerElement = doc.createElement("Angebotsnummer");
+ angebotsnummerElement.appendChild(doc.createTextNode(Integer.toString(rechnung.getAngebot().getAngebotnummer())));
+ angebotElement.appendChild(angebotsnummerElement);
+
+ // Bankinformationen-Element
+ Element bankinformationenElement = doc.createElement("Bankinformationen");
+ bankinformationenElement.appendChild(doc.createTextNode(rechnung.getBankinformationen()));
+ rootElement.appendChild(bankinformationenElement);
+
+ // 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(ordnerPfad + "/" + rechnung.getRechnungsnummer() + ".xml"));
+ transformer.transform(source, result);
+
+ System.out.println("Rechnung wurde erfolgreich gespeichert.");
+ } catch (ParserConfigurationException | TransformerException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // Methode zum Auslesen der Rechnung aus einer XML-Datei
+ public Rechnung leseAusXML(int rechnungsnummer) {
+ try {
+ File xmlDatei = new File(ordnerPfad + "/" + rechnungsnummer + ".xml");
+ if (!xmlDatei.exists()) {
+ return null;
+ }
+
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.parse(xmlDatei);
+ doc.getDocumentElement().normalize();
+
+ Rechnung rechnung = new Rechnung();
+
+ NodeList nList = doc.getElementsByTagName("Rechnung");
+ for (int temp = 0; temp < nList.getLength(); temp++) {
+ Node nNode = nList.item(temp);
+
+ if (nNode.getNodeType() == Node.ELEMENT_NODE) {
+ Element eElement = (Element) nNode;
+
+ int rechnungsNummer = Integer.parseInt(eElement.getElementsByTagName("Rechnungsnummer").item(0).getTextContent());
+
+ String rechnungsDatumStr = eElement.getElementsByTagName("Rechnungsdatum").item(0).getTextContent();
+
+ int rechnungsDatum = Integer.parseInt(rechnungsDatumStr);
+
+ String lieferart = eElement.getElementsByTagName("Lieferart").item(0).getTextContent();
+
+ String zahlungsfristStr = eElement.getElementsByTagName("Zahlungsfrist").item(0).getTextContent();
+ int zahlungsfrist = Integer.parseInt(zahlungsfristStr);
+
+ String firmeninformationen = eElement.getElementsByTagName("Firmeninformationen").item(0).getTextContent();
+
+ int kundennummer = Integer.parseInt(eElement.getElementsByTagName("Kundennummer").item(0).getTextContent());
+ Kunde kunde = kundenController.leseAusXML(kundennummer);
+
+ int angebotsnummer = Integer.parseInt(eElement.getElementsByTagName("Angebotsnummer").item(0).getTextContent());
+ Angebot angebot = angebotController.leseAusXML(angebotsnummer);
+
+ String bankinformationen = eElement.getElementsByTagName("Bankinformationen").item(0).getTextContent();
+
+ rechnung.setRechnungsnummer(rechnungsNummer);
+ rechnung.setRechnungsdatum(rechnungsDatum);
+ rechnung.setLieferart(lieferart);
+ rechnung.setZahlungsfrist(zahlungsfrist);
+ rechnung.setFirmeninformationen(firmeninformationen);
+ rechnung.setKunde(kunde);
+ rechnung.setAngebot(angebot);
+ rechnung.setBankinformationen(bankinformationen);
+
+ return rechnung;
+ }
+ }
+ } catch (ParserConfigurationException | SAXException | IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public Rechnung erstelleRechnung(Angebot angebot, Firmenstammdaten firmenstammdaten) {
+ Scanner scanner = new Scanner(System.in);
+
+ System.out.print("Bitte geben Sie die Lieferart ein: ");
+ String lieferart = scanner.nextLine();
+
+ System.out.print("Bitte geben Sie die Zahlungsfrist ein (yyyyMMdd): ");
+
+ int zahlungsfrist = scanner.nextInt();
+ System.out.print("Bitte geben Sie ein Rechnungsdatum ein (yyyyMMdd): ");
+
+ int rechnungsdatum = scanner.nextInt();
+ Rechnung rechnung = new Rechnung();
+ rechnung.setRechnungsnummer(generiereNeueRechnungsnummer());
+ rechnung.setRechnungsdatum(rechnungsdatum);
+ rechnung.setLieferart(lieferart);
+ rechnung.setZahlungsfrist(zahlungsfrist);
+ rechnung.setFirmeninformationen(firmenstammdaten.getFirmenname() + "\n" + firmenstammdaten.getAnschrift().getStrasse() + "\n" +
+ firmenstammdaten.getAnschrift().getPlz() + " " + firmenstammdaten.getAnschrift().getOrt() + "\n" +
+ firmenstammdaten.getTelefon() + "\n" + firmenstammdaten.getEmail());
+ rechnung.setKunde(angebot.getKunde());
+ rechnung.setAngebot(angebot);
+ rechnung.setBankinformationen(firmenstammdaten.getBankname() + "\n" + firmenstammdaten.getIban());
+
+ speichereAlsXML(rechnung);
+
+ return rechnung;
+ }
+}
diff --git a/Faktura_Gruppe5/src/controller/WertschoepfungsketteController.java b/Faktura_Gruppe5/src/controller/WertschoepfungsketteController.java
new file mode 100644
index 0000000..cee3fef
--- /dev/null
+++ b/Faktura_Gruppe5/src/controller/WertschoepfungsketteController.java
@@ -0,0 +1,197 @@
+package controller;
+
+import model.Wertschoepfungskette;
+import model.Angebot;
+import model.Auftragsbestaetigung;
+import model.Lieferschein;
+import model.Rechnung;
+
+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;
+
+public class WertschoepfungsketteController {
+ private final String ordnerPfad = "wertschoepfungsketten";
+
+ public WertschoepfungsketteController() {
+ File ordner = new File(ordnerPfad);
+ if (!ordner.exists()) {
+ ordner.mkdir();
+ }
+ }
+
+ public void speichereAlsXML(Wertschoepfungskette wertschoepfungskette) {
+ try {
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.newDocument();
+
+ // Root-Element
+ Element rootElement = doc.createElement("Wertschoepfungskette");
+ doc.appendChild(rootElement);
+
+ // Angebot
+ Angebot angebot = wertschoepfungskette.getAngebot();
+ Element angebotElement = doc.createElement("Angebot");
+ rootElement.appendChild(angebotElement);
+
+ Element angebotnummerElement = doc.createElement("Angebotnummer");
+ angebotnummerElement.appendChild(doc.createTextNode(Integer.toString(angebot.getAngebotnummer())));
+ angebotElement.appendChild(angebotnummerElement);
+
+ // Auftragsbestaetigung
+ if (wertschoepfungskette.getAuftragsbestaetigung() != null) {
+ Auftragsbestaetigung auftragsbestaetigung = wertschoepfungskette.getAuftragsbestaetigung();
+ Element auftragsElement = doc.createElement("Auftragsbestaetigung");
+ rootElement.appendChild(auftragsElement);
+
+ Element auftragsnummerElement = doc.createElement("Auftragsnummer");
+ auftragsnummerElement.appendChild(doc.createTextNode(Integer.toString(auftragsbestaetigung.getAuftragsnummer())));
+ auftragsElement.appendChild(auftragsnummerElement);
+ }
+
+ // Lieferschein
+ if (wertschoepfungskette.getLieferschein() != null) {
+ Lieferschein lieferschein = wertschoepfungskette.getLieferschein();
+ Element lieferscheinElement = doc.createElement("Lieferschein");
+ rootElement.appendChild(lieferscheinElement);
+
+ Element lieferscheinnummerElement = doc.createElement("Lieferscheinnummer");
+ lieferscheinnummerElement.appendChild(doc.createTextNode(Integer.toString(lieferschein.getLieferscheinnummer())));
+ lieferscheinElement.appendChild(lieferscheinnummerElement);
+ }
+
+ // Rechnung
+ if (wertschoepfungskette.getRechnung() != null) {
+ Rechnung rechnung = wertschoepfungskette.getRechnung();
+ Element rechnungElement = doc.createElement("Rechnung");
+ rootElement.appendChild(rechnungElement);
+
+ Element rechnungsnummerElement = doc.createElement("Rechnungsnummer");
+ rechnungsnummerElement.appendChild(doc.createTextNode(Integer.toString(rechnung.getRechnungsnummer())));
+ rechnungElement.appendChild(rechnungsnummerElement);
+ }
+
+ // 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(ordnerPfad + "/" + wertschoepfungskette.getAngebot().getAngebotnummer() + ".xml"));
+ transformer.transform(source, result);
+
+ System.out.println("Wertschoepfungskette wurde erfolgreich gespeichert.");
+ } catch (ParserConfigurationException | TransformerException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public Wertschoepfungskette leseAusXML(int angebotnummer) {
+ try {
+ File xmlDatei = new File(ordnerPfad + "/" + angebotnummer + ".xml");
+ if (!xmlDatei.exists()) {
+ return null;
+ }
+
+ DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
+ Document doc = dBuilder.parse(xmlDatei);
+ doc.getDocumentElement().normalize();
+
+ Wertschoepfungskette wertschoepfungskette = null;
+
+ NodeList nList = doc.getElementsByTagName("Wertschoepfungskette");
+ for (int temp = 0; temp < nList.getLength(); temp++) {
+ Node nNode = nList.item(temp);
+
+ if (nNode.getNodeType() == Node.ELEMENT_NODE) {
+ Element eElement = (Element) nNode;
+
+ // Angebot
+ Node angebotNode = eElement.getElementsByTagName("Angebot").item(0);
+ Element angebotElement = (Element) angebotNode;
+ int angebotNummer = Integer.parseInt(angebotElement.getElementsByTagName("Angebotnummer").item(0).getTextContent());
+
+ // Deserialize `Angebot` here...
+ AngebotController angebotController = new AngebotController();
+ Angebot angebot = angebotController.leseAusXML(angebotNummer);
+
+ wertschoepfungskette = new Wertschoepfungskette(angebot);
+
+ // Auftragsbestaetigung
+ Node auftragsNode = eElement.getElementsByTagName("Auftragsbestaetigung").item(0);
+ if (auftragsNode != null) {
+ Element auftragsElement = (Element) auftragsNode;
+ int auftragsNummer = Integer.parseInt(auftragsElement.getElementsByTagName("Auftragsnummer").item(0).getTextContent());
+
+ // Deserialize `Auftragsbestaetigung` here...
+ AuftragsbestaetigungController auftragsbestaetigungController = new AuftragsbestaetigungController();
+ Auftragsbestaetigung auftragsbestaetigung = auftragsbestaetigungController.leseAusXML(auftragsNummer);
+ if (auftragsbestaetigung != null) {
+ wertschoepfungskette.setAuftragsbestaetigung(auftragsbestaetigung);
+ }
+ }
+
+ // Lieferschein
+ Node lieferscheinNode = eElement.getElementsByTagName("Lieferschein").item(0);
+ if (lieferscheinNode != null) {
+ Element lieferscheinElement = (Element) lieferscheinNode;
+ int lieferscheinNummer = Integer.parseInt(lieferscheinElement.getElementsByTagName("Lieferscheinnummer").item(0).getTextContent());
+
+ // Deserialize `Lieferschein` here...
+ LieferscheinController lieferscheinController = new LieferscheinController();
+ Lieferschein lieferschein = lieferscheinController.leseAusXML(lieferscheinNummer);
+ if (lieferschein != null) {
+ wertschoepfungskette.setLieferschein(lieferschein);
+ }
+
+
+ }
+
+ // Rechnung
+ Node rechnungNode = eElement.getElementsByTagName("Rechnung").item(0);
+ if (rechnungNode != null) {
+ Element rechnungElement = (Element) rechnungNode;
+ int rechnungsNummer = Integer.parseInt(rechnungElement.getElementsByTagName("Rechnungsnummer").item(0).getTextContent());
+
+ // Deserialize `Rechnung` here...
+ RechnungController rechnungController = new RechnungController();
+ Rechnung rechnung = rechnungController.leseAusXML(rechnungsNummer);
+ if (rechnung != null) {
+ wertschoepfungskette.setRechnung(rechnung);
+ }
+ }
+ }
+ }
+
+ System.out.println("Wertschoepfungskette wurde erfolgreich gelesen.");
+ return wertschoepfungskette;
+ } catch (ParserConfigurationException | SAXException | IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public void erstelleWertschoepfungskette(Angebot angebot) {
+
+ Wertschoepfungskette wertschoepfungskette =new Wertschoepfungskette(angebot);
+ speichereAlsXML(wertschoepfungskette);
+ }
+
+
+}
diff --git a/Faktura_Gruppe5/src/model/Angebot.java b/Faktura_Gruppe5/src/model/Angebot.java
new file mode 100644
index 0000000..a4f15ee
--- /dev/null
+++ b/Faktura_Gruppe5/src/model/Angebot.java
@@ -0,0 +1,103 @@
+package model;
+
+import java.util.Date;
+import java.util.List;
+
+public class Angebot {
+ private static int aktuelleAngebotnummer = 0;
+ private int angebotnummer;
+ private Date erstellungsdatum;
+ private Kunde kunde;
+ private List artikelListe;
+ private List menge;
+ private double summeBrutto;
+ private double summeNetto;
+
+ public Angebot() {
+ this.angebotnummer = ++aktuelleAngebotnummer;
+ this.erstellungsdatum = new Date();
+ }
+
+ public static int getAktuelleAngebotnummer() {
+ return aktuelleAngebotnummer;
+ }
+
+ public static void setAktuelleAngebotnummer(int aktuelleAngebotnummer) {
+ Angebot.aktuelleAngebotnummer = aktuelleAngebotnummer;
+ }
+
+ public int getAngebotnummer() {
+ return angebotnummer;
+ }
+
+ public void setAngebotnummer(int angebotnummer) {
+ this.angebotnummer=angebotnummer;
+ }
+
+ public Date getErstellungsdatum() {
+ return erstellungsdatum;
+ }
+
+ public Kunde getKunde() {
+ return kunde;
+ }
+
+ public void setKunde(Kunde kunde) {
+ this.kunde = kunde;
+ }
+
+ public List getArtikelListe() {
+ return artikelListe;
+ }
+
+ public void setArtikelListe(List artikelListe) {
+ this.artikelListe = artikelListe;
+ }
+
+ public List getMenge() {
+ return menge;
+ }
+
+ public void setMenge(List menge) {
+ this.menge = menge;
+ }
+
+ public double getSummeBrutto() {
+ return summeBrutto;
+ }
+
+ public void setSummeBrutto(double summeBrutto) {
+ this.summeBrutto = summeBrutto;
+ }
+
+ public double getSummeNetto() {
+ return summeNetto;
+ }
+
+ public void setSummeNetto(double summeNetto) {
+ this.summeNetto = summeNetto;
+ }
+
+ public void anzeigen() {
+ System.out.println("Angebotsnummer: " + angebotnummer);
+ System.out.println("Erstellungsdatum: " + erstellungsdatum);
+ System.out.println("Kunde:");
+ kunde.anzeigen();
+
+ System.out.println("Artikel:");
+ for (int i = 0; i < artikelListe.size(); i++) {
+ System.out.println(" Artikel: " + artikelListe.get(i).getBezeichnung());
+ System.out.println(" Menge: " + menge.get(i));
+ System.out.println(" Nettopreis pro Stück: \t" + String.format("%.2f", artikelListe.get(i).getNettopreis()));
+ if (!kunde.isIstKleinunternehmer()) {
+ System.out.println(
+ " Bruttopeis pro Stück: \t" + String.format("%.2f", artikelListe.get(i).getBruttopreis()));
+ }
+ System.out.println(" --------------------------------------");
+ }
+ System.out.println("Summe Netto: \t" + String.format("%.2f", summeNetto));
+ if (!kunde.isIstKleinunternehmer()) {
+ System.out.println("Summe Brutto: \t" + String.format("%.2f", summeBrutto));
+ }
+ }
+}
diff --git a/Faktura_Gruppe5/src/model/Anschrift.java b/Faktura_Gruppe5/src/model/Anschrift.java
new file mode 100644
index 0000000..07a7b51
--- /dev/null
+++ b/Faktura_Gruppe5/src/model/Anschrift.java
@@ -0,0 +1,40 @@
+package model;
+
+public class Anschrift {
+ private String strasse;
+ private String plz;
+ private String ort;
+
+ public Anschrift() {
+ }
+
+ public Anschrift(String strasse, String plz, String ort) {
+ this.strasse = strasse;
+ this.plz = plz;
+ this.ort = ort;
+ }
+
+ 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 getOrt() {
+ return ort;
+ }
+
+ public void setOrt(String ort) {
+ this.ort = ort;
+ }
+}
diff --git a/Faktura_Gruppe5/src/model/Artikel.java b/Faktura_Gruppe5/src/model/Artikel.java
index 02da4f1..d9d146f 100644
--- a/Faktura_Gruppe5/src/model/Artikel.java
+++ b/Faktura_Gruppe5/src/model/Artikel.java
@@ -7,6 +7,7 @@ public class Artikel {
private String bezeichnung;
private double nettopreis;
private double mehrwertsteuersatz;
+ private double bruttopreis;
// Konstruktor
public Artikel(String einheit, String bezeichnung, double nettopreis, double mehrwertsteuersatz) {
@@ -15,28 +16,27 @@ public class Artikel {
this.bezeichnung = bezeichnung;
this.nettopreis = nettopreis;
this.mehrwertsteuersatz = mehrwertsteuersatz;
+ this.bruttopreis = berechneBruttopreis(nettopreis, 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() {
return artikelnummer;
}
+ public void setArtikelnummer(int artikelnummer) {
+ this.artikelnummer = artikelnummer;
+ }
+
public String getEinheit() {
return einheit;
}
@@ -59,6 +59,7 @@ public class Artikel {
public void setNettopreis(double nettopreis) {
this.nettopreis = nettopreis;
+ this.bruttopreis = berechneBruttopreis(nettopreis, mehrwertsteuersatz); // Update bruttopreis
}
public double getMehrwertsteuersatz() {
@@ -67,6 +68,20 @@ public class Artikel {
public void setMehrwertsteuersatz(double mehrwertsteuersatz) {
this.mehrwertsteuersatz = mehrwertsteuersatz;
+ this.bruttopreis = berechneBruttopreis(nettopreis, mehrwertsteuersatz); // Update bruttopreis
+ }
+
+ public double getBruttopreis() {
+ return bruttopreis;
+ }
+
+ public void setBruttopreis(double bruttopreis) {
+ this.bruttopreis = bruttopreis;
+ }
+
+ // Methode zur Berechnung des Bruttopreises
+ private double berechneBruttopreis(double nettopreis, double mehrwertsteuersatz) {
+ return nettopreis + (nettopreis * mehrwertsteuersatz / 100);
}
// Methode zum Anzeigen der Artikeldaten
@@ -76,5 +91,6 @@ public class Artikel {
System.out.println("Bezeichnung: " + bezeichnung);
System.out.println("Nettopreis: " + nettopreis);
System.out.println("Mehrwertsteuersatz: " + mehrwertsteuersatz);
+ System.out.println("Bruttopreis: " + bruttopreis);
}
}
diff --git a/Faktura_Gruppe5/src/model/Auftragsbestaetigung.java b/Faktura_Gruppe5/src/model/Auftragsbestaetigung.java
new file mode 100644
index 0000000..6d01c7d
--- /dev/null
+++ b/Faktura_Gruppe5/src/model/Auftragsbestaetigung.java
@@ -0,0 +1,53 @@
+package model;
+
+import java.util.Date;
+
+public class Auftragsbestaetigung {
+ private static int aktuelleAuftragsnummer = 0;
+ private int auftragsnummer;
+ private int auftragsdatum;
+ private Angebot angebot;
+
+ public Auftragsbestaetigung() {
+// this.auftragsnummer = ++aktuelleAuftragsnummer;
+ // this.auftragsdatum = new Date();
+ }
+
+ public Auftragsbestaetigung(int auftragsnummer, Angebot angebot,int datum) {
+ this.auftragsnummer = auftragsnummer;
+
+ this.auftragsdatum = datum;
+ this.angebot = angebot;
+ }
+
+ public int getAuftragsnummer() {
+ return auftragsnummer;
+ }
+
+ public void setAuftragsnummer(int auftragsnummer) {
+ this.auftragsnummer = auftragsnummer;
+ }
+
+ public int getAuftragsdatum() {
+ return auftragsdatum;
+ }
+
+ public void setAuftragsdatum(int auftragsdatum) {
+ this.auftragsdatum = auftragsdatum;
+ }
+
+ public Angebot getAngebot() {
+ return angebot;
+ }
+
+ public void setAngebot(Angebot angebot) {
+ this.angebot = angebot;
+ }
+
+ public void anzeigen() {
+ System.out.println("Auftragsnummer: " + auftragsnummer);
+ System.out.println("Auftragsdatum: " + auftragsdatum);
+ System.out.println("Angebot:");
+ angebot.anzeigen();
+ }
+}
diff --git a/Faktura_Gruppe5/src/model/Firmenstammdaten.java b/Faktura_Gruppe5/src/model/Firmenstammdaten.java
index 0bfef33..e4edeb4 100644
--- a/Faktura_Gruppe5/src/model/Firmenstammdaten.java
+++ b/Faktura_Gruppe5/src/model/Firmenstammdaten.java
@@ -3,10 +3,7 @@ package model;
public class Firmenstammdaten {
private String firmenname;
private String inhaber;
- private String strasse;
- private String plz;
- private String stadt;
- private String land;
+ private Anschrift anschrift; // Verwendung der Anschrift-Klasse
private String telefon;
private String mobilnummer;
private String telefax;
@@ -21,54 +18,115 @@ public class Firmenstammdaten {
// Getter und Setter für alle Attribute
- public String getFirmenname() { return firmenname; }
- public void setFirmenname(String firmenname) { this.firmenname = firmenname; }
+ public String getFirmenname() {
+ return firmenname;
+ }
- public String getInhaber() { return inhaber; }
- public void setInhaber(String inhaber) { this.inhaber = inhaber; }
+ public void setFirmenname(String firmenname) {
+ this.firmenname = firmenname;
+ }
- public String getStrasse() { return strasse; }
- public void setStrasse(String strasse) { this.strasse = strasse; }
+ public String getInhaber() {
+ return inhaber;
+ }
- public String getPlz() { return plz; }
- public void setPlz(String plz) { this.plz = plz; }
+ public void setInhaber(String inhaber) {
+ this.inhaber = inhaber;
+ }
- public String getStadt() { return stadt; }
- public void setStadt(String stadt) { this.stadt = stadt; }
+ public Anschrift getAnschrift() {
+ return anschrift;
+ }
- public String getLand() { return land; }
- public void setLand(String land) { this.land = land; }
+ public void setAnschrift(Anschrift anschrift) {
+ this.anschrift = anschrift;
+ }
- public String getTelefon() { return telefon; }
- public void setTelefon(String telefon) { this.telefon = telefon; }
+ public String getTelefon() {
+ return telefon;
+ }
- public String getMobilnummer() { return mobilnummer; }
- public void setMobilnummer(String mobilnummer) { this.mobilnummer = mobilnummer; }
+ public void setTelefon(String telefon) {
+ this.telefon = telefon;
+ }
- public String getTelefax() { return telefax; }
- public void setTelefax(String telefax) { this.telefax = telefax; }
+ public String getMobilnummer() {
+ return mobilnummer;
+ }
- public String getEmail() { return email; }
- public void setEmail(String email) { this.email = email; }
+ public void setMobilnummer(String mobilnummer) {
+ this.mobilnummer = mobilnummer;
+ }
- public String getWebseite() { return webseite; }
- public void setWebseite(String webseite) { this.webseite = webseite; }
+ public String getTelefax() {
+ return telefax;
+ }
- public String getUmsatzsteuerIdNummer() { return umsatzsteuerIdNummer; }
- public void setUmsatzsteuerIdNummer(String umsatzsteuerIdNummer) { this.umsatzsteuerIdNummer = umsatzsteuerIdNummer; }
+ public void setTelefax(String telefax) {
+ this.telefax = telefax;
+ }
- public String getFinanzamt() { return finanzamt; }
- public void setFinanzamt(String finanzamt) { this.finanzamt = finanzamt; }
+ public String getEmail() {
+ return email;
+ }
- public String getBankname() { return bankname; }
- public void setBankname(String bankname) { this.bankname = bankname; }
+ public void setEmail(String email) {
+ this.email = email;
+ }
- public String getIban() { return iban; }
- public void setIban(String iban) { this.iban = iban; }
+ public String getWebseite() {
+ return webseite;
+ }
- public String getBic() { return bic; }
- public void setBic(String bic) { this.bic = bic; }
+ public void setWebseite(String webseite) {
+ this.webseite = webseite;
+ }
- public String getGlaeubigerID() { return glaeubigerID; }
- public void setGlaeubigerID(String glaeubigerID) { this.glaeubigerID = glaeubigerID; }
+ 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;
+ }
}
diff --git a/Faktura_Gruppe5/src/model/Kunde.java b/Faktura_Gruppe5/src/model/Kunde.java
index bcc5cb7..601af9d 100644
--- a/Faktura_Gruppe5/src/model/Kunde.java
+++ b/Faktura_Gruppe5/src/model/Kunde.java
@@ -4,15 +4,14 @@ public class Kunde {
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 Anschrift anschrift;
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,
+ public Kunde(String name, Anschrift anschrift, String email, String telefonnummer, boolean istKleinunternehmer,
String ansprechpartner) {
this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement
this.name = name;
@@ -49,11 +48,11 @@ public class Kunde {
this.name = name;
}
- public String getAnschrift() {
+ public Anschrift getAnschrift() {
return anschrift;
}
- public void setAnschrift(String anschrift) {
+ public void setAnschrift(Anschrift anschrift) {
this.anschrift = anschrift;
}
@@ -93,7 +92,10 @@ public class Kunde {
public void anzeigen() {
System.out.println("Kundennummer: " + kundennummer);
System.out.println("Name: " + name);
- System.out.println("Anschrift: " + anschrift);
+ System.out.println("Anschrift: ");
+ System.out.println(" Straße: " + anschrift.getStrasse());
+ System.out.println(" PLZ: " + anschrift.getPlz());
+ System.out.println(" Ort: " + anschrift.getOrt());
System.out.println("Email: " + email);
System.out.println("Telefonnummer: " + telefonnummer);
System.out.println("Kleinunternehmer: " + (istKleinunternehmer ? "Ja" : "Nein"));
diff --git a/Faktura_Gruppe5/src/model/Lieferschein.java b/Faktura_Gruppe5/src/model/Lieferschein.java
new file mode 100644
index 0000000..172c5aa
--- /dev/null
+++ b/Faktura_Gruppe5/src/model/Lieferschein.java
@@ -0,0 +1,76 @@
+package model;
+
+import java.util.Date;
+import java.util.List;
+
+public class Lieferschein {
+ private static int aktuelleLieferscheinnummer = 0;
+ private int lieferscheinnummer;
+ private int ausstellungsdatum;
+ private String bankinformationen;
+ private Kunde kunde;
+ private Angebot angebot;
+
+ public Lieferschein() {
+
+ }
+
+ public int getLieferscheinnummer() {
+ return lieferscheinnummer;
+ }
+
+ public int getAusstellungsdatum() {
+ return ausstellungsdatum;
+ }
+
+ public void setAusstellungsdatum(int ausstellungsdatum) {
+ this.ausstellungsdatum = ausstellungsdatum;
+ }
+
+ public void setLieferscheinnummer(int lieferscheinnummer) {
+ this.lieferscheinnummer = lieferscheinnummer;
+ }
+
+ public void setBankinformationen(String bankinformationen) {
+ this.bankinformationen = bankinformationen;
+ }
+
+ public void setKunde(Kunde kunde) {
+ this.kunde = kunde;
+ }
+
+
+
+ public String getBankinformationen() {
+ return bankinformationen;
+ }
+
+ public Kunde getKunde() {
+ return kunde;
+ }
+
+
+
+ public Angebot getAngebot() {
+ return angebot;
+ }
+
+ public void setAngebot(Angebot angebot) {
+ this.angebot = angebot;
+ }
+
+ public void anzeigen() {
+ System.out.println("Lieferscheinnummer: " + lieferscheinnummer);
+ System.out.println("Ausstellungsdatum: " + ausstellungsdatum);
+ System.out.println("Bankinformationen: " + bankinformationen);
+ System.out.println("Kunde:");
+ kunde.anzeigen();
+
+ System.out.println("Artikel:");
+ for (int i = 0; i < angebot.getArtikelListe().size(); i++) {
+ System.out.println(" Artikel: " + angebot.getArtikelListe().get(i).getBezeichnung());
+ System.out.println(" Menge: " + angebot.getMenge().get(i));
+ System.out.println(" --------------------------------------");
+ }
+ }
+}
diff --git a/Faktura_Gruppe5/src/model/Rechnung.java b/Faktura_Gruppe5/src/model/Rechnung.java
new file mode 100644
index 0000000..336b31c
--- /dev/null
+++ b/Faktura_Gruppe5/src/model/Rechnung.java
@@ -0,0 +1,111 @@
+package model;
+
+import java.util.Date;
+import java.util.List;
+
+public class Rechnung {
+ private static int aktuelleRechnungsnummer = 0;
+ private int rechnungsnummer;
+ private int rechnungsdatum;
+ private String lieferart;
+ private int zahlungsfrist;
+ private String firmeninformationen;
+ private Kunde kunde;
+ private Angebot angebot;
+ private String bankinformationen;
+
+ public Rechnung(Lieferschein lieferschein, String lieferart, Date zahlungsfrist, String firmeninformationen) {
+ this.rechnungsnummer = ++aktuelleRechnungsnummer;
+ this.lieferart = lieferart;
+ this.firmeninformationen = firmeninformationen;
+ this.kunde = lieferschein.getKunde();
+ this.angebot=lieferschein.getAngebot();
+ this.bankinformationen = lieferschein.getBankinformationen();
+ }
+
+ public Rechnung() {
+
+ }
+
+ public Angebot getAngebot() {
+ return angebot;
+ }
+
+ public void setAngebot(Angebot angebot) {
+ this.angebot = angebot;
+ }
+
+ public void setRechnungsnummer(int rechnungsnummer) {
+ this.rechnungsnummer = rechnungsnummer;
+ }
+
+ public void setLieferart(String lieferart) {
+ this.lieferart = lieferart;
+ }
+
+ public void setZahlungsfrist(int zahlungsfrist) {
+ this.zahlungsfrist = zahlungsfrist;
+ }
+
+ public void setFirmeninformationen(String firmeninformationen) {
+ this.firmeninformationen = firmeninformationen;
+ }
+
+ public void setKunde(Kunde kunde) {
+ this.kunde = kunde;
+ }
+
+ public void setBankinformationen(String bankinformationen) {
+ this.bankinformationen = bankinformationen;
+ }
+
+ public int getRechnungsnummer() {
+ return rechnungsnummer;
+ }
+
+ public int getRechnungsdatum() {
+ return rechnungsdatum;
+ }
+
+ public void setRechnungsdatum(int rechnungsdatum) {
+ this.rechnungsdatum = rechnungsdatum;
+ }
+
+ public String getLieferart() {
+ return lieferart;
+ }
+
+ public int getZahlungsfrist() {
+ return zahlungsfrist;
+ }
+
+ public String getFirmeninformationen() {
+ return firmeninformationen;
+ }
+
+ public Kunde getKunde() {
+ return kunde;
+ }
+
+ public String getBankinformationen() {
+ return bankinformationen;
+ }
+
+ public void anzeigen() {
+ System.out.println("Rechnungsnummer: " + rechnungsnummer);
+ System.out.println("Rechnungsdatum: " + rechnungsdatum);
+ System.out.println("Lieferart: " + lieferart);
+ System.out.println("Zahlungsfrist: " + zahlungsfrist);
+ System.out.println("Firmeninformationen: " + firmeninformationen);
+ System.out.println("Bankinformationen: " + bankinformationen);
+ System.out.println("Kunde:");
+ kunde.anzeigen();
+
+ System.out.println("Artikel:");
+ for (int i = 0; i < angebot.getArtikelListe().size(); i++) {
+ System.out.println(" Artikel: " + angebot.getArtikelListe().get(i).getBezeichnung());
+ System.out.println(" Menge: " + angebot.getMenge().get(i));
+ System.out.println(" --------------------------------------");
+ }
+ }
+}
diff --git a/Faktura_Gruppe5/src/model/Wertschoepfungskette.java b/Faktura_Gruppe5/src/model/Wertschoepfungskette.java
new file mode 100644
index 0000000..a8b191e
--- /dev/null
+++ b/Faktura_Gruppe5/src/model/Wertschoepfungskette.java
@@ -0,0 +1,61 @@
+package model;
+
+import java.util.Date;
+
+public class Wertschoepfungskette {
+ private Angebot angebot;
+ private Auftragsbestaetigung auftragsbestaetigung;
+ private Lieferschein lieferschein;
+ private Rechnung rechnung;
+
+ public Wertschoepfungskette(Angebot angebot) {
+ this.angebot =angebot;
+ }
+
+ public void setAngebot(Angebot angebot) {
+ this.angebot = angebot;
+ }
+
+ public void setAuftragsbestaetigung(Auftragsbestaetigung auftragsbestaetigung) {
+ this.auftragsbestaetigung = auftragsbestaetigung;
+ }
+
+ public void setLieferschein(Lieferschein lieferschein) {
+ this.lieferschein = lieferschein;
+ }
+
+ public void setRechnung(Rechnung rechnung) {
+ this.rechnung = rechnung;
+ }
+
+ public void zeigeStatus() {
+ if (this.angebot != null) {
+ System.out.println("Status: Angebot erstellt");
+ }
+ if (this.auftragsbestaetigung != null) {
+ System.out.println("Status: Auftragsbestätigung erstellt");
+ }
+ if (this.lieferschein != null) {
+ System.out.println("Status: Lieferschein erstellt");
+ }
+ if (this.rechnung != null) {
+ System.out.println("Status: Rechnung erstellt");
+ }
+ }
+
+ public Angebot getAngebot() {
+ return angebot;
+ }
+
+ public Auftragsbestaetigung getAuftragsbestaetigung() {
+ return auftragsbestaetigung;
+ }
+
+ public Lieferschein getLieferschein() {
+ return lieferschein;
+ }
+
+ public Rechnung getRechnung() {
+ return rechnung;
+ }
+}
diff --git a/Faktura_Gruppe5/src/view/StartUpMenue.java b/Faktura_Gruppe5/src/view/StartUpMenue.java
index 1080911..dd95a43 100644
--- a/Faktura_Gruppe5/src/view/StartUpMenue.java
+++ b/Faktura_Gruppe5/src/view/StartUpMenue.java
@@ -2,27 +2,33 @@ package view;
import java.util.Scanner;
-import controller.ArtikelController;
-import controller.KundenController;
+import controller.AuftragsbestaetigungController;
+import controller.FirmenstammdatenController;
+import controller.LieferscheinController;
import controller.MainController;
+import controller.RechnungController;
+import controller.WertschoepfungsketteController;
+import model.Angebot;
import model.Artikel;
+import model.Firmenstammdaten;
import model.Kunde;
+import model.Wertschoepfungskette;
public class StartUpMenue {
-
- private MainController mainController;
-
- public StartUpMenue(MainController mainController) {
- this.mainController = mainController;
- this.showMenu();
-
- }
+
+ private MainController mainController;
+
+ public StartUpMenue(MainController mainController) {
+ this.mainController = mainController;
+
+ this.showMenu();
+ }
public void showMenu() {
Scanner scanner = new Scanner(System.in);
-
+
this.mainController.getFirmenstammdatenController().checkForCompanyData(scanner);
-
+
int choice = 0;
while (choice != 9) {
@@ -32,37 +38,123 @@ public class StartUpMenue {
System.out.println("2. Kundenstammdaten ansehen");
System.out.println("3. Artikel anlegen");
System.out.println("4. Artikelstammdaten ansehen");
+ System.out.println("5. Angebot erstellen");
+ System.out.println("6. Angebot/Wertschöpfungskette anzeigen");
System.out.println("9. Programm beenden");
try {
choice = Integer.parseInt(scanner.nextLine());
switch (choice) {
case 1:
- Kunde kunde = new Kunde();
-
- this.mainController.getKundenController().eingabeDaten(kunde, scanner);
- this.mainController.getKundenController().speichereAlsXML(kunde);
+ Kunde kunde = new 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 = this.mainController.getKundenController().leseAusXML(kundenWahl);
- kunde1.anzeigen();
-
+ System.out.println("Kundennummer eingeben:");
+ int kundenWahl = Integer.parseInt(scanner.nextLine());
+ Kunde kunde1 = this.mainController.getKundenController().leseAusXML(kundenWahl);
+ kunde1.anzeigen();
break;
case 3:
- Artikel artikel = new Artikel();
-
- this.mainController.getArtikelController().eingabeDaten(artikel, scanner);
- this.mainController.getArtikelController().speichereAlsXML(artikel);
+ Artikel artikel = new 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 = this.mainController.getArtikelController().leseAusXML(artikelWahl);
- artikel1.anzeigen();
-// MainController.viewArticleData();
+ System.out.println("Artikelnummer eingeben:");
+ int artikelWahl = Integer.parseInt(scanner.nextLine());
+ Artikel artikel1 = this.mainController.getArtikelController().leseAusXML(artikelWahl);
+ artikel1.anzeigen();
break;
+ case 5:
+ Angebot angebot = this.mainController.getAngebotController().erstelleAngebot();
+ this.mainController.getWertschoepfungsketteController().erstelleWertschoepfungskette(angebot);
+ break;
+ case 6:
+ System.out.println("Angebotsnummer eingeben:");
+ int angebotsNummer = Integer.parseInt(scanner.nextLine());
+ Wertschoepfungskette wertschoepfungskette = this.mainController.getWertschoepfungsketteController().leseAusXML(angebotsNummer);
+ if (wertschoepfungskette != null) {
+ wertschoepfungskette.zeigeStatus();
+ int choice1=0;
+ while(choice1!=9) {
+ System.out.println("Bitte wählen Sie eine Option:");
+ System.out.println("1. Angebot anzeigen");
+ if(wertschoepfungskette.getAuftragsbestaetigung()!= null) {
+ System.out.println("2. Auftragsbestätigung ansehen");
+ }
+ else {
+ System.out.println("2. Auftragsbestätigung anlegen");
+ }
+ if(wertschoepfungskette.getLieferschein()!= null) {
+ System.out.println("3. Lieferschein ansehen");
+ }
+ else {
+ System.out.println("3. Lieferschein anlegen");
+ }
+ if(wertschoepfungskette.getRechnung()!= null) {
+ System.out.println("4. Rechnung ansehen");
+ }
+ else {
+ System.out.println("4. Rechnung anlegen");
+ }
+
+ System.out.println("9. Zurück zum Hauptmenü");
+
+
+ choice1 = Integer.parseInt(scanner.nextLine());
+
+ switch(choice1) {
+ case 1:
+ wertschoepfungskette.getAngebot().anzeigen();
+ break;
+
+ case 2:
+ if(wertschoepfungskette.getAuftragsbestaetigung()!= null) {
+ wertschoepfungskette.getAuftragsbestaetigung().anzeigen();
+ }
+ else {
+ AuftragsbestaetigungController auftragsbestaetigungController = new AuftragsbestaetigungController();
+ wertschoepfungskette.setAuftragsbestaetigung(auftragsbestaetigungController.erstelleAuftragsbestaetigung(wertschoepfungskette.getAngebot()));
+ this.mainController.getWertschoepfungsketteController().speichereAlsXML(wertschoepfungskette);
+ }
+ break;
+
+ case 3:
+ if(wertschoepfungskette.getLieferschein()!= null) {
+ wertschoepfungskette.getLieferschein().anzeigen();
+ }
+ else {
+ LieferscheinController lieferscheinController = new LieferscheinController();
+ FirmenstammdatenController firmenstammdaten = new FirmenstammdatenController();
+ wertschoepfungskette.setLieferschein(lieferscheinController.erstelleLieferschein(wertschoepfungskette.getAngebot(),firmenstammdaten.leseAusXML()));
+ this.mainController.getWertschoepfungsketteController().speichereAlsXML(wertschoepfungskette);
+ }
+ break;
+
+ case 4:
+ if(wertschoepfungskette.getRechnung()!= null) {
+ wertschoepfungskette.getRechnung().anzeigen();
+ }
+ else {
+ RechnungController rechnungController = new RechnungController();
+ FirmenstammdatenController firmenstammdaten = new FirmenstammdatenController();
+ wertschoepfungskette.setRechnung(rechnungController.erstelleRechnung(wertschoepfungskette.getAngebot(),firmenstammdaten.leseAusXML()));
+ this.mainController.getWertschoepfungsketteController().speichereAlsXML(wertschoepfungskette);
+ }
+ break;
+ case 9:
+ System.out.println("Zurück um Hauptmenü");
+ break;
+
+ }
+
+ }
+ } else {
+ System.out.println("Angebot nicht gefunden.");
+ }
+ break;
case 9:
System.out.println("Programm wird beendet.");
break;