amin first commit
parent
215163e7db
commit
035ed24295
|
@ -0,0 +1,17 @@
|
||||||
|
target/
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
pom.xml.next
|
||||||
|
release.properties
|
||||||
|
dependency-reduced-pom.xml
|
||||||
|
buildNumber.properties
|
||||||
|
.mvn/timing.properties
|
||||||
|
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
|
||||||
|
.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|
||||||
|
# Eclipse m2e generated files
|
||||||
|
# Eclipse Core
|
||||||
|
.project
|
||||||
|
# JDT-specific (Eclipse Java Development Tools)
|
||||||
|
.classpath
|
|
@ -0,0 +1 @@
|
||||||
|
/bin/
|
|
@ -0,0 +1,2 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
encoding/<project>=UTF-8
|
|
@ -0,0 +1,14 @@
|
||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
|
||||||
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
|
org.eclipse.jdt.core.compiler.compliance=17
|
||||||
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||||
|
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||||
|
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||||
|
org.eclipse.jdt.core.compiler.release=enabled
|
||||||
|
org.eclipse.jdt.core.compiler.source=17
|
|
@ -0,0 +1,62 @@
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class Company implements Serializable{
|
||||||
|
private String name;
|
||||||
|
private String address;
|
||||||
|
private String phone;
|
||||||
|
private String email;
|
||||||
|
private boolean isSmallBusiness;
|
||||||
|
|
||||||
|
public Company() {
|
||||||
|
}
|
||||||
|
public Company(String name, String address, String phone, String email, boolean isSmallBusiness) {
|
||||||
|
this.name = name;
|
||||||
|
this.address = address;
|
||||||
|
this.phone = phone;
|
||||||
|
this.email = email;
|
||||||
|
this.isSmallBusiness = isSmallBusiness;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getter und Setter
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Company{" +
|
||||||
|
"name='" + name + '\'' +
|
||||||
|
", address='" + address + '\'' +
|
||||||
|
", phone='" + phone + '\'' +
|
||||||
|
", email='" + email + '\'' +
|
||||||
|
", isSmallBusiness=" + isSmallBusiness +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
public String getAddress() {
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
public void setAddress(String address) {
|
||||||
|
this.address = address;
|
||||||
|
}
|
||||||
|
public String getPhone() {
|
||||||
|
return phone;
|
||||||
|
}
|
||||||
|
public void setPhone(String phone) {
|
||||||
|
this.phone = phone;
|
||||||
|
}
|
||||||
|
public String getEmail() {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
public boolean isSmallBusiness() {
|
||||||
|
return isSmallBusiness;
|
||||||
|
}
|
||||||
|
public void setSmallBusiness(boolean isSmallBusiness) {
|
||||||
|
this.isSmallBusiness = isSmallBusiness;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class Customer implements Serializable {
|
||||||
|
private String address;
|
||||||
|
private String contactPerson;
|
||||||
|
private boolean smallBusiness;
|
||||||
|
|
||||||
|
public Customer(String address, String contactPerson, boolean smallBusiness) {
|
||||||
|
this.address = address;
|
||||||
|
this.contactPerson = contactPerson;
|
||||||
|
this.smallBusiness = smallBusiness;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAddress() {
|
||||||
|
return address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAddress(String address) {
|
||||||
|
this.address = address;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContactPerson() {
|
||||||
|
return contactPerson;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContactPerson(String contactPerson) {
|
||||||
|
this.contactPerson = contactPerson;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSmallBusiness() {
|
||||||
|
return smallBusiness;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSmallBusiness(boolean smallBusiness) {
|
||||||
|
this.smallBusiness = smallBusiness;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Customer [address=" + address + ", contactPerson=" + contactPerson + ", smallBusiness=" + smallBusiness
|
||||||
|
+ "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Getter und Setter
|
||||||
|
}
|
|
@ -0,0 +1,347 @@
|
||||||
|
import java.io.File;
|
||||||
|
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 DataManager {
|
||||||
|
private List<Company> companies;
|
||||||
|
private List<Product> products;
|
||||||
|
private List<Customer> customers;
|
||||||
|
private List<Offer> offers;
|
||||||
|
private List<OrderConfirmation> orderConfirmations;
|
||||||
|
private List<DeliveryNote> deliveryNotes;
|
||||||
|
private List<Invoice> invoices;
|
||||||
|
|
||||||
|
public DataManager() {
|
||||||
|
this.companies = new ArrayList<>();
|
||||||
|
this.products = new ArrayList<>();
|
||||||
|
this.customers = new ArrayList<>();
|
||||||
|
this.offers = new ArrayList<>();
|
||||||
|
this.orderConfirmations = new ArrayList<>();
|
||||||
|
this.deliveryNotes = new ArrayList<>();
|
||||||
|
this.invoices = new ArrayList<>();
|
||||||
|
}
|
||||||
|
public void showMenu() {
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
int choice;
|
||||||
|
|
||||||
|
do {
|
||||||
|
System.out.println("1. Neue Firma eingeben");
|
||||||
|
System.out.println("2. Neues Produkt eingeben");
|
||||||
|
System.out.println("3. Neuer Kunde eingeben");
|
||||||
|
System.out.println("4. Angebot erstellen");
|
||||||
|
System.out.println("5. Auftragsbestätigung erstellen");
|
||||||
|
System.out.println("6. Lieferschein erstellen");
|
||||||
|
System.out.println("7. Rechnung erstellen");
|
||||||
|
System.out.println("8. Angebote anzeigen");
|
||||||
|
System.out.println("9. Auftragsbestätigungen anzeigen");
|
||||||
|
System.out.println("10. Lieferscheine anzeigen");
|
||||||
|
System.out.println("11. Rechnungen anzeigen");
|
||||||
|
System.out.println("12. Firmen anzeigen");
|
||||||
|
System.out.println("13. Produkte anzeigen");
|
||||||
|
System.out.println("14. Kunden anzeigen");
|
||||||
|
System.out.println("15. XML-Daten laden");
|
||||||
|
System.out.println("16. Beenden");
|
||||||
|
System.out.print("Wählen Sie eine Option: ");
|
||||||
|
choice = scanner.nextInt();
|
||||||
|
scanner.nextLine(); // Consume newline
|
||||||
|
|
||||||
|
switch (choice) {
|
||||||
|
case 1:
|
||||||
|
enterCompany(scanner);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
enterProduct(scanner);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
enterCustomer(scanner);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
createOffer(scanner);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
createOrderConfirmation(scanner);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
createDeliveryNote(scanner);
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
createInvoice(scanner);
|
||||||
|
break;
|
||||||
|
case 8:
|
||||||
|
displayOffers();
|
||||||
|
break;
|
||||||
|
case 9:
|
||||||
|
displayOrderConfirmations();
|
||||||
|
break;
|
||||||
|
case 10:
|
||||||
|
displayDeliveryNotes();
|
||||||
|
break;
|
||||||
|
case 11:
|
||||||
|
displayInvoices();
|
||||||
|
break;
|
||||||
|
case 12:
|
||||||
|
displayCompanies();
|
||||||
|
break;
|
||||||
|
case 13:
|
||||||
|
displayProducts();
|
||||||
|
break;
|
||||||
|
case 14:
|
||||||
|
displayCustomers();
|
||||||
|
break;
|
||||||
|
case 15:
|
||||||
|
loadFromXML();
|
||||||
|
System.out.println("XML-Daten erfolgreich geladen.");
|
||||||
|
break;
|
||||||
|
case 16:
|
||||||
|
System.out.println("Programm wird beendet.");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
System.out.println("Ungültige Auswahl. Bitte erneut versuchen.");
|
||||||
|
}
|
||||||
|
} while (choice != 16);
|
||||||
|
}
|
||||||
|
public void enterCompany(Scanner scanner) {
|
||||||
|
System.out.print("Geben Sie den Firmennamen ein: ");
|
||||||
|
String name = scanner.nextLine();
|
||||||
|
System.out.print("Geben Sie die Adresse ein: ");
|
||||||
|
String address = scanner.nextLine();
|
||||||
|
System.out.print("Geben Sie die Telefonnummer ein: ");
|
||||||
|
String phone = scanner.nextLine();
|
||||||
|
System.out.print("Geben Sie die E-Mail-Adresse ein: ");
|
||||||
|
String email = scanner.nextLine();
|
||||||
|
System.out.print("Ist die Firma ein Kleinunternehmen? (ja/nein): ");
|
||||||
|
boolean isSmallBusiness = scanner.nextLine().equalsIgnoreCase("ja");
|
||||||
|
|
||||||
|
Company company = new Company(name, address, phone, email, isSmallBusiness);
|
||||||
|
companies.add(company);
|
||||||
|
XMLUtils.serializeObjectToXML( company, "xml_data/" + "company_" + name + ".xml");
|
||||||
|
System.out.println("Firma erfolgreich hinzugefügt und in XML gespeichert.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void enterProduct(Scanner scanner) {
|
||||||
|
System.out.print("Geben Sie die Einheit des Produkts ein: ");
|
||||||
|
String unit = scanner.nextLine();
|
||||||
|
System.out.print("Geben Sie die Bezeichnung des Produkts ein: ");
|
||||||
|
String name = scanner.nextLine();
|
||||||
|
System.out.print("Geben Sie den Nettopreis des Produkts ein: ");
|
||||||
|
double netPrice = Double.parseDouble(scanner.nextLine());
|
||||||
|
System.out.print("Geben Sie den Mehrwertsteuersatz des Produkts ein: ");
|
||||||
|
double taxRate = Double.parseDouble(scanner.nextLine());
|
||||||
|
|
||||||
|
Product product = new Product(unit, name, netPrice, taxRate);
|
||||||
|
products.add(product);
|
||||||
|
XMLUtils.serializeObjectToXML(product, "xml_data/" + "product_" + name + ".xml");
|
||||||
|
System.out.println("Produkt erfolgreich hinzugefügt und in XML gespeichert.");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void enterCustomer(Scanner scanner) {
|
||||||
|
System.out.print("Geben Sie die Adresse des Kunden ein: ");
|
||||||
|
String address = scanner.nextLine();
|
||||||
|
System.out.print("Geben Sie den Ansprechpartner des Kunden ein: ");
|
||||||
|
String contactPerson = scanner.nextLine();
|
||||||
|
System.out.print("Ist der Kunde ein Kleinunternehmen? (ja/nein): ");
|
||||||
|
boolean isSmallBusiness = scanner.nextLine().equalsIgnoreCase("ja");
|
||||||
|
|
||||||
|
Customer customer = new Customer(address, contactPerson, isSmallBusiness);
|
||||||
|
customers.add(customer);
|
||||||
|
XMLUtils.serializeObjectToXML(customer, "xml_data/" + "customer_" + contactPerson + ".xml");
|
||||||
|
System.out.println("Kunde erfolgreich hinzugefügt und in XML gespeichert.");
|
||||||
|
}
|
||||||
|
public void createOffer(Scanner scanner) {
|
||||||
|
System.out.println("Neues Angebot erstellen:");
|
||||||
|
displayCustomers();
|
||||||
|
System.out.print("Wählen Sie einen Kunden aus (Index): ");
|
||||||
|
int customerIndex = scanner.nextInt();
|
||||||
|
Customer customer = customers.get(customerIndex);
|
||||||
|
|
||||||
|
// Eingabe des Datums durch den Benutzer
|
||||||
|
System.out.print("Geben Sie das Datum des Angebots ein (Format: dd-MM-yyyy): ");
|
||||||
|
String dateString = scanner.next();
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
|
||||||
|
Date date = null;
|
||||||
|
try {
|
||||||
|
date = dateFormat.parse(dateString);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
int offerId = offers.size() + 1;
|
||||||
|
|
||||||
|
Offer offer = new Offer(offerId, date, customer); // Hier wird das Datum gesetzt
|
||||||
|
|
||||||
|
boolean addingProducts = true;
|
||||||
|
while (addingProducts) {
|
||||||
|
displayProducts();
|
||||||
|
System.out.print("Wählen Sie ein Produkt aus (Index) oder -1 zum Beenden: ");
|
||||||
|
int productIndex = scanner.nextInt();
|
||||||
|
if (productIndex == -1) {
|
||||||
|
addingProducts = false;
|
||||||
|
} else {
|
||||||
|
Product product = products.get(productIndex);
|
||||||
|
System.out.print("Geben Sie die Menge ein: ");
|
||||||
|
int quantity = scanner.nextInt();
|
||||||
|
offer.addProduct(product, quantity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
offers.add(offer);
|
||||||
|
System.out.println("Angebot erfolgreich erstellt.");
|
||||||
|
|
||||||
|
// Angebot serialisieren
|
||||||
|
String offerFileName = "offer_" + offers.size() + ".xml";
|
||||||
|
XMLUtils.serializeObjectToXML(offer, "xml_data/" + offerFileName);
|
||||||
|
System.out.println("Angebot als XML-Datei gespeichert: " + offerFileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayCompanies() {
|
||||||
|
System.out.println("Firmen:");
|
||||||
|
for (Company company : companies) {
|
||||||
|
System.out.println(company);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayProducts() {
|
||||||
|
System.out.println("Produkte:");
|
||||||
|
for (Product product : products) {
|
||||||
|
System.out.println(product);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayCustomers() {
|
||||||
|
System.out.println("Kunden:");
|
||||||
|
for (Customer customer : customers) {
|
||||||
|
System.out.println(customer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public void displayOffers() {
|
||||||
|
System.out.println("Angebote:");
|
||||||
|
for (int i = 0; i < offers.size(); i++) {
|
||||||
|
System.out.println("Angebot " + (i + 1) + ":");
|
||||||
|
System.out.println(offers.get(i));
|
||||||
|
}
|
||||||
|
if (offers.isEmpty()) {
|
||||||
|
System.out.println("Keine Angebote vorhanden.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void createOrderConfirmation(Scanner scanner) {
|
||||||
|
System.out.println("Neue Auftragsbestätigung erstellen:");
|
||||||
|
displayOffers();
|
||||||
|
System.out.print("Wählen Sie ein Angebot aus (Index): ");
|
||||||
|
int offerIndex = scanner.nextInt();
|
||||||
|
Offer offer = offers.get(offerIndex);
|
||||||
|
|
||||||
|
System.out.print("Geben Sie das Datum der Auftragsbestätigung ein (Format: dd-MM-yyyy): ");
|
||||||
|
String dateString = scanner.next();
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
|
||||||
|
Date date = null;
|
||||||
|
try {
|
||||||
|
date = dateFormat.parse(dateString);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
int confirmationId = orderConfirmations.size() + 1;
|
||||||
|
|
||||||
|
OrderConfirmation orderConfirmation = new OrderConfirmation(confirmationId, date, offer);
|
||||||
|
orderConfirmations.add(orderConfirmation);
|
||||||
|
System.out.println("Auftragsbestätigung erfolgreich erstellt.");
|
||||||
|
|
||||||
|
// Auftragsbestätigung serialisieren
|
||||||
|
String confirmationFileName = "order_confirmation_" + orderConfirmations.size() + ".xml";
|
||||||
|
XMLUtils.serializeObjectToXML(orderConfirmation, "xml_data/" + confirmationFileName);
|
||||||
|
System.out.println("Auftragsbestätigung als XML-Datei gespeichert: " + confirmationFileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createDeliveryNote(Scanner scanner) {
|
||||||
|
System.out.println("Neuen Lieferschein erstellen:");
|
||||||
|
displayOrderConfirmations();
|
||||||
|
System.out.print("Wählen Sie eine Auftragsbestätigung aus (Index): ");
|
||||||
|
int confirmationIndex = scanner.nextInt();
|
||||||
|
OrderConfirmation orderConfirmation = orderConfirmations.get(confirmationIndex);
|
||||||
|
|
||||||
|
System.out.print("Geben Sie das Datum des Lieferscheins ein (Format: dd-MM-yyyy): ");
|
||||||
|
String dateString = scanner.next();
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
|
||||||
|
Date date = null;
|
||||||
|
try {
|
||||||
|
date = dateFormat.parse(dateString);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
int deliveryNoteId = deliveryNotes.size() + 1;
|
||||||
|
|
||||||
|
DeliveryNote deliveryNote = new DeliveryNote(deliveryNoteId, date, orderConfirmation);
|
||||||
|
deliveryNotes.add(deliveryNote);
|
||||||
|
System.out.println("Lieferschein erfolgreich erstellt.");
|
||||||
|
|
||||||
|
// Lieferschein serialisieren
|
||||||
|
String deliveryNoteFileName = "delivery_note_" + deliveryNotes.size() + ".xml";
|
||||||
|
XMLUtils.serializeObjectToXML(deliveryNote, "xml_data/" + deliveryNoteFileName);
|
||||||
|
System.out.println("Lieferschein als XML-Datei gespeichert: " + deliveryNoteFileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createInvoice(Scanner scanner) {
|
||||||
|
System.out.println("Neue Rechnung erstellen:");
|
||||||
|
displayDeliveryNotes();
|
||||||
|
System.out.print("Wählen Sie einen Lieferschein aus (Index): ");
|
||||||
|
int deliveryNoteIndex = scanner.nextInt();
|
||||||
|
DeliveryNote deliveryNote = deliveryNotes.get(deliveryNoteIndex);
|
||||||
|
|
||||||
|
System.out.print("Geben Sie das Datum der Rechnung ein (Format: dd-MM-yyyy): ");
|
||||||
|
String dateString = scanner.next();
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
|
||||||
|
Date date = null;
|
||||||
|
try {
|
||||||
|
date = dateFormat.parse(dateString);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
int invoiceId = invoices.size() + 1;
|
||||||
|
|
||||||
|
Invoice invoice = new Invoice(invoiceId, date, deliveryNote);
|
||||||
|
invoices.add(invoice);
|
||||||
|
System.out.println("Rechnung erfolgreich erstellt.");
|
||||||
|
|
||||||
|
// Rechnung serialisieren
|
||||||
|
String invoiceFileName = "invoice_" + invoices.size() + ".xml";
|
||||||
|
XMLUtils.serializeObjectToXML(invoice, "xml_data/" + invoiceFileName);
|
||||||
|
System.out.println("Rechnung als XML-Datei gespeichert: " + invoiceFileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayOrderConfirmations() {
|
||||||
|
System.out.println("Auftragsbestätigungen:");
|
||||||
|
for (int i = 0; i < orderConfirmations.size(); i++) {
|
||||||
|
System.out.println(i + ": " + orderConfirmations.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayDeliveryNotes() {
|
||||||
|
System.out.println("Lieferscheine:");
|
||||||
|
for (int i = 0; i < deliveryNotes.size(); i++) {
|
||||||
|
System.out.println(i + ": " + deliveryNotes.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void displayInvoices() {
|
||||||
|
System.out.println("Rechnungen:");
|
||||||
|
for (int i = 0; i < invoices.size(); i++) {
|
||||||
|
System.out.println(i + ": " + invoices.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void loadFromXML() {
|
||||||
|
// Existierende Daten laden
|
||||||
|
companies = XMLUtils.deserializeObjectFromXML("xml_data/companies.xml");
|
||||||
|
products = XMLUtils.deserializeObjectFromXML("xml_data/products.xml");
|
||||||
|
customers = XMLUtils.deserializeObjectFromXML("xml_data/customers.xml");
|
||||||
|
offers = XMLUtils.deserializeObjectFromXML("xml_data/offers.xml");
|
||||||
|
orderConfirmations = XMLUtils.deserializeObjectFromXML("xml_data/order_confirmations.xml");
|
||||||
|
deliveryNotes = XMLUtils.deserializeObjectFromXML("xml_data/delivery_notes.xml");
|
||||||
|
invoices = XMLUtils.deserializeObjectFromXML("xml_data/invoices.xml");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class DeliveryNote {
|
||||||
|
private int deliveryNoteId;
|
||||||
|
private Date date;
|
||||||
|
private OrderConfirmation orderConfirmation;
|
||||||
|
|
||||||
|
public DeliveryNote(int deliveryNoteId, Date date, OrderConfirmation orderConfirmation) {
|
||||||
|
this.deliveryNoteId = deliveryNoteId;
|
||||||
|
this.date = date;
|
||||||
|
this.orderConfirmation = orderConfirmation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDeliveryNoteId() {
|
||||||
|
return deliveryNoteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeliveryNoteId(int deliveryNoteId) {
|
||||||
|
this.deliveryNoteId = deliveryNoteId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDate(Date date) {
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderConfirmation getOrderConfirmation() {
|
||||||
|
return orderConfirmation;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOrderConfirmation(OrderConfirmation orderConfirmation) {
|
||||||
|
this.orderConfirmation = orderConfirmation;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "DeliveryNote{" +
|
||||||
|
"deliveryNoteId=" + deliveryNoteId +
|
||||||
|
", date=" + date +
|
||||||
|
", orderConfirmation=" + orderConfirmation +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class Invoice {
|
||||||
|
private int invoiceId;
|
||||||
|
private Date date;
|
||||||
|
private DeliveryNote deliveryNote;
|
||||||
|
|
||||||
|
public Invoice(int invoiceId, Date date, DeliveryNote deliveryNote) {
|
||||||
|
this.invoiceId = invoiceId;
|
||||||
|
this.date = date;
|
||||||
|
this.deliveryNote = deliveryNote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getInvoiceId() {
|
||||||
|
return invoiceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setInvoiceId(int invoiceId) {
|
||||||
|
this.invoiceId = invoiceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDate(Date date) {
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DeliveryNote getDeliveryNote() {
|
||||||
|
return deliveryNote;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDeliveryNote(DeliveryNote deliveryNote) {
|
||||||
|
this.deliveryNote = deliveryNote;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Invoice{" +
|
||||||
|
"invoiceId=" + invoiceId +
|
||||||
|
", date=" + date +
|
||||||
|
", deliveryNote=" + deliveryNote +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
DataManager manager = new DataManager();
|
||||||
|
manager.showMenu();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class Offer {
|
||||||
|
private int offerId;
|
||||||
|
private Date date; // Neues Date-Attribut für das Erstellungsdatum des Angebots
|
||||||
|
private Customer customer;
|
||||||
|
private Map<Product, Integer> products;
|
||||||
|
|
||||||
|
public Offer(int offerId, Date date, Customer customer) {
|
||||||
|
this.offerId = offerId;
|
||||||
|
this.date = date;
|
||||||
|
this.customer = customer;
|
||||||
|
this.products = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getOfferId() {
|
||||||
|
return offerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOfferId(int offerId) {
|
||||||
|
this.offerId = offerId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDate(Date date) {
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Customer getCustomer() {
|
||||||
|
return customer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCustomer(Customer customer) {
|
||||||
|
this.customer = customer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<Product, Integer> getProducts() {
|
||||||
|
return products;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProducts(Map<Product, Integer> products) {
|
||||||
|
this.products = products;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addProduct(Product product, int quantity) {
|
||||||
|
products.put(product, quantity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Offer{" +
|
||||||
|
"offerId=" + offerId +
|
||||||
|
", date=" + date +
|
||||||
|
", customer=" + customer +
|
||||||
|
", products=" + products +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class OrderConfirmation {
|
||||||
|
private int confirmationId;
|
||||||
|
private Date date;
|
||||||
|
private Offer offer;
|
||||||
|
|
||||||
|
public OrderConfirmation(int confirmationId, Date date, Offer offer) {
|
||||||
|
this.confirmationId = confirmationId;
|
||||||
|
this.date = date;
|
||||||
|
this.offer = offer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getConfirmationId() {
|
||||||
|
return confirmationId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setConfirmationId(int confirmationId) {
|
||||||
|
this.confirmationId = confirmationId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getDate() {
|
||||||
|
return date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDate(Date date) {
|
||||||
|
this.date = date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Offer getOffer() {
|
||||||
|
return offer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOffer(Offer offer) {
|
||||||
|
this.offer = offer;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "OrderConfirmation{" +
|
||||||
|
"confirmationId=" + confirmationId +
|
||||||
|
", date=" + date +
|
||||||
|
", offer=" + offer +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
public class Product implements Serializable {
|
||||||
|
public static int getNextProductNumber() {
|
||||||
|
return nextProductNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setNextProductNumber(int nextProductNumber) {
|
||||||
|
Product.nextProductNumber = nextProductNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Product [number=" + number + ", unit=" + unit + ", name=" + name + ", netPrice=" + netPrice
|
||||||
|
+ ", taxRate=" + taxRate + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int nextProductNumber = 1;
|
||||||
|
|
||||||
|
private String number;
|
||||||
|
private String unit;
|
||||||
|
private String name;
|
||||||
|
private double netPrice;
|
||||||
|
private double taxRate;
|
||||||
|
|
||||||
|
public Product(String unit, String name, double netPrice, double taxRate) {
|
||||||
|
this.number = generateProductNumber();
|
||||||
|
this.unit = unit;
|
||||||
|
this.name = name;
|
||||||
|
this.netPrice = netPrice;
|
||||||
|
this.taxRate = taxRate;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Getter und Setter
|
||||||
|
|
||||||
|
private String generateProductNumber() {
|
||||||
|
return "ART-" + nextProductNumber++;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,48 @@
|
||||||
|
import java.beans.XMLDecoder;
|
||||||
|
import java.beans.XMLEncoder;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileOutputStream;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class XMLUtils {
|
||||||
|
public static void serializeObjectToXML(Object obj, String filePath) {
|
||||||
|
try {
|
||||||
|
FileOutputStream fos = new FileOutputStream(filePath);
|
||||||
|
XMLEncoder encoder = new XMLEncoder(fos);
|
||||||
|
encoder.writeObject(obj);
|
||||||
|
encoder.close();
|
||||||
|
fos.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> T deserializeObjectFromXML(String filePath) {
|
||||||
|
T obj = null;
|
||||||
|
try {
|
||||||
|
FileInputStream fis = new FileInputStream(filePath);
|
||||||
|
XMLDecoder decoder = new XMLDecoder(fis);
|
||||||
|
obj = (T) decoder.readObject();
|
||||||
|
decoder.close();
|
||||||
|
fis.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> List<T> deserializeListFromXML(String filePath) {
|
||||||
|
List<T> list = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
FileInputStream fis = new FileInputStream(filePath);
|
||||||
|
XMLDecoder decoder = new XMLDecoder(fis);
|
||||||
|
list = (List<T>) decoder.readObject();
|
||||||
|
decoder.close();
|
||||||
|
fis.close();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<java version="17.0.8" class="java.beans.XMLDecoder">
|
||||||
|
<string>address</string>
|
||||||
|
<string>Ahash</string>
|
||||||
|
<string>contactPerson</string>
|
||||||
|
<string>das</string>
|
||||||
|
<string>smallBusiness</string>
|
||||||
|
<boolean>true</boolean>
|
||||||
|
</java>
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<java version="17.0.8" class="java.beans.XMLDecoder">
|
||||||
|
<string>offerId</string>
|
||||||
|
<int>1</int>
|
||||||
|
<string>date</string>
|
||||||
|
<object class="java.util.Date">
|
||||||
|
<long>1713736800000</long>
|
||||||
|
</object>
|
||||||
|
<string>customer</string>
|
||||||
|
<string>products</string>
|
||||||
|
<object class="java.util.HashMap"/>
|
||||||
|
</java>
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<java version="17.0.8" class="java.beans.XMLDecoder">
|
||||||
|
<string>nextProductNumber</string>
|
||||||
|
<int>2</int>
|
||||||
|
<string>number</string>
|
||||||
|
<string>ART-1</string>
|
||||||
|
<string>unit</string>
|
||||||
|
<string>mas</string>
|
||||||
|
<string>name</string>
|
||||||
|
<string>ham</string>
|
||||||
|
<string>netPrice</string>
|
||||||
|
<double>122.0</double>
|
||||||
|
<string>taxRate</string>
|
||||||
|
<double>1.0</double>
|
||||||
|
</java>
|
Loading…
Reference in New Issue