Klasse WERTSCHOEPFUNG hinzugefügt. Dazu gehören Auftragsbestätigung,
Lieferschein, Rechnung. Funktionalität zum STARTUPMENUE. Lieferschein hat noch Probleme beim erzeugen der XML Datei. Programm ist im Grunde aber lauffähig.master
parent
4876b5b587
commit
5fd4a14b0c
|
@ -0,0 +1,20 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<Firmenstammdaten>
|
||||||
|
<Firmenname>Denis</Firmenname>
|
||||||
|
<Inhaber>Denis</Inhaber>
|
||||||
|
<Strasse>Musterweg 1</Strasse>
|
||||||
|
<PLZ>83636</PLZ>
|
||||||
|
<Stadt>Mannheim</Stadt>
|
||||||
|
<Land>Deutschland</Land>
|
||||||
|
<Telefon>026373344</Telefon>
|
||||||
|
<Mobilnummer>02237353353</Mobilnummer>
|
||||||
|
<Telefax>03736376363533</Telefax>
|
||||||
|
<Email>denis@gmail.com</Email>
|
||||||
|
<Webseite>www.abc.de</Webseite>
|
||||||
|
<UmsatzsteuerIdNummer>203636820632</UmsatzsteuerIdNummer>
|
||||||
|
<Finanzamt>Mannheim</Finanzamt>
|
||||||
|
<Bankname>Deutsche Bank</Bankname>
|
||||||
|
<IBAN>DE 3836823728</IBAN>
|
||||||
|
<BIC>2730353</BIC>
|
||||||
|
<GlaeubigerID>1</GlaeubigerID>
|
||||||
|
</Firmenstammdaten>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<Kunde>
|
||||||
|
<Kundennummer>1</Kundennummer>
|
||||||
|
<Name>Denis</Name>
|
||||||
|
<Anschrift>aadada</Anschrift>
|
||||||
|
<Email>dadada</Email>
|
||||||
|
<Telefonnummer>daadad</Telefonnummer>
|
||||||
|
<Kleinunternehmer>true</Kleinunternehmer>
|
||||||
|
<Ansprechpartner>sdsds</Ansprechpartner>
|
||||||
|
</Kunde>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<Kunde>
|
||||||
|
<Kundennummer>2</Kundennummer>
|
||||||
|
<Name>f</Name>
|
||||||
|
<Anschrift>frrf</Anschrift>
|
||||||
|
<Email>rfrfr</Email>
|
||||||
|
<Telefonnummer>frfrf</Telefonnummer>
|
||||||
|
<Kleinunternehmer>false</Kleinunternehmer>
|
||||||
|
<Ansprechpartner>ededed</Ansprechpartner>
|
||||||
|
</Kunde>
|
|
@ -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<Artikel> artikelListe = new ArrayList<>();
|
||||||
|
List<Integer> 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<Artikel> artikelListe = new ArrayList<>();
|
||||||
|
List<Integer> 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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,9 +21,9 @@ import java.util.Scanner;
|
||||||
|
|
||||||
public class ArtikelController {
|
public class ArtikelController {
|
||||||
|
|
||||||
private String ordnerPfad = "artikel";
|
private String ordnerPfad = "artikel";
|
||||||
|
|
||||||
public ArtikelController() {
|
public ArtikelController() {
|
||||||
File ordner = new File(ordnerPfad);
|
File ordner = new File(ordnerPfad);
|
||||||
if (!ordner.exists()) {
|
if (!ordner.exists()) {
|
||||||
if (ordner.mkdir()) {
|
if (ordner.mkdir()) {
|
||||||
|
@ -34,6 +34,21 @@ 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
|
// Methode zum Speichern der Artikeldaten im XML-Format
|
||||||
public void speichereAlsXML(Artikel artikel) {
|
public void speichereAlsXML(Artikel artikel) {
|
||||||
try {
|
try {
|
||||||
|
@ -70,12 +85,17 @@ public class ArtikelController {
|
||||||
mehrwertsteuersatzElement.appendChild(doc.createTextNode(Double.toString(artikel.getMehrwertsteuersatz())));
|
mehrwertsteuersatzElement.appendChild(doc.createTextNode(Double.toString(artikel.getMehrwertsteuersatz())));
|
||||||
rootElement.appendChild(mehrwertsteuersatzElement);
|
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
|
// Transformieren und Speichern in Datei
|
||||||
TransformerFactory transformerFactory = TransformerFactory.newInstance();
|
TransformerFactory transformerFactory = TransformerFactory.newInstance();
|
||||||
Transformer transformer = transformerFactory.newTransformer();
|
Transformer transformer = transformerFactory.newTransformer();
|
||||||
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
||||||
DOMSource source = new DOMSource(doc);
|
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);
|
transformer.transform(source, result);
|
||||||
|
|
||||||
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
|
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
|
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei
|
||||||
public Artikel leseAusXML(int artikelnummer) {
|
public Artikel leseAusXML(int artikelnummer) {
|
||||||
try {
|
try {
|
||||||
File xmlDatei = new File(this.ordnerPfad + "/" + Integer.toString(artikelnummer) + ".xml");
|
File xmlDatei = new File(this.ordnerPfad + "/" + artikelnummer + ".xml");
|
||||||
Artikel artikel = new Artikel(artikelnummer);
|
Artikel artikel = new Artikel(artikelnummer);
|
||||||
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
|
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
|
||||||
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
|
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
|
||||||
|
@ -108,16 +128,16 @@ public class ArtikelController {
|
||||||
artikel.setBezeichnung(eElement.getElementsByTagName("Bezeichnung").item(0).getTextContent());
|
artikel.setBezeichnung(eElement.getElementsByTagName("Bezeichnung").item(0).getTextContent());
|
||||||
artikel.setNettopreis(Double.parseDouble(eElement.getElementsByTagName("Nettopreis").item(0).getTextContent()));
|
artikel.setNettopreis(Double.parseDouble(eElement.getElementsByTagName("Nettopreis").item(0).getTextContent()));
|
||||||
artikel.setMehrwertsteuersatz(Double.parseDouble(eElement.getElementsByTagName("Mehrwertsteuersatz").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.");
|
System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
|
||||||
return artikel;
|
return artikel;
|
||||||
} catch (ParserConfigurationException | SAXException | IOException e) {
|
} catch (ParserConfigurationException | SAXException | IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei und in der Konsole ausgeben
|
// 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
|
// Methode zur Eingabe der Artikeldaten über die Konsole
|
||||||
public void eingabeDaten(Artikel artikel, Scanner scanner) {
|
public void eingabeDaten(Artikel artikel, Scanner scanner) {
|
||||||
|
artikel.setArtikelnummer(generiereNeueArtikelnummer());
|
||||||
|
|
||||||
System.out.print("Einheit: ");
|
System.out.print("Einheit: ");
|
||||||
artikel.setEinheit(scanner.nextLine());
|
artikel.setEinheit(scanner.nextLine());
|
||||||
|
|
||||||
|
@ -139,5 +161,8 @@ public class ArtikelController {
|
||||||
|
|
||||||
System.out.print("Mehrwertsteuersatz: ");
|
System.out.print("Mehrwertsteuersatz: ");
|
||||||
artikel.setMehrwertsteuersatz(Double.parseDouble(scanner.nextLine()));
|
artikel.setMehrwertsteuersatz(Double.parseDouble(scanner.nextLine()));
|
||||||
|
|
||||||
|
// Der Bruttopreis wird automatisch berechnet und gesetzt
|
||||||
|
artikel.setBruttopreis(artikel.getNettopreis() + (artikel.getNettopreis() * artikel.getMehrwertsteuersatz() / 100));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,6 +1,7 @@
|
||||||
package controller;
|
package controller;
|
||||||
|
|
||||||
import model.Firmenstammdaten;
|
import model.Firmenstammdaten;
|
||||||
|
import model.Anschrift;
|
||||||
|
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
|
@ -33,17 +34,17 @@ public class FirmenstammdatenController {
|
||||||
System.out.print("Inhaber: ");
|
System.out.print("Inhaber: ");
|
||||||
daten.setInhaber(scanner.nextLine());
|
daten.setInhaber(scanner.nextLine());
|
||||||
|
|
||||||
|
Anschrift anschrift = new Anschrift();
|
||||||
System.out.print("Straße: ");
|
System.out.print("Straße: ");
|
||||||
daten.setStrasse(scanner.nextLine());
|
anschrift.setStrasse(scanner.nextLine());
|
||||||
|
|
||||||
System.out.print("PLZ: ");
|
System.out.print("PLZ: ");
|
||||||
daten.setPlz(scanner.nextLine());
|
anschrift.setPlz(scanner.nextLine());
|
||||||
|
|
||||||
System.out.print("Stadt: ");
|
System.out.print("Ort: ");
|
||||||
daten.setStadt(scanner.nextLine());
|
anschrift.setOrt(scanner.nextLine());
|
||||||
|
|
||||||
System.out.print("Land: ");
|
daten.setAnschrift(anschrift);
|
||||||
daten.setLand(scanner.nextLine());
|
|
||||||
|
|
||||||
System.out.print("Telefon: ");
|
System.out.print("Telefon: ");
|
||||||
daten.setTelefon(scanner.nextLine());
|
daten.setTelefon(scanner.nextLine());
|
||||||
|
@ -102,25 +103,22 @@ public class FirmenstammdatenController {
|
||||||
inhaberElement.appendChild(doc.createTextNode(daten.getInhaber()));
|
inhaberElement.appendChild(doc.createTextNode(daten.getInhaber()));
|
||||||
rootElement.appendChild(inhaberElement);
|
rootElement.appendChild(inhaberElement);
|
||||||
|
|
||||||
// Straße-Element
|
// Anschrift-Element
|
||||||
|
Element anschriftElement = doc.createElement("Anschrift");
|
||||||
|
|
||||||
Element strasseElement = doc.createElement("Strasse");
|
Element strasseElement = doc.createElement("Strasse");
|
||||||
strasseElement.appendChild(doc.createTextNode(daten.getStrasse()));
|
strasseElement.appendChild(doc.createTextNode(daten.getAnschrift().getStrasse()));
|
||||||
rootElement.appendChild(strasseElement);
|
anschriftElement.appendChild(strasseElement);
|
||||||
|
|
||||||
// PLZ-Element
|
|
||||||
Element plzElement = doc.createElement("PLZ");
|
Element plzElement = doc.createElement("PLZ");
|
||||||
plzElement.appendChild(doc.createTextNode(daten.getPlz()));
|
plzElement.appendChild(doc.createTextNode(daten.getAnschrift().getPlz()));
|
||||||
rootElement.appendChild(plzElement);
|
anschriftElement.appendChild(plzElement);
|
||||||
|
|
||||||
// Stadt-Element
|
Element ortElement = doc.createElement("Ort");
|
||||||
Element stadtElement = doc.createElement("Stadt");
|
ortElement.appendChild(doc.createTextNode(daten.getAnschrift().getOrt()));
|
||||||
stadtElement.appendChild(doc.createTextNode(daten.getStadt()));
|
anschriftElement.appendChild(ortElement);
|
||||||
rootElement.appendChild(stadtElement);
|
|
||||||
|
|
||||||
// Land-Element
|
rootElement.appendChild(anschriftElement);
|
||||||
Element landElement = doc.createElement("Land");
|
|
||||||
landElement.appendChild(doc.createTextNode(daten.getLand()));
|
|
||||||
rootElement.appendChild(landElement);
|
|
||||||
|
|
||||||
// Telefon-Element
|
// Telefon-Element
|
||||||
Element telefonElement = doc.createElement("Telefon");
|
Element telefonElement = doc.createElement("Telefon");
|
||||||
|
@ -212,10 +210,14 @@ public class FirmenstammdatenController {
|
||||||
|
|
||||||
daten.setFirmenname(eElement.getElementsByTagName("Firmenname").item(0).getTextContent());
|
daten.setFirmenname(eElement.getElementsByTagName("Firmenname").item(0).getTextContent());
|
||||||
daten.setInhaber(eElement.getElementsByTagName("Inhaber").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());
|
Element anschriftElement = (Element) eElement.getElementsByTagName("Anschrift").item(0);
|
||||||
daten.setStadt(eElement.getElementsByTagName("Stadt").item(0).getTextContent());
|
Anschrift anschrift = new Anschrift();
|
||||||
daten.setLand(eElement.getElementsByTagName("Land").item(0).getTextContent());
|
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.setTelefon(eElement.getElementsByTagName("Telefon").item(0).getTextContent());
|
||||||
daten.setMobilnummer(eElement.getElementsByTagName("Mobilnummer").item(0).getTextContent());
|
daten.setMobilnummer(eElement.getElementsByTagName("Mobilnummer").item(0).getTextContent());
|
||||||
daten.setTelefax(eElement.getElementsByTagName("Telefax").item(0).getTextContent());
|
daten.setTelefax(eElement.getElementsByTagName("Telefax").item(0).getTextContent());
|
||||||
|
@ -238,13 +240,11 @@ public class FirmenstammdatenController {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkForCompanyData(Scanner scanner) {
|
public void checkForCompanyData(Scanner scanner) {
|
||||||
File file = new File(this.dateiPfad);
|
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package controller;
|
package controller;
|
||||||
|
|
||||||
|
import model.Anschrift;
|
||||||
import model.Kunde;
|
import model.Kunde;
|
||||||
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilder;
|
||||||
import javax.xml.parsers.DocumentBuilderFactory;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
||||||
|
@ -21,9 +22,9 @@ import java.util.Scanner;
|
||||||
|
|
||||||
public class KundenController {
|
public class KundenController {
|
||||||
|
|
||||||
private String ordnerPfad = "kunde";
|
private String ordnerPfad = "kunde";
|
||||||
|
|
||||||
public KundenController() {
|
public KundenController() {
|
||||||
File ordner = new File(ordnerPfad);
|
File ordner = new File(ordnerPfad);
|
||||||
if (!ordner.exists()) {
|
if (!ordner.exists()) {
|
||||||
if (ordner.mkdir()) {
|
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
|
// Methode zum Speichern der Kundendaten im XML-Format
|
||||||
public void speichereAlsXML(Kunde kunde) {
|
public void speichereAlsXML(Kunde kunde) {
|
||||||
try {
|
try {
|
||||||
|
@ -57,9 +73,21 @@ public class KundenController {
|
||||||
|
|
||||||
// Anschrift-Element
|
// Anschrift-Element
|
||||||
Element anschriftElement = doc.createElement("Anschrift");
|
Element anschriftElement = doc.createElement("Anschrift");
|
||||||
anschriftElement.appendChild(doc.createTextNode(kunde.getAnschrift()));
|
|
||||||
rootElement.appendChild(anschriftElement);
|
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
|
// Email-Element
|
||||||
Element emailElement = doc.createElement("Email");
|
Element emailElement = doc.createElement("Email");
|
||||||
emailElement.appendChild(doc.createTextNode(kunde.getEmail()));
|
emailElement.appendChild(doc.createTextNode(kunde.getEmail()));
|
||||||
|
@ -85,7 +113,7 @@ public class KundenController {
|
||||||
Transformer transformer = transformerFactory.newTransformer();
|
Transformer transformer = transformerFactory.newTransformer();
|
||||||
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
||||||
DOMSource source = new DOMSource(doc);
|
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);
|
transformer.transform(source, result);
|
||||||
|
|
||||||
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
|
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
|
// Methode zum Auslesen der Kundendaten aus einer XML-Datei
|
||||||
public Kunde leseAusXML(int kundennummer) {
|
public Kunde leseAusXML(int kundennummer) {
|
||||||
try {
|
try {
|
||||||
File xmlDatei = new File(ordnerPfad + "/" + Integer.toString(kundennummer) + ".xml");
|
File xmlDatei = new File(ordnerPfad + "/" + kundennummer + ".xml");
|
||||||
Kunde kunde = new Kunde(kundennummer);
|
Kunde kunde = new Kunde(kundennummer);
|
||||||
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
|
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
|
||||||
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
|
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
|
||||||
|
@ -115,7 +143,15 @@ public class KundenController {
|
||||||
|
|
||||||
kunde.setKundennummer(Integer.parseInt(eElement.getElementsByTagName("Kundennummer").item(0).getTextContent()));
|
kunde.setKundennummer(Integer.parseInt(eElement.getElementsByTagName("Kundennummer").item(0).getTextContent()));
|
||||||
kunde.setName(eElement.getElementsByTagName("Name").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.setEmail(eElement.getElementsByTagName("Email").item(0).getTextContent());
|
||||||
kunde.setTelefonnummer(eElement.getElementsByTagName("Telefonnummer").item(0).getTextContent());
|
kunde.setTelefonnummer(eElement.getElementsByTagName("Telefonnummer").item(0).getTextContent());
|
||||||
kunde.setIstKleinunternehmer(Boolean.parseBoolean(eElement.getElementsByTagName("Kleinunternehmer").item(0).getTextContent()));
|
kunde.setIstKleinunternehmer(Boolean.parseBoolean(eElement.getElementsByTagName("Kleinunternehmer").item(0).getTextContent()));
|
||||||
|
@ -128,35 +164,102 @@ public class KundenController {
|
||||||
} catch (ParserConfigurationException | SAXException | IOException e) {
|
} catch (ParserConfigurationException | SAXException | IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return null;
|
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();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Methode zur Eingabe der Kundendaten über die Konsole
|
// Methode zur Eingabe der Kundendaten über die Konsole
|
||||||
public void eingabeDaten(Kunde kunde, Scanner scanner) {
|
public void eingabeDaten(Kunde kunde, Scanner scanner) {
|
||||||
System.out.print("Name: ");
|
kunde.setKundennummer(generiereNeueKundennummer());
|
||||||
kunde.setName(scanner.nextLine());
|
|
||||||
|
|
||||||
System.out.print("Anschrift: ");
|
// Name
|
||||||
kunde.setAnschrift(scanner.nextLine());
|
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: ");
|
// Straße
|
||||||
kunde.setEmail(scanner.nextLine());
|
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: ");
|
// PLZ
|
||||||
kunde.setTelefonnummer(scanner.nextLine());
|
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)? ");
|
// Ort
|
||||||
kunde.setIstKleinunternehmer(Boolean.parseBoolean(scanner.nextLine()));
|
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: ");
|
Anschrift anschrift = new Anschrift(strasse, plz, ort);
|
||||||
kunde.setAnsprechpartner(scanner.nextLine());
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,32 +1,56 @@
|
||||||
package controller;
|
package controller;
|
||||||
|
|
||||||
import model.Kunde;
|
|
||||||
|
|
||||||
public class MainController {
|
public class MainController {
|
||||||
|
|
||||||
private KundenController kundenController;
|
private KundenController kundenController;
|
||||||
private ArtikelController artikelController;
|
private ArtikelController artikelController;
|
||||||
private FirmenstammdatenController firmenstammdatenController;
|
private FirmenstammdatenController firmenstammdatenController;
|
||||||
|
private AngebotController angebotController;
|
||||||
|
private WertschoepfungsketteController wertschoepfungsketteController;
|
||||||
|
private RechnungController rechnungController;
|
||||||
|
private LieferscheinController lieferscheinController;
|
||||||
|
private AuftragsbestaetigungController auftragsbestaetigungController;
|
||||||
|
|
||||||
public MainController() {
|
public MainController() {
|
||||||
this.kundenController = new KundenController();
|
this.kundenController = new KundenController();
|
||||||
this.artikelController = new ArtikelController();
|
this.artikelController = new ArtikelController();
|
||||||
this.firmenstammdatenController = new FirmenstammdatenController();
|
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() {
|
public KundenController getKundenController() {
|
||||||
return kundenController;
|
return kundenController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArtikelController getArtikelController() {
|
public ArtikelController getArtikelController() {
|
||||||
return artikelController;
|
return artikelController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FirmenstammdatenController getFirmenstammdatenController() {
|
public FirmenstammdatenController getFirmenstammdatenController() {
|
||||||
return this.firmenstammdatenController;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -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<Artikel> artikelListe;
|
||||||
|
private List<Integer> 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<Artikel> getArtikelListe() {
|
||||||
|
return artikelListe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setArtikelListe(List<Artikel> artikelListe) {
|
||||||
|
this.artikelListe = artikelListe;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Integer> getMenge() {
|
||||||
|
return menge;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMenge(List<Integer> 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));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,6 +7,7 @@ public class Artikel {
|
||||||
private String bezeichnung;
|
private String bezeichnung;
|
||||||
private double nettopreis;
|
private double nettopreis;
|
||||||
private double mehrwertsteuersatz;
|
private double mehrwertsteuersatz;
|
||||||
|
private double bruttopreis;
|
||||||
|
|
||||||
// Konstruktor
|
// Konstruktor
|
||||||
public Artikel(String einheit, String bezeichnung, double nettopreis, double mehrwertsteuersatz) {
|
public Artikel(String einheit, String bezeichnung, double nettopreis, double mehrwertsteuersatz) {
|
||||||
|
@ -15,28 +16,27 @@ public class Artikel {
|
||||||
this.bezeichnung = bezeichnung;
|
this.bezeichnung = bezeichnung;
|
||||||
this.nettopreis = nettopreis;
|
this.nettopreis = nettopreis;
|
||||||
this.mehrwertsteuersatz = mehrwertsteuersatz;
|
this.mehrwertsteuersatz = mehrwertsteuersatz;
|
||||||
|
this.bruttopreis = berechneBruttopreis(nettopreis, mehrwertsteuersatz);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Artikel(int artikelnummer) {
|
public Artikel(int artikelnummer) {
|
||||||
this.artikelnummer = artikelnummer;
|
this.artikelnummer = artikelnummer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Leerer Konstruktor
|
// Leerer Konstruktor
|
||||||
public Artikel() {
|
public Artikel() {
|
||||||
this.artikelnummer = ++aktuelleArtikelnummer; // Vergabe der Artikelnummer und Inkrement
|
this.artikelnummer = ++aktuelleArtikelnummer; // Vergabe der Artikelnummer und Inkrement
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setArtikelnummer(int artikelnummer) {
|
|
||||||
this.artikelnummer = artikelnummer;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getter und Setter
|
// Getter und Setter
|
||||||
public int getArtikelnummer() {
|
public int getArtikelnummer() {
|
||||||
return artikelnummer;
|
return artikelnummer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setArtikelnummer(int artikelnummer) {
|
||||||
|
this.artikelnummer = artikelnummer;
|
||||||
|
}
|
||||||
|
|
||||||
public String getEinheit() {
|
public String getEinheit() {
|
||||||
return einheit;
|
return einheit;
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,7 @@ public class Artikel {
|
||||||
|
|
||||||
public void setNettopreis(double nettopreis) {
|
public void setNettopreis(double nettopreis) {
|
||||||
this.nettopreis = nettopreis;
|
this.nettopreis = nettopreis;
|
||||||
|
this.bruttopreis = berechneBruttopreis(nettopreis, mehrwertsteuersatz); // Update bruttopreis
|
||||||
}
|
}
|
||||||
|
|
||||||
public double getMehrwertsteuersatz() {
|
public double getMehrwertsteuersatz() {
|
||||||
|
@ -67,6 +68,20 @@ public class Artikel {
|
||||||
|
|
||||||
public void setMehrwertsteuersatz(double mehrwertsteuersatz) {
|
public void setMehrwertsteuersatz(double mehrwertsteuersatz) {
|
||||||
this.mehrwertsteuersatz = 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
|
// Methode zum Anzeigen der Artikeldaten
|
||||||
|
@ -76,5 +91,6 @@ public class Artikel {
|
||||||
System.out.println("Bezeichnung: " + bezeichnung);
|
System.out.println("Bezeichnung: " + bezeichnung);
|
||||||
System.out.println("Nettopreis: " + nettopreis);
|
System.out.println("Nettopreis: " + nettopreis);
|
||||||
System.out.println("Mehrwertsteuersatz: " + mehrwertsteuersatz);
|
System.out.println("Mehrwertsteuersatz: " + mehrwertsteuersatz);
|
||||||
|
System.out.println("Bruttopreis: " + bruttopreis);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,10 +3,7 @@ package model;
|
||||||
public class Firmenstammdaten {
|
public class Firmenstammdaten {
|
||||||
private String firmenname;
|
private String firmenname;
|
||||||
private String inhaber;
|
private String inhaber;
|
||||||
private String strasse;
|
private Anschrift anschrift; // Verwendung der Anschrift-Klasse
|
||||||
private String plz;
|
|
||||||
private String stadt;
|
|
||||||
private String land;
|
|
||||||
private String telefon;
|
private String telefon;
|
||||||
private String mobilnummer;
|
private String mobilnummer;
|
||||||
private String telefax;
|
private String telefax;
|
||||||
|
@ -21,54 +18,115 @@ public class Firmenstammdaten {
|
||||||
|
|
||||||
// Getter und Setter für alle Attribute
|
// Getter und Setter für alle Attribute
|
||||||
|
|
||||||
public String getFirmenname() { return firmenname; }
|
public String getFirmenname() {
|
||||||
public void setFirmenname(String firmenname) { this.firmenname = firmenname; }
|
return firmenname;
|
||||||
|
}
|
||||||
|
|
||||||
public String getInhaber() { return inhaber; }
|
public void setFirmenname(String firmenname) {
|
||||||
public void setInhaber(String inhaber) { this.inhaber = inhaber; }
|
this.firmenname = firmenname;
|
||||||
|
}
|
||||||
|
|
||||||
public String getStrasse() { return strasse; }
|
public String getInhaber() {
|
||||||
public void setStrasse(String strasse) { this.strasse = strasse; }
|
return inhaber;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPlz() { return plz; }
|
public void setInhaber(String inhaber) {
|
||||||
public void setPlz(String plz) { this.plz = plz; }
|
this.inhaber = inhaber;
|
||||||
|
}
|
||||||
|
|
||||||
public String getStadt() { return stadt; }
|
public Anschrift getAnschrift() {
|
||||||
public void setStadt(String stadt) { this.stadt = stadt; }
|
return anschrift;
|
||||||
|
}
|
||||||
|
|
||||||
public String getLand() { return land; }
|
public void setAnschrift(Anschrift anschrift) {
|
||||||
public void setLand(String land) { this.land = land; }
|
this.anschrift = anschrift;
|
||||||
|
}
|
||||||
|
|
||||||
public String getTelefon() { return telefon; }
|
public String getTelefon() {
|
||||||
public void setTelefon(String telefon) { this.telefon = telefon; }
|
return telefon;
|
||||||
|
}
|
||||||
|
|
||||||
public String getMobilnummer() { return mobilnummer; }
|
public void setTelefon(String telefon) {
|
||||||
public void setMobilnummer(String mobilnummer) { this.mobilnummer = mobilnummer; }
|
this.telefon = telefon;
|
||||||
|
}
|
||||||
|
|
||||||
public String getTelefax() { return telefax; }
|
public String getMobilnummer() {
|
||||||
public void setTelefax(String telefax) { this.telefax = telefax; }
|
return mobilnummer;
|
||||||
|
}
|
||||||
|
|
||||||
public String getEmail() { return email; }
|
public void setMobilnummer(String mobilnummer) {
|
||||||
public void setEmail(String email) { this.email = email; }
|
this.mobilnummer = mobilnummer;
|
||||||
|
}
|
||||||
|
|
||||||
public String getWebseite() { return webseite; }
|
public String getTelefax() {
|
||||||
public void setWebseite(String webseite) { this.webseite = webseite; }
|
return telefax;
|
||||||
|
}
|
||||||
|
|
||||||
public String getUmsatzsteuerIdNummer() { return umsatzsteuerIdNummer; }
|
public void setTelefax(String telefax) {
|
||||||
public void setUmsatzsteuerIdNummer(String umsatzsteuerIdNummer) { this.umsatzsteuerIdNummer = umsatzsteuerIdNummer; }
|
this.telefax = telefax;
|
||||||
|
}
|
||||||
|
|
||||||
public String getFinanzamt() { return finanzamt; }
|
public String getEmail() {
|
||||||
public void setFinanzamt(String finanzamt) { this.finanzamt = finanzamt; }
|
return email;
|
||||||
|
}
|
||||||
|
|
||||||
public String getBankname() { return bankname; }
|
public void setEmail(String email) {
|
||||||
public void setBankname(String bankname) { this.bankname = bankname; }
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
public String getIban() { return iban; }
|
public String getWebseite() {
|
||||||
public void setIban(String iban) { this.iban = iban; }
|
return webseite;
|
||||||
|
}
|
||||||
|
|
||||||
public String getBic() { return bic; }
|
public void setWebseite(String webseite) {
|
||||||
public void setBic(String bic) { this.bic = bic; }
|
this.webseite = webseite;
|
||||||
|
}
|
||||||
|
|
||||||
public String getGlaeubigerID() { return glaeubigerID; }
|
public String getUmsatzsteuerIdNummer() {
|
||||||
public void setGlaeubigerID(String glaeubigerID) { this.glaeubigerID = glaeubigerID; }
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,15 +4,14 @@ public class Kunde {
|
||||||
private static int aktuelleKundennummer = 0; // Statische Variable für fortlaufende Kundennummer
|
private static int aktuelleKundennummer = 0; // Statische Variable für fortlaufende Kundennummer
|
||||||
private int kundennummer;
|
private int kundennummer;
|
||||||
private String name;
|
private String name;
|
||||||
private String anschrift;
|
private Anschrift anschrift;
|
||||||
// Straße - PLZ - Ort
|
|
||||||
private String email;
|
private String email;
|
||||||
private String telefonnummer;
|
private String telefonnummer;
|
||||||
private boolean istKleinunternehmer;
|
private boolean istKleinunternehmer;
|
||||||
private String ansprechpartner;
|
private String ansprechpartner;
|
||||||
|
|
||||||
// Konstruktor
|
// 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) {
|
String ansprechpartner) {
|
||||||
this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement
|
this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
@ -49,11 +48,11 @@ public class Kunde {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getAnschrift() {
|
public Anschrift getAnschrift() {
|
||||||
return anschrift;
|
return anschrift;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAnschrift(String anschrift) {
|
public void setAnschrift(Anschrift anschrift) {
|
||||||
this.anschrift = anschrift;
|
this.anschrift = anschrift;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,7 +92,10 @@ public class Kunde {
|
||||||
public void anzeigen() {
|
public void anzeigen() {
|
||||||
System.out.println("Kundennummer: " + kundennummer);
|
System.out.println("Kundennummer: " + kundennummer);
|
||||||
System.out.println("Name: " + name);
|
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("Email: " + email);
|
||||||
System.out.println("Telefonnummer: " + telefonnummer);
|
System.out.println("Telefonnummer: " + telefonnummer);
|
||||||
System.out.println("Kleinunternehmer: " + (istKleinunternehmer ? "Ja" : "Nein"));
|
System.out.println("Kleinunternehmer: " + (istKleinunternehmer ? "Ja" : "Nein"));
|
||||||
|
|
|
@ -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(" --------------------------------------");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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(" --------------------------------------");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
|
@ -2,21 +2,27 @@ package view;
|
||||||
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
import controller.ArtikelController;
|
import controller.AuftragsbestaetigungController;
|
||||||
import controller.KundenController;
|
import controller.FirmenstammdatenController;
|
||||||
|
import controller.LieferscheinController;
|
||||||
import controller.MainController;
|
import controller.MainController;
|
||||||
|
import controller.RechnungController;
|
||||||
|
import controller.WertschoepfungsketteController;
|
||||||
|
import model.Angebot;
|
||||||
import model.Artikel;
|
import model.Artikel;
|
||||||
|
import model.Firmenstammdaten;
|
||||||
import model.Kunde;
|
import model.Kunde;
|
||||||
|
import model.Wertschoepfungskette;
|
||||||
|
|
||||||
public class StartUpMenue {
|
public class StartUpMenue {
|
||||||
|
|
||||||
private MainController mainController;
|
private MainController mainController;
|
||||||
|
|
||||||
public StartUpMenue(MainController mainController) {
|
public StartUpMenue(MainController mainController) {
|
||||||
this.mainController = mainController;
|
this.mainController = mainController;
|
||||||
this.showMenu();
|
|
||||||
|
|
||||||
}
|
this.showMenu();
|
||||||
|
}
|
||||||
|
|
||||||
public void showMenu() {
|
public void showMenu() {
|
||||||
Scanner scanner = new Scanner(System.in);
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
@ -32,36 +38,122 @@ public class StartUpMenue {
|
||||||
System.out.println("2. Kundenstammdaten ansehen");
|
System.out.println("2. Kundenstammdaten ansehen");
|
||||||
System.out.println("3. Artikel anlegen");
|
System.out.println("3. Artikel anlegen");
|
||||||
System.out.println("4. Artikelstammdaten ansehen");
|
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");
|
System.out.println("9. Programm beenden");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
choice = Integer.parseInt(scanner.nextLine());
|
choice = Integer.parseInt(scanner.nextLine());
|
||||||
switch (choice) {
|
switch (choice) {
|
||||||
case 1:
|
case 1:
|
||||||
Kunde kunde = new Kunde();
|
Kunde kunde = new Kunde();
|
||||||
|
this.mainController.getKundenController().eingabeDaten(kunde, scanner);
|
||||||
this.mainController.getKundenController().eingabeDaten(kunde, scanner);
|
this.mainController.getKundenController().speichereAlsXML(kunde);
|
||||||
this.mainController.getKundenController().speichereAlsXML(kunde);
|
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
System.out.println("Kundennummer eingeben:");
|
System.out.println("Kundennummer eingeben:");
|
||||||
int kundenWahl = Integer.parseInt(scanner.nextLine());
|
int kundenWahl = Integer.parseInt(scanner.nextLine());
|
||||||
Kunde kunde1 = this.mainController.getKundenController().leseAusXML(kundenWahl);
|
Kunde kunde1 = this.mainController.getKundenController().leseAusXML(kundenWahl);
|
||||||
kunde1.anzeigen();
|
kunde1.anzeigen();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
Artikel artikel = new Artikel();
|
Artikel artikel = new Artikel();
|
||||||
|
this.mainController.getArtikelController().eingabeDaten(artikel, scanner);
|
||||||
this.mainController.getArtikelController().eingabeDaten(artikel, scanner);
|
this.mainController.getArtikelController().speichereAlsXML(artikel);
|
||||||
this.mainController.getArtikelController().speichereAlsXML(artikel);
|
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
System.out.println("Artikelnummer eingeben:");
|
System.out.println("Artikelnummer eingeben:");
|
||||||
int artikelWahl = Integer.parseInt(scanner.nextLine());
|
int artikelWahl = Integer.parseInt(scanner.nextLine());
|
||||||
Artikel artikel1 = this.mainController.getArtikelController().leseAusXML(artikelWahl);
|
Artikel artikel1 = this.mainController.getArtikelController().leseAusXML(artikelWahl);
|
||||||
artikel1.anzeigen();
|
artikel1.anzeigen();
|
||||||
// MainController.viewArticleData();
|
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;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
System.out.println("Programm wird beendet.");
|
System.out.println("Programm wird beendet.");
|
||||||
|
|
Loading…
Reference in New Issue