Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE TRIGGER Stornieren
- BEFORE DELETE ON Belegung
- FOR each ROW
- DECLARE
- KundenNr INTEGER;
- KName varchar2(40);
- KVorname varchar2(40);
- Info varchar2(120);
- STATUS varchar2(7);
- --Buchungswert number;
- BEGIN
- IF :OLD.STATUS = 'Buchung'
- THEN
- SELECT k.KundenNr, k.Name, k.Vorname, f.Info, (CASE WHEN r.Zahlungsdatum IS NULL THEN 'offen'
- ELSE 'bezahlt'
- END
- ) AS SETSTATUS
- INTO KundenNr, KName, KVorname, Info, STATUS
- FROM Kunde k, Ferienwohnung f LEFT OUTER JOIN Rechnung r ON (r.BelegungsNr = :OLD.BelegungsNr)
- WHERE k.KundenNr = :OLD.KundenNr
- AND f.WohnungsID = :OLD.WohnungsID;
- INSERT INTO sBuchung (StornierungsNr, Stornierungsdatum, BuchungsNr, Buchungsdatum, VonDatumBuchung,
- BisDatumBuchung, Buchungswert, STATUS, KundenNr, KundenName, KundenVorname,
- FWohnungNr, FWohnungInfo)
- VALUES (SequenceOne.NEXTVAL, CURRENT_DATE, :OLD.BelegungsNr, :OLD.Buchungsdatum, :OLD.BelegungVon,
- :OLD.BelegungBis, preis(:OLD.BelegungBis-:OLD.BelegungVon, :OLD.WohnungsID), STATUS, KundenNr, KName, KVorname,
- :OLD.WohnungsID, Info);
- DELETE FROM FROM Rechnung r WHERE :OLD.BelegungsNr = r.BelegungsNr;
- END IF;
- END;
- /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement