summaryrefslogtreecommitdiffstats
path: root/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans')
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/adressen/AdressenBean.java43
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/adressen/AdressenRemote.java19
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerBean.java106
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerRemote.java29
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungBean.java70
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungRemote.java20
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/bestell/BestellBean.java105
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/bestell/BestellRemote.java23
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerBean.java99
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerRemote.java25
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lager/LagerBean.java80
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lager/LagerRemote.java22
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lieferant/LieferantBean.java48
-rw-r--r--Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lieferant/LieferantRemote.java22
14 files changed, 711 insertions, 0 deletions
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/adressen/AdressenBean.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/adressen/AdressenBean.java
new file mode 100644
index 0000000..9046ed5
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/adressen/AdressenBean.java
@@ -0,0 +1,43 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.adressen;
+
+
+import beans.*;
+import javax.ejb.Stateless;
+import javax.jws.WebService;
+
+/**
+ *
+ * @author jmueller
+ */
+@Stateless(mappedName="AdressenBean")
+public class AdressenBean implements AdressenRemote {
+
+
+ /**
+ * gibt zu einer Artikel-Id die Adresse des Lieferanten zurück
+ * @param artikel_id Die Artikel-Id
+ * @return Die Adresse des Lieferanten
+ */
+ public String getLieferantenAdresseFuerArtikel( long artikel_id) {
+ if(artikel_id == 1)
+ return "Shimano, Merkelstr. 133, 12345 Dresden";
+ else if (artikel_id == 2)
+ return "Siemens, Zumwinkelstr. 31, 123123 Berlin";
+ else if (artikel_id == 3)
+ return "Schwalbe, Taubenweg 3, 54566 Hannover";
+ else
+ return "Musterfirma, Musterstrasse 123, 12345 Musterstadt";
+
+
+ }
+
+
+ // Add business logic below. (Right-click in editor and choose
+ // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/adressen/AdressenRemote.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/adressen/AdressenRemote.java
new file mode 100644
index 0000000..24970cf
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/adressen/AdressenRemote.java
@@ -0,0 +1,19 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.adressen;
+
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author jmueller
+ */
+@Remote
+public interface AdressenRemote {
+
+ String getLieferantenAdresseFuerArtikel(long artikel_id);
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerBean.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerBean.java
new file mode 100644
index 0000000..07be349
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerBean.java
@@ -0,0 +1,106 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.artikelManager;
+
+import beans.*;
+import entities.Artikel;
+import exceptions.IdBereitsVergebenException;
+import exceptions.UnbekanntesEntityException;
+import java.util.List;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+/**
+ *
+ * @author Jan
+ */
+@Stateless(mappedName="ArtikelManagerBean")
+public class ArtikelManagerBean implements ArtikelManagerRemote {
+ @PersistenceContext
+ private EntityManager em;
+
+
+ /**
+ * erstellt einen Artikel und liefert die Artikel-Id zurueck
+ * @param artikel
+ * @return Artikel-Id
+ */
+ public long createArtikel(Artikel artikel) throws IdBereitsVergebenException {
+ try {
+ em.persist(artikel);
+ return artikel.getId();
+ }
+ catch(Exception e){
+ throw new IdBereitsVergebenException("Artikel-Id bereits vergeben: [id="+ artikel.getId()+"]");
+ }
+ }
+
+
+ /**
+ * Gibt einen Artikel anhand seiner Id zurueck
+ * @param artikelId
+ * @return
+ */
+ public Artikel readArtikel( long artikelId) throws UnbekanntesEntityException{
+ Artikel artikel = em.find(Artikel.class, artikelId );
+ if (artikel == null)
+ throw new UnbekanntesEntityException("Artikel", artikelId);
+ return artikel;
+ }
+
+
+ /**
+ * gibt alle Artikel zurueck
+ * @return
+ */
+ public List<Artikel> readAllArtikel(){
+ return (List<Artikel>)em.createQuery("SELECT a FROM Artikel a ORDER BY a.id").getResultList();
+ }
+
+ /**
+ * Schreibt die Änderungen eines Artikels in die Datenbank
+ * @param artikel
+ */
+ public void updateArtikel( Artikel artikel){
+ em.merge(artikel);
+ }
+
+ /**
+ * Entfernt einen Artikel mit der angegebenen Artikel-Id
+ * @param artikelId
+ */
+ public void deleteArtikel(long artikelId){
+ Artikel artikel = em.find(Artikel.class, artikelId );
+ em.remove(artikel);
+ }
+
+
+ /**
+ * entfernt alle Artikel
+ */
+ public void deleteAllArtikel(){
+ for(Artikel artikel : readAllArtikel()){
+ deleteArtikel( artikel.getId() );
+ }
+ }
+
+
+ /**
+ * Prüft ob es einen Artikel mit angegebener Artikel-Id gibt
+ * @param artikelId
+ * @return
+ */
+ public boolean existsArtikel(long artikelId){
+ Artikel artikel = em.find(Artikel.class, artikelId );
+ if(artikel != null)
+ return true;
+
+ return false;
+ }
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerRemote.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerRemote.java
new file mode 100644
index 0000000..dba3832
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/artikelManager/ArtikelManagerRemote.java
@@ -0,0 +1,29 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.artikelManager;
+
+import entities.Artikel;
+import exceptions.IdBereitsVergebenException;
+import exceptions.UnbekanntesEntityException;
+import java.util.List;
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author Jan
+ */
+@Remote
+public interface ArtikelManagerRemote {
+
+ public long createArtikel(Artikel artikel) throws IdBereitsVergebenException;
+ public Artikel readArtikel(long artikelId) throws UnbekanntesEntityException;
+ public List<Artikel> readAllArtikel();
+ public void updateArtikel(Artikel artikel);
+ public void deleteArtikel(long artikelId);
+ public void deleteAllArtikel();
+ public boolean existsArtikel(long artikelId);
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungBean.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungBean.java
new file mode 100644
index 0000000..625261f
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungBean.java
@@ -0,0 +1,70 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package beans.auftragsAbwicklung;
+
+import beans.bestell.BestellRemote;
+import beans.lieferant.LieferantRemote;
+import beans.lager.LagerRemote;
+import beans.*;
+import beans.artikelManager.ArtikelManagerRemote;
+import entities.Artikel;
+import exceptions.AuftragsAbwicklungException;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+
+/**
+ * Eine Klasse für das abwickeln von Aufträgen
+ * @author jmueller
+ */
+@Stateless(mappedName="AuftragsAbwicklungBean")
+public class AuftragsAbwicklungBean implements AuftragsAbwicklungRemote {
+ @EJB
+ private BestellRemote bestellBean;
+ @EJB
+ private ArtikelManagerRemote artikelManagerBean;
+
+ @EJB
+ private LieferantRemote lieferantBean;
+ @EJB
+ private LagerRemote lagerBean;
+
+
+ /**
+ * simuliert die Bestellung eines Artikels durch einen Kunden
+ *
+ * @param kundenId Id des Kunden
+ * @param artikelId Id des Artikels
+ * @param artikelAnzahl Anzahl des Artikels
+ *
+ * @return String Bericht
+ * @throws java.lang.Exception
+ */
+ public String bestelleArtikel(long kundenId, long artikelId, long artikelAnzahl ) throws Exception{
+
+
+ if( bestellBean.validiereBestellung(artikelId, artikelAnzahl, kundenId) != true){
+ throw new AuftragsAbwicklungException("Bestellung nicht valide!");
+ }
+
+ Artikel artikel = artikelManagerBean.readArtikel(artikelId);
+
+
+ // falls nicht verfuegbar -> nachbestellen
+ if (lagerBean.pruefeVerfuegbarkeit(artikelId, artikelAnzahl) != true) {
+ long mindestMenge = 10L;
+ long imLager = artikel.getAnzahl();
+ long anzahlNachbestellen = artikelAnzahl - imLager + mindestMenge;
+ lieferantBean.bestelleNach(artikelId, anzahlNachbestellen);
+ }
+
+ lagerBean.bucheArtikelAus(artikelId, artikelAnzahl);
+ double preisOhneMwSt = bestellBean.berechneGesamtpreis(artikelAnzahl, artikel.getPreis());
+ double MwSt = bestellBean.berechneMehrwertSteuer(preisOhneMwSt);
+
+ return "";
+ }
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungRemote.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungRemote.java
new file mode 100644
index 0000000..4dfa025
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/auftragsAbwicklung/AuftragsAbwicklungRemote.java
@@ -0,0 +1,20 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.auftragsAbwicklung;
+
+import exceptions.AuftragsAbwicklungException;
+import helper.AuftragsPosition;
+import java.util.List;
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author jmueller
+ */
+@Remote
+public interface AuftragsAbwicklungRemote {
+ public String bestelleArtikel(long kundenId, long artikelId, long artikelAnzahl) throws Exception;
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/bestell/BestellBean.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/bestell/BestellBean.java
new file mode 100644
index 0000000..d7f4e76
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/bestell/BestellBean.java
@@ -0,0 +1,105 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.bestell;
+
+import beans.kundenManager.KundenManagerRemote;
+import beans.*;
+import beans.artikelManager.ArtikelManagerRemote;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+
+/**
+ *
+ * @author Jan
+ */
+@Stateless(mappedName="BestellBean")
+public class BestellBean implements BestellRemote {
+ @EJB
+ private KundenManagerRemote kundenManagerBean;
+ @EJB
+ private ArtikelManagerRemote artikelManagerBean;
+
+
+ /**
+ * testet ob eine Position valide ist,
+ * das heisst ob es einen Artikel mit angegebener Id gibt
+ * und ob die anzahl &gt; 0 ist
+ *
+ * @param artikelId
+ * @param anzahl
+ * @return true falls valide
+ */
+ public boolean validierePosition
+ ( long artikelId,
+ long anzahl) {
+
+ // verifiziere, dass mindestens ein Artikel bestellt wird
+ if(anzahl < 1){
+ return false;
+ }
+
+ // verifiziere dass ein Artikel mit dieser id existiert
+ if (artikelManagerBean.existsArtikel(artikelId) == false){
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * validiert eine Bestellung,
+ *
+ * siehe validierePosition, allerdings mit Überprüfung ob ein Kunde
+ * mit angegebener Id existiert
+ *
+ * @param artikelId Id des Artikels
+ * @param anzahl Artikel-Anzahl
+ * @param kundenId Id des Kunden
+ * @return true falls valide
+ */
+ public boolean validiereBestellung
+ ( long artikelId,
+ long anzahl,
+ long kundenId) {
+
+
+ if( validierePosition(artikelId, anzahl) != true){
+ return false;
+ }
+
+ if(kundenManagerBean.existsKunde(kundenId) == false){
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * berechnet den Gesamtpreis der bestellten Artikel
+ *
+ * @param anzahl Anzahl der Artikel
+ * @param preis Einzel-Preis
+ * @return Gesamtpreis
+ */
+ public double berechneGesamtpreis
+ ( long anzahl,
+ double preis) {
+ return anzahl * preis;
+ }
+
+ /**
+ * Berechnet die Mehrwertsteuer
+ *
+ * es wird von einer Mehrwert-Steuer von 19% ausgegangen
+ *
+ * @param preis Der Preis
+ * @return MwSt Die berechnete Mehrwertsteuer
+ */
+ public double berechneMehrwertSteuer(double preis) {
+ return 0.19 * preis;
+ }
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/bestell/BestellRemote.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/bestell/BestellRemote.java
new file mode 100644
index 0000000..a6f1001
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/bestell/BestellRemote.java
@@ -0,0 +1,23 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.bestell;
+
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author Jan
+ */
+@Remote
+public interface BestellRemote {
+
+ public double berechneGesamtpreis(long anzahl, double preis);
+ public double berechneMehrwertSteuer(double preis);
+ public boolean validierePosition(long artikelId, long anzahl);
+ public boolean validiereBestellung(long artikelId, long anzahl, @javax.jws.WebParam(name = "kundenId")
+ long kundenId);
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerBean.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerBean.java
new file mode 100644
index 0000000..b0de74c
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerBean.java
@@ -0,0 +1,99 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.kundenManager;
+
+import beans.*;
+import entities.Kunde;
+import java.util.List;
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+/**
+ *
+ * @author Jan
+ */
+
+@Stateless(mappedName="KundenManagerBean")
+public class KundenManagerBean implements KundenManagerRemote {
+ @PersistenceContext
+ private EntityManager em;
+
+
+ /**
+ * erstellt einen Kunden und liefert die Kunden-Id zurueck
+ * @param Kunde
+ * @return Kunden-Id
+ */
+ public long createKunde(Kunde kunde) {
+ em.persist(kunde);
+
+ return kunde.getId();
+ }
+
+
+ /**
+ * Gibt einen Kunden anhand seiner Id zurueck
+ * @param kundeId
+ * @return
+ */
+ public Kunde readKunde(long kundeId){
+ Kunde kunde = em.find(Kunde.class, kundeId );
+ return kunde;
+ }
+
+
+ /**
+ * gibt alle Kunden zurueck
+ * @return
+ */
+ public List<Kunde> readAllKunden(){
+ return (List<Kunde>)em.createQuery("SELECT k FROM Kunde k ORDER BY k.id").getResultList();
+ }
+
+ /**
+ * Schreibt die Änderungen eines Kunden in die Datenbank
+ * @param kunde Der Kunde
+ */
+ public void updateKunde(Kunde kunde){
+ em.merge(kunde);
+ }
+
+ /**
+ * Entfernt einen Kunden mit der angegebenen Kunden-Id
+ * @param kundeId
+ */
+ public void deleteKunde(long kundeId){
+ Kunde kunde = em.find(Kunde.class, kundeId );
+ em.remove(kunde);
+ }
+
+
+ /**
+ * entfernt alle Kunden
+ *
+ */
+ public void deleteAllKunden(){
+ for(Kunde kunde : readAllKunden()){
+ deleteKunde( kunde.getId() );
+ }
+ }
+
+
+ /**
+ * Prüft ob es einen Kunden mit angegebener Kunden-Id gibt
+ * @param kundeId
+ * @return true falls ein Kunde mit angegebener ID existiert
+ */
+ public boolean existsKunde(long kundeId){
+ Kunde kunde = em.find(Kunde.class, kundeId );
+ if(kunde != null)
+ return true;
+
+ return false;
+ }
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerRemote.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerRemote.java
new file mode 100644
index 0000000..935c715
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/kundenManager/KundenManagerRemote.java
@@ -0,0 +1,25 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.kundenManager;
+
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author Jan
+ */
+@Remote
+public interface KundenManagerRemote {
+
+ public long createKunde(entities.Kunde kunde);
+ public entities.Kunde readKunde(long kundeId);
+ public java.util.List<entities.Kunde> readAllKunden();
+ public void updateKunde(entities.Kunde kunde);
+ public void deleteKunde(long kundeId);
+ public void deleteAllKunden();
+ public boolean existsKunde(long kundeId);
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lager/LagerBean.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lager/LagerBean.java
new file mode 100644
index 0000000..1602797
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lager/LagerBean.java
@@ -0,0 +1,80 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.lager;
+
+import beans.*;
+import beans.artikelManager.ArtikelManagerRemote;
+import entities.Artikel;
+import exceptions.IllegalerWertException;
+import exceptions.UnbekanntesEntityException;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+
+/**
+ * Diese Klasse stellt Funktionen des Lagers bereit
+ * @author jmueller
+ */
+@Stateless(mappedName="LagerBean")
+public class LagerBean implements LagerRemote {
+ @EJB
+ private ArtikelManagerRemote artikelManagerBean;
+
+ /**
+ * bucht eine bestimmte Anzahl von Artikeln aus dem Lager aus
+ *
+ * @param id die Id des Artikels
+ * @param anzahl die Anzahl der auszubuchenden Artikel
+ */
+ public void bucheArtikelAus(long id, long anzahl)throws UnbekanntesEntityException, IllegalerWertException{
+ System.out.println("Lager: bucheArtikelAus("+id+","+anzahl+")");
+ if(anzahl < 0){
+ throw new IllegalerWertException("anzahl", ""+id);
+ }
+ Artikel artikel = artikelManagerBean.readArtikel(id);
+ artikel.setAnzahl(artikel.getAnzahl() - anzahl);
+ artikelManagerBean.updateArtikel(artikel);
+ }
+
+
+ /**
+ * bucht eine bestimmte Anzahl von Artikeln ins Lager ein
+ *
+ * @param id
+ * @param anzahl
+ * @throws exceptions.UnbekanntesEntityException
+ * @throws exceptions.IllegalerWertException
+ */
+ public void bucheArtikelEin(long id, long anzahl) throws UnbekanntesEntityException, IllegalerWertException{
+ System.out.println("Lager: bucheArtikelEin("+id+","+ anzahl+")");
+ if(anzahl < 0){
+ throw new IllegalerWertException("anzahl", ""+id);
+ }
+
+ Artikel artikel = artikelManagerBean.readArtikel(id);
+ artikel.setAnzahl(artikel.getAnzahl() + anzahl);
+ artikelManagerBean.updateArtikel(artikel);
+ }
+
+
+ /**
+ * Testet ob der Artikel in ausreichender Anzahl vorhanden ist,
+ * falls der Artikel nicht existiert wird false zurückgegeben
+ * @param id
+ * @param anzahl
+ * @return
+ */
+ public boolean pruefeVerfuegbarkeit(long id, long anzahl) throws Exception{
+ Artikel artikel = artikelManagerBean.readArtikel(id);
+ if( artikel.getAnzahl() >= anzahl ){
+ return true;
+ }
+
+ return false;
+ }
+
+ // Add business logic below. (Right-click in editor and choose
+ // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lager/LagerRemote.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lager/LagerRemote.java
new file mode 100644
index 0000000..ea1e8d0
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lager/LagerRemote.java
@@ -0,0 +1,22 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.lager;
+
+import exceptions.IllegalerWertException;
+import exceptions.UnbekanntesEntityException;
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author jmueller
+ */
+@Remote
+public interface LagerRemote {
+
+ public void bucheArtikelAus(long id, long anzahl) throws UnbekanntesEntityException, IllegalerWertException;
+ public void bucheArtikelEin(long id, long anzahl) throws UnbekanntesEntityException, IllegalerWertException;
+ public boolean pruefeVerfuegbarkeit(long id, long anzahl) throws Exception;
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lieferant/LieferantBean.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lieferant/LieferantBean.java
new file mode 100644
index 0000000..2fb1a16
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lieferant/LieferantBean.java
@@ -0,0 +1,48 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.lieferant;
+
+import beans.*;
+import beans.lager.LagerRemote;
+import beans.artikelManager.ArtikelManagerRemote;
+import beans.adressen.AdressenRemote;
+import exceptions.IllegalerWertException;
+import exceptions.UnbekanntesEntityException;
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+
+/**
+ *
+ * @author jmueller
+ */
+@Stateless(mappedName="LieferantBean")
+public class LieferantBean implements LieferantRemote {
+ @EJB
+ private ArtikelManagerRemote artikelManagerBean;
+ @EJB
+ private LagerRemote lagerBean;
+ @EJB
+ private AdressenRemote adressenBean;
+
+
+
+ /**
+ * bestellt eine bestimmte Anzahl von Artikeln nach
+ * @param id die Id des Artikels
+ * @param anzahl die Anzahl
+ */
+ // TODO: Session Bean erstellen die die Adresse des Lieferanten für bestimmte
+ // Artikel heraussucht
+ public void bestelleNach(long id, long anzahl) throws UnbekanntesEntityException, IllegalerWertException{
+ System.out.println("Lieferant: bestelleNach("+id+","+anzahl+")");
+ lagerBean.bucheArtikelEin(id, anzahl);
+
+ System.out.println("Bestellung erfolgt bei: " + adressenBean.getLieferantenAdresseFuerArtikel(id) );
+ }
+
+
+
+}
diff --git a/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lieferant/LieferantRemote.java b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lieferant/LieferantRemote.java
new file mode 100644
index 0000000..9a4a63f
--- /dev/null
+++ b/Master/Daten- und Systemintegration/Praktikum/DSI-Praktikum-1_ausgang/DSI1-ausgang/DSI-ejb/src/java/beans/lieferant/LieferantRemote.java
@@ -0,0 +1,22 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package beans.lieferant;
+
+import exceptions.IllegalerWertException;
+import exceptions.UnbekanntesEntityException;
+import javax.ejb.Remote;
+
+/**
+ *
+ * @author jmueller
+ */
+@Remote
+public interface LieferantRemote {
+
+ void bestelleNach(long id, long anzahl) throws UnbekanntesEntityException, IllegalerWertException;
+
+
+}