FCLT#59394: Bij verwijderen afspraak *alle* open notificaties terugtrekken.
svn path=/Database/trunk/; revision=44470
This commit is contained in:
@@ -58,7 +58,7 @@ CREATE_TRIGGER(bez_t_bez_afspraak_d)
|
||||
ON bez_afspraak
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
DELETE FROM bez_bezoekers WHERE bez_afspraak_key=:OLD.bez_afspraak_key;
|
||||
DELETE FROM bez_bezoekers WHERE bez_afspraak_key = :OLD.bez_afspraak_key;
|
||||
END;
|
||||
/
|
||||
|
||||
@@ -83,26 +83,25 @@ CREATE_TRIGGER(bez_t_notificatie_afspraak_d)
|
||||
ON bez_afspraak
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
fac.clrnotifications('BEZMUT', :OLD.bez_afspraak_key);
|
||||
fac.clrnotifications('BEZUPD', :OLD.bez_afspraak_key);
|
||||
fac.clrnotifications('BEZMAI', :OLD.bez_afspraak_key);
|
||||
-- Alle notificaties verwijderen van de "afspraak" xmlnode die behoren bij de verwijderde afspraak.
|
||||
fac.clrnotifications_xmlnode('afspraak', :OLD.bez_afspraak_key);
|
||||
-- Tracking verwijderen die niet weg gaat als de afspraak wordt verwijderd.
|
||||
fac.clrtracking_xmlnode('afspraak', :OLD.bez_afspraak_key);
|
||||
END;
|
||||
/
|
||||
|
||||
CREATE_TRIGGER(bez_t_notificatie_bezoekers_d)
|
||||
AFTER DELETE
|
||||
ON bez_bezoekers
|
||||
FOR EACH ROW
|
||||
BEGIN
|
||||
fac.clrnotifications('BEZDO%', :OLD.bez_bezoekers_key);
|
||||
fac.clrnotifications('BEZOU%', :OLD.bez_bezoekers_key);
|
||||
fac.clrnotifications('BEZBAD', :OLD.bez_bezoekers_key);
|
||||
-- Alle notificaties verwijderen van de "bezoeker" xmlnode die behoren bij de verwijderde bezoeker.
|
||||
fac.clrnotifications_xmlnode('bezoeker', :OLD.bez_bezoekers_key);
|
||||
-- Tracking verwijderen die niet weg gaat als de bezoeker wordt verwijderd.
|
||||
fac.clrtracking_xmlnode('bezoeker', :OLD.bez_bezoekers_key);
|
||||
END;
|
||||
/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE_TRIGGER(bez_t_bez_kenmerk_b_iu)
|
||||
BEFORE INSERT OR UPDATE ON bez_kenmerk
|
||||
FOR EACH ROW
|
||||
|
||||
@@ -112,6 +112,8 @@ CREATE OR REPLACE PACKAGE fac
|
||||
pprio NUMBER, psender VARCHAR2, pattach VARCHAR2 DEFAULT NULL);
|
||||
PROCEDURE clrnotifications (pcode VARCHAR2, pref NUMBER, puitz VARCHAR2 DEFAULT NULL, puitz2 VARCHAR2 DEFAULT NULL);
|
||||
PROCEDURE clrnotifications (pcode VARCHAR2, pref NUMBER, psubject VARCHAR2, preceiver NUMBER, pextrakey NUMBER);
|
||||
PROCEDURE clrnotifications_xmlnode (pxmlnode VARCHAR2, prefkey NUMBER);
|
||||
PROCEDURE clrtracking_xmlnode (pxmlnode VARCHAR2, prefkey NUMBER);
|
||||
PROCEDURE putnotificationjobs (pcust VARCHAR2);
|
||||
PROCEDURE putjobnotifications (pviewname VARCHAR2, pmode NUMBER, pflags NUMBER);
|
||||
FUNCTION getMobile ( pkey IN NUMBER ) RETURN VARCHAR2;
|
||||
@@ -2072,6 +2074,30 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
-- portalberichten: fac_notificatie verwijderd de dubbelen wel in zijn insert trigger (nieuwste notificatie wordt hierna geinsert).
|
||||
END;
|
||||
|
||||
PROCEDURE clrnotifications_xmlnode (pxmlnode VARCHAR2, prefkey NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
-- Notificaties die niet vanzelf weg gaan als de xmlnode wordt verwijderd alsnog verwijderen.
|
||||
DELETE FROM fac_notificatie
|
||||
WHERE fac_srtnotificatie_key IN (SELECT sn.fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie sn
|
||||
WHERE sn.fac_srtnotificatie_xmlnode = pxmlnode)
|
||||
AND fac_notificatie_refkey = prefkey;
|
||||
END;
|
||||
|
||||
PROCEDURE clrtracking_xmlnode (pxmlnode VARCHAR2, prefkey NUMBER)
|
||||
AS
|
||||
BEGIN
|
||||
-- Tracking verwijderen die niet weg gaat als de xmlnode wordt verwijderd.
|
||||
DELETE FROM fac_tracking
|
||||
WHERE fac_tracking_key IN (SELECT fac_tracking_key
|
||||
FROM fac_tracking ft,
|
||||
fac_srtnotificatie fs
|
||||
WHERE ft.fac_srtnotificatie_key = fs.fac_srtnotificatie_key
|
||||
AND fs.fac_srtnotificatie_xmlnode = pxmlnode
|
||||
AND ft.fac_tracking_refkey = prefkey);
|
||||
END;
|
||||
|
||||
-- Kijk welke jobs gescheduled zijn en nu uitgevoerd moeten worden.
|
||||
PROCEDURE putnotificationjobs (pcust VARCHAR2)
|
||||
AS
|
||||
|
||||
Reference in New Issue
Block a user