Es ist eine Warenwirtschaftssystemappliaktion zu erstellen.
Führe in SQL*Plus zunächst das Skript WAWI.SQL aus. Erstelle anschließend ein Package WAWI_PACK, welches vier Unterprogramme beinhaltet:

erd

1. Artikel

Ein neuer Artikel ist einzufügen bzw. zu ändern.
Parameter: Bezeichnung, Artikelgruppenbezeichnung, Preis.
Rückgabe: neu angelegte ArtikelID. (fortlaufend)
Existiert dieser Artikel bereits (Bezeichnung) ist dieser zu ändern.

Create Procedure for primary key
create sequence PK_WAWI_ARTIKEL start with 23;

drop sequence PK_WAWI_ARTIKEL;

select PK_WAWI_ARTIKEL.nextval from DUAL;



commit;
create or replace function wawiAddArticle (
    p_bezeichnung in WAWI_ARTIKEL.BEZEICHNUNG%type,
    p_artikelGruppenBezeichnung in WAWI_ARTIKEL_GRUPPE.BEZEICHNUNG%type,
    p_preis in number)
    return WAWI_ARTIKEL.ARTIKELID%type
as
    counter integer;
begin
    insert into WAWI_ARTIKEL
    (ARTIKELID, ARTIKELGRUPPEID, BEZEICHNUNG, PREIS)
    values (
        PK_WAWI_ARTIKEL.nextval,
        (select ARTIKELGRUPPEID
         from WAWI_ARTIKEL_GRUPPE
         where upper(BEZEICHNUNG) like upper(p_artikelGruppenBezeichnung)),
        p_bezeichnung,
        p_preis
    );

    return PK_WAWI_ARTIKEL.currval;
end wawiAddArticle;
/
select wawiAddArticle('test', 'eisen', 10) from DUAL;

2. Kunde

Ein neuer Kunde ist einzufügen bzw. zu ändern.
Parameter: Kundengruppenbezeichnung, VName, NName, Adresse.
Rückgabe: neu angelegte KundenID. (fortlaufend)
Existiert dieser Kunde bereits (VName, NName) ist dieser zu ändern.

3. Preisliste

Ein neuer Rabatt ist einzufügen bzw. zu ändern.
Parameter: Kundengruppenbezeichnung, Artikelgruppenbezeichnung.
Rückgabe: keiner
Existiert dieser Rabattsatz bereits ist dieser zu ändern.

4. Rechnung

Gibt sämtliche Rechnungen eines Kunden aus.
Parameter: KundenID.
Rückgabe: keiner
Dabei wird zunächst eine Zeile mit den Daten des Rechnungskopfes (rechnungs- kopfID, VName, NName, Kundengruppenbezeichnung) ausgegeben und daran die einzelnen Positionen der Rechnung angefügt. (RechnungskopfID, Rechnungspositi- onsID, ArtikelID, Menge, Artikelgruppenbezeichnung, Rabatt, Preis je Artikel, Summe=(Menge * Preis)-Rabatt). Jede Rechnung erhält eine Summenzeile.

  1. Entscheide, ob Funktionen oder Prozeduren zu erstellen sind.

  2. Erstelle anschließend ein Skript, welches die Unterprogramme mit mehreren Testfällen testet (z.B. unnamed block).

  3. Fehler sollen abgefangen werden und sprechende Fehlermeldungen ausge- geben werden.