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;
|
||||
}
|
||||
}
|
|
@ -20,10 +20,10 @@ import java.io.IOException;
|
|||
import java.util.Scanner;
|
||||
|
||||
public class ArtikelController {
|
||||
|
||||
private String ordnerPfad = "artikel";
|
||||
|
||||
public ArtikelController() {
|
||||
|
||||
private String ordnerPfad = "artikel";
|
||||
|
||||
public ArtikelController() {
|
||||
File ordner = new File(ordnerPfad);
|
||||
if (!ordner.exists()) {
|
||||
if (ordner.mkdir()) {
|
||||
|
@ -33,7 +33,22 @@ public class ArtikelController {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Methode zum Überprüfen, ob eine Artikelnummer bereits existiert
|
||||
private boolean artikelnummerExistiert(int artikelnummer) {
|
||||
File xmlDatei = new File(ordnerPfad + "/" + artikelnummer + ".xml");
|
||||
return xmlDatei.exists();
|
||||
}
|
||||
|
||||
// Methode zur Generierung einer neuen, eindeutigen Artikelnummer
|
||||
private int generiereNeueArtikelnummer() {
|
||||
int neueArtikelnummer = 1;
|
||||
while (artikelnummerExistiert(neueArtikelnummer)) {
|
||||
neueArtikelnummer++;
|
||||
}
|
||||
return neueArtikelnummer;
|
||||
}
|
||||
|
||||
// Methode zum Speichern der Artikeldaten im XML-Format
|
||||
public void speichereAlsXML(Artikel artikel) {
|
||||
try {
|
||||
|
@ -70,12 +85,17 @@ public class ArtikelController {
|
|||
mehrwertsteuersatzElement.appendChild(doc.createTextNode(Double.toString(artikel.getMehrwertsteuersatz())));
|
||||
rootElement.appendChild(mehrwertsteuersatzElement);
|
||||
|
||||
// Bruttopreis-Element
|
||||
Element bruttopreisElement = doc.createElement("Bruttopreis");
|
||||
bruttopreisElement.appendChild(doc.createTextNode(Double.toString(artikel.getBruttopreis())));
|
||||
rootElement.appendChild(bruttopreisElement);
|
||||
|
||||
// Transformieren und Speichern in Datei
|
||||
TransformerFactory transformerFactory = TransformerFactory.newInstance();
|
||||
Transformer transformer = transformerFactory.newTransformer();
|
||||
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
||||
DOMSource source = new DOMSource(doc);
|
||||
StreamResult result = new StreamResult(new File(this.ordnerPfad + "/" + Integer.toString(artikel.getArtikelnummer()) + ".xml"));
|
||||
StreamResult result = new StreamResult(new File(this.ordnerPfad + "/" + artikel.getArtikelnummer() + ".xml"));
|
||||
transformer.transform(source, result);
|
||||
|
||||
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
|
||||
|
@ -88,7 +108,7 @@ public class ArtikelController {
|
|||
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei
|
||||
public Artikel leseAusXML(int artikelnummer) {
|
||||
try {
|
||||
File xmlDatei = new File(this.ordnerPfad + "/" + Integer.toString(artikelnummer) + ".xml");
|
||||
File xmlDatei = new File(this.ordnerPfad + "/" + artikelnummer + ".xml");
|
||||
Artikel artikel = new Artikel(artikelnummer);
|
||||
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
|
||||
|
@ -108,16 +128,16 @@ public class ArtikelController {
|
|||
artikel.setBezeichnung(eElement.getElementsByTagName("Bezeichnung").item(0).getTextContent());
|
||||
artikel.setNettopreis(Double.parseDouble(eElement.getElementsByTagName("Nettopreis").item(0).getTextContent()));
|
||||
artikel.setMehrwertsteuersatz(Double.parseDouble(eElement.getElementsByTagName("Mehrwertsteuersatz").item(0).getTextContent()));
|
||||
artikel.setBruttopreis(Double.parseDouble(eElement.getElementsByTagName("Bruttopreis").item(0).getTextContent()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
|
||||
return artikel;
|
||||
} catch (ParserConfigurationException | SAXException | IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
return null;
|
||||
}
|
||||
|
||||
// Methode zum Auslesen der Artikeldaten aus einer XML-Datei und in der Konsole ausgeben
|
||||
|
@ -128,6 +148,8 @@ public class ArtikelController {
|
|||
|
||||
// Methode zur Eingabe der Artikeldaten über die Konsole
|
||||
public void eingabeDaten(Artikel artikel, Scanner scanner) {
|
||||
artikel.setArtikelnummer(generiereNeueArtikelnummer());
|
||||
|
||||
System.out.print("Einheit: ");
|
||||
artikel.setEinheit(scanner.nextLine());
|
||||
|
||||
|
@ -139,5 +161,8 @@ public class ArtikelController {
|
|||
|
||||
System.out.print("Mehrwertsteuersatz: ");
|
||||
artikel.setMehrwertsteuersatz(Double.parseDouble(scanner.nextLine()));
|
||||
|
||||
// Der Bruttopreis wird automatisch berechnet und gesetzt
|
||||
artikel.setBruttopreis(artikel.getNettopreis() + (artikel.getNettopreis() * artikel.getMehrwertsteuersatz() / 100));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
import model.Firmenstammdaten;
|
||||
import model.Anschrift;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
@ -33,17 +34,17 @@ public class FirmenstammdatenController {
|
|||
System.out.print("Inhaber: ");
|
||||
daten.setInhaber(scanner.nextLine());
|
||||
|
||||
Anschrift anschrift = new Anschrift();
|
||||
System.out.print("Straße: ");
|
||||
daten.setStrasse(scanner.nextLine());
|
||||
anschrift.setStrasse(scanner.nextLine());
|
||||
|
||||
System.out.print("PLZ: ");
|
||||
daten.setPlz(scanner.nextLine());
|
||||
anschrift.setPlz(scanner.nextLine());
|
||||
|
||||
System.out.print("Stadt: ");
|
||||
daten.setStadt(scanner.nextLine());
|
||||
System.out.print("Ort: ");
|
||||
anschrift.setOrt(scanner.nextLine());
|
||||
|
||||
System.out.print("Land: ");
|
||||
daten.setLand(scanner.nextLine());
|
||||
daten.setAnschrift(anschrift);
|
||||
|
||||
System.out.print("Telefon: ");
|
||||
daten.setTelefon(scanner.nextLine());
|
||||
|
@ -102,25 +103,22 @@ public class FirmenstammdatenController {
|
|||
inhaberElement.appendChild(doc.createTextNode(daten.getInhaber()));
|
||||
rootElement.appendChild(inhaberElement);
|
||||
|
||||
// Straße-Element
|
||||
// Anschrift-Element
|
||||
Element anschriftElement = doc.createElement("Anschrift");
|
||||
|
||||
Element strasseElement = doc.createElement("Strasse");
|
||||
strasseElement.appendChild(doc.createTextNode(daten.getStrasse()));
|
||||
rootElement.appendChild(strasseElement);
|
||||
strasseElement.appendChild(doc.createTextNode(daten.getAnschrift().getStrasse()));
|
||||
anschriftElement.appendChild(strasseElement);
|
||||
|
||||
// PLZ-Element
|
||||
Element plzElement = doc.createElement("PLZ");
|
||||
plzElement.appendChild(doc.createTextNode(daten.getPlz()));
|
||||
rootElement.appendChild(plzElement);
|
||||
plzElement.appendChild(doc.createTextNode(daten.getAnschrift().getPlz()));
|
||||
anschriftElement.appendChild(plzElement);
|
||||
|
||||
// Stadt-Element
|
||||
Element stadtElement = doc.createElement("Stadt");
|
||||
stadtElement.appendChild(doc.createTextNode(daten.getStadt()));
|
||||
rootElement.appendChild(stadtElement);
|
||||
Element ortElement = doc.createElement("Ort");
|
||||
ortElement.appendChild(doc.createTextNode(daten.getAnschrift().getOrt()));
|
||||
anschriftElement.appendChild(ortElement);
|
||||
|
||||
// Land-Element
|
||||
Element landElement = doc.createElement("Land");
|
||||
landElement.appendChild(doc.createTextNode(daten.getLand()));
|
||||
rootElement.appendChild(landElement);
|
||||
rootElement.appendChild(anschriftElement);
|
||||
|
||||
// Telefon-Element
|
||||
Element telefonElement = doc.createElement("Telefon");
|
||||
|
@ -212,10 +210,14 @@ public class FirmenstammdatenController {
|
|||
|
||||
daten.setFirmenname(eElement.getElementsByTagName("Firmenname").item(0).getTextContent());
|
||||
daten.setInhaber(eElement.getElementsByTagName("Inhaber").item(0).getTextContent());
|
||||
daten.setStrasse(eElement.getElementsByTagName("Strasse").item(0).getTextContent());
|
||||
daten.setPlz(eElement.getElementsByTagName("PLZ").item(0).getTextContent());
|
||||
daten.setStadt(eElement.getElementsByTagName("Stadt").item(0).getTextContent());
|
||||
daten.setLand(eElement.getElementsByTagName("Land").item(0).getTextContent());
|
||||
|
||||
Element anschriftElement = (Element) eElement.getElementsByTagName("Anschrift").item(0);
|
||||
Anschrift anschrift = new Anschrift();
|
||||
anschrift.setStrasse(anschriftElement.getElementsByTagName("Strasse").item(0).getTextContent());
|
||||
anschrift.setPlz(anschriftElement.getElementsByTagName("PLZ").item(0).getTextContent());
|
||||
anschrift.setOrt(anschriftElement.getElementsByTagName("Ort").item(0).getTextContent());
|
||||
daten.setAnschrift(anschrift);
|
||||
|
||||
daten.setTelefon(eElement.getElementsByTagName("Telefon").item(0).getTextContent());
|
||||
daten.setMobilnummer(eElement.getElementsByTagName("Mobilnummer").item(0).getTextContent());
|
||||
daten.setTelefax(eElement.getElementsByTagName("Telefax").item(0).getTextContent());
|
||||
|
@ -236,15 +238,13 @@ public class FirmenstammdatenController {
|
|||
}
|
||||
return daten;
|
||||
}
|
||||
|
||||
|
||||
public void checkForCompanyData(Scanner scanner) {
|
||||
File file = new File(this.dateiPfad);
|
||||
|
||||
if (!file.exists()) {
|
||||
System.out.println("Das Programm kann noch nicht gestartet werden. Bitte geben Sie zuerst Ihre Firmenstammdaten ein.");
|
||||
this.eingabeDaten(new Firmenstammdaten(), scanner);
|
||||
}
|
||||
|
||||
File file = new File(this.dateiPfad);
|
||||
|
||||
if (!file.exists()) {
|
||||
System.out.println("Das Programm kann noch nicht gestartet werden. Bitte geben Sie zuerst Ihre Firmenstammdaten ein.");
|
||||
this.eingabeDaten(new Firmenstammdaten(), scanner);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package controller;
|
||||
|
||||
import model.Anschrift;
|
||||
import model.Kunde;
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
import javax.xml.parsers.DocumentBuilderFactory;
|
||||
|
@ -20,10 +21,10 @@ import java.io.IOException;
|
|||
import java.util.Scanner;
|
||||
|
||||
public class KundenController {
|
||||
|
||||
private String ordnerPfad = "kunde";
|
||||
|
||||
public KundenController() {
|
||||
|
||||
private String ordnerPfad = "kunde";
|
||||
|
||||
public KundenController() {
|
||||
File ordner = new File(ordnerPfad);
|
||||
if (!ordner.exists()) {
|
||||
if (ordner.mkdir()) {
|
||||
|
@ -34,6 +35,21 @@ public class KundenController {
|
|||
}
|
||||
}
|
||||
|
||||
// Methode zum Überprüfen, ob eine Kundennummer bereits existiert
|
||||
private boolean kundennummerExistiert(int kundennummer) {
|
||||
File xmlDatei = new File(ordnerPfad + "/" + kundennummer + ".xml");
|
||||
return xmlDatei.exists();
|
||||
}
|
||||
|
||||
// Methode zur Generierung einer neuen, eindeutigen Kundennummer
|
||||
private int generiereNeueKundennummer() {
|
||||
int neueKundennummer = 1;
|
||||
while (kundennummerExistiert(neueKundennummer)) {
|
||||
neueKundennummer++;
|
||||
}
|
||||
return neueKundennummer;
|
||||
}
|
||||
|
||||
// Methode zum Speichern der Kundendaten im XML-Format
|
||||
public void speichereAlsXML(Kunde kunde) {
|
||||
try {
|
||||
|
@ -57,9 +73,21 @@ public class KundenController {
|
|||
|
||||
// Anschrift-Element
|
||||
Element anschriftElement = doc.createElement("Anschrift");
|
||||
anschriftElement.appendChild(doc.createTextNode(kunde.getAnschrift()));
|
||||
rootElement.appendChild(anschriftElement);
|
||||
|
||||
// Anschrift Unterelemente
|
||||
Element strasseElement = doc.createElement("Strasse");
|
||||
strasseElement.appendChild(doc.createTextNode(kunde.getAnschrift().getStrasse()));
|
||||
anschriftElement.appendChild(strasseElement);
|
||||
|
||||
Element plzElement = doc.createElement("PLZ");
|
||||
plzElement.appendChild(doc.createTextNode(kunde.getAnschrift().getPlz()));
|
||||
anschriftElement.appendChild(plzElement);
|
||||
|
||||
Element ortElement = doc.createElement("Ort");
|
||||
ortElement.appendChild(doc.createTextNode(kunde.getAnschrift().getOrt()));
|
||||
anschriftElement.appendChild(ortElement);
|
||||
|
||||
// Email-Element
|
||||
Element emailElement = doc.createElement("Email");
|
||||
emailElement.appendChild(doc.createTextNode(kunde.getEmail()));
|
||||
|
@ -85,7 +113,7 @@ public class KundenController {
|
|||
Transformer transformer = transformerFactory.newTransformer();
|
||||
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
|
||||
DOMSource source = new DOMSource(doc);
|
||||
StreamResult result = new StreamResult(new File(ordnerPfad + "/" + Integer.toString(kunde.getKundennummer()) + ".xml"));
|
||||
StreamResult result = new StreamResult(new File(ordnerPfad + "/" + kunde.getKundennummer() + ".xml"));
|
||||
transformer.transform(source, result);
|
||||
|
||||
System.out.println("Die XML-Datei wurde erfolgreich gespeichert.");
|
||||
|
@ -98,7 +126,7 @@ public class KundenController {
|
|||
// Methode zum Auslesen der Kundendaten aus einer XML-Datei
|
||||
public Kunde leseAusXML(int kundennummer) {
|
||||
try {
|
||||
File xmlDatei = new File(ordnerPfad + "/" + Integer.toString(kundennummer) + ".xml");
|
||||
File xmlDatei = new File(ordnerPfad + "/" + kundennummer + ".xml");
|
||||
Kunde kunde = new Kunde(kundennummer);
|
||||
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
|
||||
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
|
||||
|
@ -115,48 +143,123 @@ public class KundenController {
|
|||
|
||||
kunde.setKundennummer(Integer.parseInt(eElement.getElementsByTagName("Kundennummer").item(0).getTextContent()));
|
||||
kunde.setName(eElement.getElementsByTagName("Name").item(0).getTextContent());
|
||||
kunde.setAnschrift(eElement.getElementsByTagName("Anschrift").item(0).getTextContent());
|
||||
|
||||
// Anschrift
|
||||
Element anschriftElement = (Element) eElement.getElementsByTagName("Anschrift").item(0);
|
||||
String strasse = anschriftElement.getElementsByTagName("Strasse").item(0).getTextContent();
|
||||
String plz = anschriftElement.getElementsByTagName("PLZ").item(0).getTextContent();
|
||||
String ort = anschriftElement.getElementsByTagName("Ort").item(0).getTextContent();
|
||||
Anschrift anschrift = new Anschrift(strasse, plz, ort);
|
||||
kunde.setAnschrift(anschrift);
|
||||
|
||||
kunde.setEmail(eElement.getElementsByTagName("Email").item(0).getTextContent());
|
||||
kunde.setTelefonnummer(eElement.getElementsByTagName("Telefonnummer").item(0).getTextContent());
|
||||
kunde.setIstKleinunternehmer(Boolean.parseBoolean(eElement.getElementsByTagName("Kleinunternehmer").item(0).getTextContent()));
|
||||
kunde.setAnsprechpartner(eElement.getElementsByTagName("Ansprechpartner").item(0).getTextContent());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
System.out.println("Die XML-Datei wurde erfolgreich gelesen.");
|
||||
return kunde;
|
||||
} catch (ParserConfigurationException | SAXException | IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Methode zum Auslesen der Kundendaten aus einer XML-Datei und in der Konsole ausgeben
|
||||
public void leseUndGibAusXML(Kunde kunde, String dateiPfad) {
|
||||
leseUndGibAusXML(kunde, dateiPfad);
|
||||
kunde.anzeigen();
|
||||
return null;
|
||||
}
|
||||
|
||||
// Methode zur Eingabe der Kundendaten über die Konsole
|
||||
public void eingabeDaten(Kunde kunde, Scanner scanner) {
|
||||
System.out.print("Name: ");
|
||||
kunde.setName(scanner.nextLine());
|
||||
kunde.setKundennummer(generiereNeueKundennummer());
|
||||
|
||||
System.out.print("Anschrift: ");
|
||||
kunde.setAnschrift(scanner.nextLine());
|
||||
// Name
|
||||
String name;
|
||||
do {
|
||||
System.out.print("Name: ");
|
||||
name = scanner.nextLine();
|
||||
if (name.isEmpty()) {
|
||||
System.out.println("Name darf nicht leer sein. Bitte erneut eingeben.");
|
||||
}
|
||||
} while (name.isEmpty());
|
||||
kunde.setName(name);
|
||||
|
||||
System.out.print("Email: ");
|
||||
kunde.setEmail(scanner.nextLine());
|
||||
// Straße
|
||||
String strasse;
|
||||
do {
|
||||
System.out.print("Straße: ");
|
||||
strasse = scanner.nextLine();
|
||||
if (strasse.isEmpty()) {
|
||||
System.out.println("Straße darf nicht leer sein. Bitte erneut eingeben.");
|
||||
}
|
||||
} while (strasse.isEmpty());
|
||||
|
||||
System.out.print("Telefonnummer: ");
|
||||
kunde.setTelefonnummer(scanner.nextLine());
|
||||
// PLZ
|
||||
String plz;
|
||||
do {
|
||||
System.out.print("PLZ: ");
|
||||
plz = scanner.nextLine();
|
||||
if (!plz.matches("\\d{5}")) { // Prüft, ob die PLZ 5-stellig ist und nur Ziffern enthält
|
||||
System.out.println("PLZ muss 5-stellig und numerisch sein. Bitte erneut eingeben.");
|
||||
}
|
||||
} while (!plz.matches("\\d{5}"));
|
||||
|
||||
System.out.print("Ist der Kunde ein Kleinunternehmer (true/false)? ");
|
||||
kunde.setIstKleinunternehmer(Boolean.parseBoolean(scanner.nextLine()));
|
||||
// Ort
|
||||
String ort;
|
||||
do {
|
||||
System.out.print("Ort: ");
|
||||
ort = scanner.nextLine();
|
||||
if (ort.isEmpty()) {
|
||||
System.out.println("Ort darf nicht leer sein. Bitte erneut eingeben.");
|
||||
}
|
||||
} while (ort.isEmpty());
|
||||
|
||||
System.out.print("Ansprechpartner: ");
|
||||
kunde.setAnsprechpartner(scanner.nextLine());
|
||||
Anschrift anschrift = new Anschrift(strasse, plz, ort);
|
||||
kunde.setAnschrift(anschrift);
|
||||
|
||||
// Email
|
||||
String email;
|
||||
do {
|
||||
System.out.print("Email: ");
|
||||
email = scanner.nextLine();
|
||||
if (!email.matches("^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$")) { // Einfache E-Mail-Validierung
|
||||
System.out.println("Bitte geben Sie eine gültige Email-Adresse ein.");
|
||||
}
|
||||
} while (!email.matches("^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$"));
|
||||
kunde.setEmail(email);
|
||||
|
||||
// Telefonnummer
|
||||
String telefonnummer;
|
||||
do {
|
||||
System.out.print("Telefonnummer: ");
|
||||
telefonnummer = scanner.nextLine();
|
||||
if (!telefonnummer.matches("\\+?[0-9]{10,15}")) { // Prüft, ob die Telefonnummer zwischen 10 und 15 Ziffern hat
|
||||
System.out.println("Telefonnummer muss zwischen 10 und 15 Ziffern lang sein. Bitte erneut eingeben.");
|
||||
}
|
||||
} while (!telefonnummer.matches("\\+?[0-9]{10,15}"));
|
||||
kunde.setTelefonnummer(telefonnummer);
|
||||
|
||||
// Kleinunternehmer
|
||||
Boolean istKleinunternehmer = null;
|
||||
do {
|
||||
System.out.print("Ist der Kunde ein Kleinunternehmer (true/false)? ");
|
||||
String input = scanner.nextLine().toLowerCase();
|
||||
if (input.equals("true") || input.equals("false")) {
|
||||
istKleinunternehmer = Boolean.parseBoolean(input);
|
||||
} else {
|
||||
System.out.println("Bitte geben Sie 'true' oder 'false' ein.");
|
||||
}
|
||||
} while (istKleinunternehmer == null);
|
||||
kunde.setIstKleinunternehmer(istKleinunternehmer);
|
||||
|
||||
// Ansprechpartner
|
||||
String ansprechpartner;
|
||||
do {
|
||||
System.out.print("Ansprechpartner: ");
|
||||
ansprechpartner = scanner.nextLine();
|
||||
if (ansprechpartner.isEmpty()) {
|
||||
System.out.println("Ansprechpartner darf nicht leer sein. Bitte erneut eingeben.");
|
||||
}
|
||||
} while (ansprechpartner.isEmpty());
|
||||
kunde.setAnsprechpartner(ansprechpartner);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
||||
import model.Kunde;
|
||||
|
||||
public class MainController {
|
||||
|
||||
private KundenController kundenController;
|
||||
private ArtikelController artikelController;
|
||||
private FirmenstammdatenController firmenstammdatenController;
|
||||
|
||||
public MainController() {
|
||||
this.kundenController = new KundenController();
|
||||
this.artikelController = new ArtikelController();
|
||||
this.firmenstammdatenController = new FirmenstammdatenController();
|
||||
}
|
||||
|
||||
public KundenController getKundenController() {
|
||||
return kundenController;
|
||||
}
|
||||
private KundenController kundenController;
|
||||
private ArtikelController artikelController;
|
||||
private FirmenstammdatenController firmenstammdatenController;
|
||||
private AngebotController angebotController;
|
||||
private WertschoepfungsketteController wertschoepfungsketteController;
|
||||
private RechnungController rechnungController;
|
||||
private LieferscheinController lieferscheinController;
|
||||
private AuftragsbestaetigungController auftragsbestaetigungController;
|
||||
|
||||
public ArtikelController getArtikelController() {
|
||||
return artikelController;
|
||||
}
|
||||
|
||||
public FirmenstammdatenController getFirmenstammdatenController() {
|
||||
return this.firmenstammdatenController;
|
||||
}
|
||||
|
||||
|
||||
public MainController() {
|
||||
this.kundenController = new KundenController();
|
||||
this.artikelController = new ArtikelController();
|
||||
this.firmenstammdatenController = new FirmenstammdatenController();
|
||||
this.angebotController = new AngebotController();
|
||||
this.wertschoepfungsketteController = new WertschoepfungsketteController();
|
||||
this.rechnungController = new RechnungController();
|
||||
this.lieferscheinController = new LieferscheinController();
|
||||
this.auftragsbestaetigungController = new AuftragsbestaetigungController();
|
||||
}
|
||||
|
||||
|
||||
public KundenController getKundenController() {
|
||||
return kundenController;
|
||||
}
|
||||
|
||||
public ArtikelController getArtikelController() {
|
||||
return artikelController;
|
||||
}
|
||||
|
||||
public FirmenstammdatenController getFirmenstammdatenController() {
|
||||
return firmenstammdatenController;
|
||||
}
|
||||
|
||||
public AngebotController getAngebotController() {
|
||||
return angebotController;
|
||||
}
|
||||
|
||||
public WertschoepfungsketteController getWertschoepfungsketteController() {
|
||||
return wertschoepfungsketteController;
|
||||
}
|
||||
|
||||
public RechnungController getRechnungController() {
|
||||
return rechnungController;
|
||||
}
|
||||
|
||||
public LieferscheinController getLieferscheinController() {
|
||||
return lieferscheinController;
|
||||
}
|
||||
|
||||
public AuftragsbestaetigungController getAuftragsbestaetigungController() {
|
||||
return auftragsbestaetigungController;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 double nettopreis;
|
||||
private double mehrwertsteuersatz;
|
||||
private double bruttopreis;
|
||||
|
||||
// Konstruktor
|
||||
public Artikel(String einheit, String bezeichnung, double nettopreis, double mehrwertsteuersatz) {
|
||||
|
@ -15,28 +16,27 @@ public class Artikel {
|
|||
this.bezeichnung = bezeichnung;
|
||||
this.nettopreis = nettopreis;
|
||||
this.mehrwertsteuersatz = mehrwertsteuersatz;
|
||||
this.bruttopreis = berechneBruttopreis(nettopreis, mehrwertsteuersatz);
|
||||
}
|
||||
|
||||
|
||||
public Artikel(int artikelnummer) {
|
||||
this.artikelnummer = artikelnummer;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Leerer Konstruktor
|
||||
public Artikel() {
|
||||
this.artikelnummer = ++aktuelleArtikelnummer; // Vergabe der Artikelnummer und Inkrement
|
||||
}
|
||||
|
||||
public void setArtikelnummer(int artikelnummer) {
|
||||
this.artikelnummer = artikelnummer;
|
||||
}
|
||||
|
||||
// Getter und Setter
|
||||
public int getArtikelnummer() {
|
||||
return artikelnummer;
|
||||
}
|
||||
|
||||
public void setArtikelnummer(int artikelnummer) {
|
||||
this.artikelnummer = artikelnummer;
|
||||
}
|
||||
|
||||
public String getEinheit() {
|
||||
return einheit;
|
||||
}
|
||||
|
@ -59,6 +59,7 @@ public class Artikel {
|
|||
|
||||
public void setNettopreis(double nettopreis) {
|
||||
this.nettopreis = nettopreis;
|
||||
this.bruttopreis = berechneBruttopreis(nettopreis, mehrwertsteuersatz); // Update bruttopreis
|
||||
}
|
||||
|
||||
public double getMehrwertsteuersatz() {
|
||||
|
@ -67,6 +68,20 @@ public class Artikel {
|
|||
|
||||
public void setMehrwertsteuersatz(double mehrwertsteuersatz) {
|
||||
this.mehrwertsteuersatz = mehrwertsteuersatz;
|
||||
this.bruttopreis = berechneBruttopreis(nettopreis, mehrwertsteuersatz); // Update bruttopreis
|
||||
}
|
||||
|
||||
public double getBruttopreis() {
|
||||
return bruttopreis;
|
||||
}
|
||||
|
||||
public void setBruttopreis(double bruttopreis) {
|
||||
this.bruttopreis = bruttopreis;
|
||||
}
|
||||
|
||||
// Methode zur Berechnung des Bruttopreises
|
||||
private double berechneBruttopreis(double nettopreis, double mehrwertsteuersatz) {
|
||||
return nettopreis + (nettopreis * mehrwertsteuersatz / 100);
|
||||
}
|
||||
|
||||
// Methode zum Anzeigen der Artikeldaten
|
||||
|
@ -76,5 +91,6 @@ public class Artikel {
|
|||
System.out.println("Bezeichnung: " + bezeichnung);
|
||||
System.out.println("Nettopreis: " + nettopreis);
|
||||
System.out.println("Mehrwertsteuersatz: " + mehrwertsteuersatz);
|
||||
System.out.println("Bruttopreis: " + bruttopreis);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
private String firmenname;
|
||||
private String inhaber;
|
||||
private String strasse;
|
||||
private String plz;
|
||||
private String stadt;
|
||||
private String land;
|
||||
private Anschrift anschrift; // Verwendung der Anschrift-Klasse
|
||||
private String telefon;
|
||||
private String mobilnummer;
|
||||
private String telefax;
|
||||
|
@ -21,54 +18,115 @@ public class Firmenstammdaten {
|
|||
|
||||
// Getter und Setter für alle Attribute
|
||||
|
||||
public String getFirmenname() { return firmenname; }
|
||||
public void setFirmenname(String firmenname) { this.firmenname = firmenname; }
|
||||
public String getFirmenname() {
|
||||
return firmenname;
|
||||
}
|
||||
|
||||
public String getInhaber() { return inhaber; }
|
||||
public void setInhaber(String inhaber) { this.inhaber = inhaber; }
|
||||
public void setFirmenname(String firmenname) {
|
||||
this.firmenname = firmenname;
|
||||
}
|
||||
|
||||
public String getStrasse() { return strasse; }
|
||||
public void setStrasse(String strasse) { this.strasse = strasse; }
|
||||
public String getInhaber() {
|
||||
return inhaber;
|
||||
}
|
||||
|
||||
public String getPlz() { return plz; }
|
||||
public void setPlz(String plz) { this.plz = plz; }
|
||||
public void setInhaber(String inhaber) {
|
||||
this.inhaber = inhaber;
|
||||
}
|
||||
|
||||
public String getStadt() { return stadt; }
|
||||
public void setStadt(String stadt) { this.stadt = stadt; }
|
||||
public Anschrift getAnschrift() {
|
||||
return anschrift;
|
||||
}
|
||||
|
||||
public String getLand() { return land; }
|
||||
public void setLand(String land) { this.land = land; }
|
||||
public void setAnschrift(Anschrift anschrift) {
|
||||
this.anschrift = anschrift;
|
||||
}
|
||||
|
||||
public String getTelefon() { return telefon; }
|
||||
public void setTelefon(String telefon) { this.telefon = telefon; }
|
||||
public String getTelefon() {
|
||||
return telefon;
|
||||
}
|
||||
|
||||
public String getMobilnummer() { return mobilnummer; }
|
||||
public void setMobilnummer(String mobilnummer) { this.mobilnummer = mobilnummer; }
|
||||
public void setTelefon(String telefon) {
|
||||
this.telefon = telefon;
|
||||
}
|
||||
|
||||
public String getTelefax() { return telefax; }
|
||||
public void setTelefax(String telefax) { this.telefax = telefax; }
|
||||
public String getMobilnummer() {
|
||||
return mobilnummer;
|
||||
}
|
||||
|
||||
public String getEmail() { return email; }
|
||||
public void setEmail(String email) { this.email = email; }
|
||||
public void setMobilnummer(String mobilnummer) {
|
||||
this.mobilnummer = mobilnummer;
|
||||
}
|
||||
|
||||
public String getWebseite() { return webseite; }
|
||||
public void setWebseite(String webseite) { this.webseite = webseite; }
|
||||
public String getTelefax() {
|
||||
return telefax;
|
||||
}
|
||||
|
||||
public String getUmsatzsteuerIdNummer() { return umsatzsteuerIdNummer; }
|
||||
public void setUmsatzsteuerIdNummer(String umsatzsteuerIdNummer) { this.umsatzsteuerIdNummer = umsatzsteuerIdNummer; }
|
||||
public void setTelefax(String telefax) {
|
||||
this.telefax = telefax;
|
||||
}
|
||||
|
||||
public String getFinanzamt() { return finanzamt; }
|
||||
public void setFinanzamt(String finanzamt) { this.finanzamt = finanzamt; }
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public String getBankname() { return bankname; }
|
||||
public void setBankname(String bankname) { this.bankname = bankname; }
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getIban() { return iban; }
|
||||
public void setIban(String iban) { this.iban = iban; }
|
||||
public String getWebseite() {
|
||||
return webseite;
|
||||
}
|
||||
|
||||
public String getBic() { return bic; }
|
||||
public void setBic(String bic) { this.bic = bic; }
|
||||
public void setWebseite(String webseite) {
|
||||
this.webseite = webseite;
|
||||
}
|
||||
|
||||
public String getGlaeubigerID() { return glaeubigerID; }
|
||||
public void setGlaeubigerID(String glaeubigerID) { this.glaeubigerID = glaeubigerID; }
|
||||
public String getUmsatzsteuerIdNummer() {
|
||||
return umsatzsteuerIdNummer;
|
||||
}
|
||||
|
||||
public void setUmsatzsteuerIdNummer(String umsatzsteuerIdNummer) {
|
||||
this.umsatzsteuerIdNummer = umsatzsteuerIdNummer;
|
||||
}
|
||||
|
||||
public String getFinanzamt() {
|
||||
return finanzamt;
|
||||
}
|
||||
|
||||
public void setFinanzamt(String finanzamt) {
|
||||
this.finanzamt = finanzamt;
|
||||
}
|
||||
|
||||
public String getBankname() {
|
||||
return bankname;
|
||||
}
|
||||
|
||||
public void setBankname(String bankname) {
|
||||
this.bankname = bankname;
|
||||
}
|
||||
|
||||
public String getIban() {
|
||||
return iban;
|
||||
}
|
||||
|
||||
public void setIban(String iban) {
|
||||
this.iban = iban;
|
||||
}
|
||||
|
||||
public String getBic() {
|
||||
return bic;
|
||||
}
|
||||
|
||||
public void setBic(String bic) {
|
||||
this.bic = bic;
|
||||
}
|
||||
|
||||
public String getGlaeubigerID() {
|
||||
return glaeubigerID;
|
||||
}
|
||||
|
||||
public void setGlaeubigerID(String glaeubigerID) {
|
||||
this.glaeubigerID = glaeubigerID;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,15 +4,14 @@ public class Kunde {
|
|||
private static int aktuelleKundennummer = 0; // Statische Variable für fortlaufende Kundennummer
|
||||
private int kundennummer;
|
||||
private String name;
|
||||
private String anschrift;
|
||||
// Straße - PLZ - Ort
|
||||
private Anschrift anschrift;
|
||||
private String email;
|
||||
private String telefonnummer;
|
||||
private boolean istKleinunternehmer;
|
||||
private String ansprechpartner;
|
||||
|
||||
// Konstruktor
|
||||
public Kunde(String name, String anschrift, String email, String telefonnummer, boolean istKleinunternehmer,
|
||||
public Kunde(String name, Anschrift anschrift, String email, String telefonnummer, boolean istKleinunternehmer,
|
||||
String ansprechpartner) {
|
||||
this.kundennummer = ++aktuelleKundennummer; // Vergabe der Kundennummer und Inkrement
|
||||
this.name = name;
|
||||
|
@ -49,11 +48,11 @@ public class Kunde {
|
|||
this.name = name;
|
||||
}
|
||||
|
||||
public String getAnschrift() {
|
||||
public Anschrift getAnschrift() {
|
||||
return anschrift;
|
||||
}
|
||||
|
||||
public void setAnschrift(String anschrift) {
|
||||
public void setAnschrift(Anschrift anschrift) {
|
||||
this.anschrift = anschrift;
|
||||
}
|
||||
|
||||
|
@ -93,7 +92,10 @@ public class Kunde {
|
|||
public void anzeigen() {
|
||||
System.out.println("Kundennummer: " + kundennummer);
|
||||
System.out.println("Name: " + name);
|
||||
System.out.println("Anschrift: " + anschrift);
|
||||
System.out.println("Anschrift: ");
|
||||
System.out.println(" Straße: " + anschrift.getStrasse());
|
||||
System.out.println(" PLZ: " + anschrift.getPlz());
|
||||
System.out.println(" Ort: " + anschrift.getOrt());
|
||||
System.out.println("Email: " + email);
|
||||
System.out.println("Telefonnummer: " + telefonnummer);
|
||||
System.out.println("Kleinunternehmer: " + (istKleinunternehmer ? "Ja" : "Nein"));
|
||||
|
|
|
@ -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,27 +2,33 @@ package view;
|
|||
|
||||
import java.util.Scanner;
|
||||
|
||||
import controller.ArtikelController;
|
||||
import controller.KundenController;
|
||||
import controller.AuftragsbestaetigungController;
|
||||
import controller.FirmenstammdatenController;
|
||||
import controller.LieferscheinController;
|
||||
import controller.MainController;
|
||||
import controller.RechnungController;
|
||||
import controller.WertschoepfungsketteController;
|
||||
import model.Angebot;
|
||||
import model.Artikel;
|
||||
import model.Firmenstammdaten;
|
||||
import model.Kunde;
|
||||
import model.Wertschoepfungskette;
|
||||
|
||||
public class StartUpMenue {
|
||||
|
||||
private MainController mainController;
|
||||
|
||||
public StartUpMenue(MainController mainController) {
|
||||
this.mainController = mainController;
|
||||
this.showMenu();
|
||||
|
||||
}
|
||||
|
||||
private MainController mainController;
|
||||
|
||||
public StartUpMenue(MainController mainController) {
|
||||
this.mainController = mainController;
|
||||
|
||||
this.showMenu();
|
||||
}
|
||||
|
||||
public void showMenu() {
|
||||
Scanner scanner = new Scanner(System.in);
|
||||
|
||||
|
||||
this.mainController.getFirmenstammdatenController().checkForCompanyData(scanner);
|
||||
|
||||
|
||||
int choice = 0;
|
||||
|
||||
while (choice != 9) {
|
||||
|
@ -32,37 +38,123 @@ public class StartUpMenue {
|
|||
System.out.println("2. Kundenstammdaten ansehen");
|
||||
System.out.println("3. Artikel anlegen");
|
||||
System.out.println("4. Artikelstammdaten ansehen");
|
||||
System.out.println("5. Angebot erstellen");
|
||||
System.out.println("6. Angebot/Wertschöpfungskette anzeigen");
|
||||
System.out.println("9. Programm beenden");
|
||||
|
||||
try {
|
||||
choice = Integer.parseInt(scanner.nextLine());
|
||||
switch (choice) {
|
||||
case 1:
|
||||
Kunde kunde = new Kunde();
|
||||
|
||||
this.mainController.getKundenController().eingabeDaten(kunde, scanner);
|
||||
this.mainController.getKundenController().speichereAlsXML(kunde);
|
||||
Kunde kunde = new Kunde();
|
||||
this.mainController.getKundenController().eingabeDaten(kunde, scanner);
|
||||
this.mainController.getKundenController().speichereAlsXML(kunde);
|
||||
break;
|
||||
case 2:
|
||||
System.out.println("Kundennummer eingeben:");
|
||||
int kundenWahl = Integer.parseInt(scanner.nextLine());
|
||||
Kunde kunde1 = this.mainController.getKundenController().leseAusXML(kundenWahl);
|
||||
kunde1.anzeigen();
|
||||
|
||||
System.out.println("Kundennummer eingeben:");
|
||||
int kundenWahl = Integer.parseInt(scanner.nextLine());
|
||||
Kunde kunde1 = this.mainController.getKundenController().leseAusXML(kundenWahl);
|
||||
kunde1.anzeigen();
|
||||
break;
|
||||
case 3:
|
||||
Artikel artikel = new Artikel();
|
||||
|
||||
this.mainController.getArtikelController().eingabeDaten(artikel, scanner);
|
||||
this.mainController.getArtikelController().speichereAlsXML(artikel);
|
||||
Artikel artikel = new Artikel();
|
||||
this.mainController.getArtikelController().eingabeDaten(artikel, scanner);
|
||||
this.mainController.getArtikelController().speichereAlsXML(artikel);
|
||||
break;
|
||||
case 4:
|
||||
System.out.println("Artikelnummer eingeben:");
|
||||
int artikelWahl = Integer.parseInt(scanner.nextLine());
|
||||
Artikel artikel1 = this.mainController.getArtikelController().leseAusXML(artikelWahl);
|
||||
artikel1.anzeigen();
|
||||
// MainController.viewArticleData();
|
||||
System.out.println("Artikelnummer eingeben:");
|
||||
int artikelWahl = Integer.parseInt(scanner.nextLine());
|
||||
Artikel artikel1 = this.mainController.getArtikelController().leseAusXML(artikelWahl);
|
||||
artikel1.anzeigen();
|
||||
break;
|
||||
case 5:
|
||||
Angebot angebot = this.mainController.getAngebotController().erstelleAngebot();
|
||||
this.mainController.getWertschoepfungsketteController().erstelleWertschoepfungskette(angebot);
|
||||
break;
|
||||
case 6:
|
||||
System.out.println("Angebotsnummer eingeben:");
|
||||
int angebotsNummer = Integer.parseInt(scanner.nextLine());
|
||||
Wertschoepfungskette wertschoepfungskette = this.mainController.getWertschoepfungsketteController().leseAusXML(angebotsNummer);
|
||||
if (wertschoepfungskette != null) {
|
||||
wertschoepfungskette.zeigeStatus();
|
||||
int choice1=0;
|
||||
while(choice1!=9) {
|
||||
System.out.println("Bitte wählen Sie eine Option:");
|
||||
System.out.println("1. Angebot anzeigen");
|
||||
if(wertschoepfungskette.getAuftragsbestaetigung()!= null) {
|
||||
System.out.println("2. Auftragsbestätigung ansehen");
|
||||
}
|
||||
else {
|
||||
System.out.println("2. Auftragsbestätigung anlegen");
|
||||
}
|
||||
if(wertschoepfungskette.getLieferschein()!= null) {
|
||||
System.out.println("3. Lieferschein ansehen");
|
||||
}
|
||||
else {
|
||||
System.out.println("3. Lieferschein anlegen");
|
||||
}
|
||||
if(wertschoepfungskette.getRechnung()!= null) {
|
||||
System.out.println("4. Rechnung ansehen");
|
||||
}
|
||||
else {
|
||||
System.out.println("4. Rechnung anlegen");
|
||||
}
|
||||
|
||||
System.out.println("9. Zurück zum Hauptmenü");
|
||||
|
||||
|
||||
choice1 = Integer.parseInt(scanner.nextLine());
|
||||
|
||||
switch(choice1) {
|
||||
case 1:
|
||||
wertschoepfungskette.getAngebot().anzeigen();
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if(wertschoepfungskette.getAuftragsbestaetigung()!= null) {
|
||||
wertschoepfungskette.getAuftragsbestaetigung().anzeigen();
|
||||
}
|
||||
else {
|
||||
AuftragsbestaetigungController auftragsbestaetigungController = new AuftragsbestaetigungController();
|
||||
wertschoepfungskette.setAuftragsbestaetigung(auftragsbestaetigungController.erstelleAuftragsbestaetigung(wertschoepfungskette.getAngebot()));
|
||||
this.mainController.getWertschoepfungsketteController().speichereAlsXML(wertschoepfungskette);
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if(wertschoepfungskette.getLieferschein()!= null) {
|
||||
wertschoepfungskette.getLieferschein().anzeigen();
|
||||
}
|
||||
else {
|
||||
LieferscheinController lieferscheinController = new LieferscheinController();
|
||||
FirmenstammdatenController firmenstammdaten = new FirmenstammdatenController();
|
||||
wertschoepfungskette.setLieferschein(lieferscheinController.erstelleLieferschein(wertschoepfungskette.getAngebot(),firmenstammdaten.leseAusXML()));
|
||||
this.mainController.getWertschoepfungsketteController().speichereAlsXML(wertschoepfungskette);
|
||||
}
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if(wertschoepfungskette.getRechnung()!= null) {
|
||||
wertschoepfungskette.getRechnung().anzeigen();
|
||||
}
|
||||
else {
|
||||
RechnungController rechnungController = new RechnungController();
|
||||
FirmenstammdatenController firmenstammdaten = new FirmenstammdatenController();
|
||||
wertschoepfungskette.setRechnung(rechnungController.erstelleRechnung(wertschoepfungskette.getAngebot(),firmenstammdaten.leseAusXML()));
|
||||
this.mainController.getWertschoepfungsketteController().speichereAlsXML(wertschoepfungskette);
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
System.out.println("Zurück um Hauptmenü");
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
System.out.println("Angebot nicht gefunden.");
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
System.out.println("Programm wird beendet.");
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue