/* * 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 ""; } }