Advertisement
Guest User

Untitled

a guest
Aug 20th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.27 KB | None | 0 0
  1.  
  2. CREATE OR REPLACE TRIGGER Stornieren
  3. BEFORE DELETE ON Belegung
  4. FOR each ROW
  5. DECLARE
  6.     KundenNr INTEGER;
  7.     KName varchar2(40);
  8.     KVorname varchar2(40);
  9.     Info varchar2(120);
  10.     STATUS varchar2(7);
  11.     --Buchungswert number;
  12.     BEGIN
  13.         IF :OLD.STATUS = 'Buchung'
  14.             THEN
  15.                 SELECT k.KundenNr, k.Name, k.Vorname, f.Info, (CASE WHEN r.Zahlungsdatum IS NULL THEN 'offen'
  16.                                                                                 ELSE 'bezahlt'
  17.                                                                                 END
  18.                                                                         ) AS SETSTATUS
  19.                 INTO KundenNr, KName, KVorname, Info, STATUS
  20.                 FROM Kunde k, Ferienwohnung f LEFT OUTER JOIN Rechnung r ON (r.BelegungsNr = :OLD.BelegungsNr)
  21.                 WHERE k.KundenNr = :OLD.KundenNr
  22.                 AND f.WohnungsID = :OLD.WohnungsID;
  23.  
  24.                
  25.                 INSERT INTO sBuchung (StornierungsNr, Stornierungsdatum, BuchungsNr, Buchungsdatum, VonDatumBuchung,
  26.                                             BisDatumBuchung, Buchungswert, STATUS, KundenNr, KundenName, KundenVorname,
  27.                                             FWohnungNr, FWohnungInfo)
  28.                 VALUES                      (SequenceOne.NEXTVAL, CURRENT_DATE, :OLD.BelegungsNr, :OLD.Buchungsdatum, :OLD.BelegungVon,
  29.                                             :OLD.BelegungBis, preis(:OLD.BelegungBis-:OLD.BelegungVon, :OLD.WohnungsID), STATUS, KundenNr, KName, KVorname,
  30.                                             :OLD.WohnungsID, Info);            
  31.                 DELETE FROM FROM Rechnung r WHERE :OLD.BelegungsNr = r.BelegungsNr;
  32.         END IF;
  33.     END;
  34. /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement