FMHN#79962 Verwijderen van bijlagen bij reserveringen en meldingen
svn path=/Database/trunk/; revision=63322
This commit is contained in:
@@ -2098,6 +2098,7 @@ DEF_FAC_SRTNOT('RESKTO', 3, 'lcl_noti_RESKTO', 'mld/mld_melding.asp?kto=1&res_ke
|
||||
DEF_FAC_SRTNOT('RESCLN', 0, 'lcl_noti_RESCLN', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 10);
|
||||
DEF_FAC_SRTNOT('RESROK', 0, 'lcl_noti_RESROK', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 10);
|
||||
DEF_FAC_SRTNOT('RES2BO', 0, 'lcl_noti_RES2BO', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 10); //GOUD#37603
|
||||
DEF_FAC_SRTNOT('RESANO', 0, 'lcl_noti_RESANO', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 10);
|
||||
|
||||
DEF_FAC_SRTNOT('INSNEW', 0, 'lcl_noti_INSNEW', 'ins/ins_deel.asp?ins_key=', '0', 'deel', 10);
|
||||
DEF_FAC_SRTNOT('INSUPD', 0, 'lcl_noti_INSUPD', 'ins/ins_deel.asp?ins_key=', '0', 'deel', 60);
|
||||
|
||||
@@ -11,6 +11,7 @@ CREATE OR REPLACE PACKAGE ano AS
|
||||
PROCEDURE anonymizebez (p_startdatum IN DATE, p_einddatum IN DATE);
|
||||
PROCEDURE anonymizemld (p_startdatum IN DATE, p_einddatum IN DATE);
|
||||
PROCEDURE anonymizeprs (p_startdatum IN DATE, p_einddatum IN DATE);
|
||||
PROCEDURE anonymizeres (p_startdatum IN DATE, p_einddatum IN DATE);
|
||||
PROCEDURE anonymizefull(p_flags NUMBER DEFAULT 65535);
|
||||
PROCEDURE anonymize (p_startdatum IN DATE, p_einddatum IN DATE);
|
||||
PROCEDURE table_column(p_tabel IN VARCHAR2, p_kolom IN VARCHAR2, p_functie IN VARCHAR2);
|
||||
@@ -58,6 +59,19 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
WHERE fac_srtnotificatie_code = 'BESANO'))
|
||||
ORDER BY b.bes_bestelling_key;
|
||||
|
||||
-- BES heeft nog geen anonimiseerbare kenmerken
|
||||
--CURSOR c_bijlagen(p_refkey IN NUMBER)
|
||||
--IS
|
||||
-- SELECT b.fac_bijlagen_key
|
||||
-- FROM fac_bijlagen b
|
||||
-- , bes_kenmerk k
|
||||
-- , bes_srtkenmerk s
|
||||
-- WHERE k.bes_srtkenmerk_key = s.bes_srtkenmerk_key
|
||||
-- AND k.bes_kenmerk_key = b.fac_bijlagen_kenmerk_key
|
||||
-- AND BITAND(s.bes_srtkenmerk_systeem, 8) = 8
|
||||
-- AND b.fac_bijlagen_module = 'BES'
|
||||
-- AND b.fac_bijlagen_refkey = p_refkey;
|
||||
|
||||
BEGIN
|
||||
IF p_einddatum > SYSDATE - anonymize_period + 1
|
||||
THEN
|
||||
@@ -104,6 +118,15 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
WHERE bk.bes_srtkenmerk_key = bsk.bes_srtkenmerk_key
|
||||
AND bk.bes_kenmerk_key = bkbl.bes_kenmerk_key
|
||||
AND BITAND(bsk.bes_srtkenmerk_systeem, 8) = 8);
|
||||
-- Zet het verwijder-veld van alle bijlagen van bestellingen waarvan het &8 (BITAND) bit (anonimiseren)
|
||||
-- van het bes_srtkenmerk.bes_srtkenmerk_systeem veld is gezet.
|
||||
-- De scheduled functie utils/gen_schedular/gen_cleanup.js verwijderd dan binnenkort de bijlage echt
|
||||
-- en ruimt dan ook het record in fac_bijlagen op.
|
||||
-- BES heeft nog geen anonimiseerbare kenmerken
|
||||
--FOR rec_fb in c_bijlagen(rec_b.bes_bestelling_key)
|
||||
--LOOP
|
||||
-- flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
|
||||
--END LOOP;
|
||||
END IF;
|
||||
|
||||
--IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
|
||||
@@ -154,6 +177,11 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
WHERE bk.bes_srtkenmerk_key = bsk.bes_srtkenmerk_key
|
||||
AND bk.bes_kenmerk_key = bkbi.bes_kenmerk_key
|
||||
AND BITAND(bsk.bes_srtkenmerk_systeem, 8) = 8);
|
||||
-- BES heeft nog geen anonimiseerbare kenmerken
|
||||
--FOR rec_fb IN c_bijlagen(rec_bo.bes_bestelopdr_key)
|
||||
--LOOP
|
||||
-- flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
|
||||
--END LOOP;
|
||||
END IF;
|
||||
|
||||
--IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
|
||||
@@ -197,6 +225,19 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_code = 'BEZANO'))
|
||||
ORDER BY bez_afspraak_key;
|
||||
|
||||
CURSOR c_bijlagen(p_refkey IN NUMBER)
|
||||
IS
|
||||
SELECT b.fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, bez_kenmerk k
|
||||
, bez_bezoekers v
|
||||
WHERE k.bez_kenmerk_key = b.fac_bijlagen_kenmerk_key
|
||||
AND b.fac_bijlagen_refkey = v.bez_bezoekers_key
|
||||
AND BITAND(k.bez_kenmerk_systeem, 8) = 8
|
||||
AND b.fac_bijlagen_module = 'BEZ'
|
||||
AND v.bez_afspraak_key = p_refkey;
|
||||
|
||||
BEGIN
|
||||
IF p_einddatum > SYSDATE - anonymize_period + 1
|
||||
THEN
|
||||
@@ -243,6 +284,14 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
FROM bez_kenmerk bk
|
||||
WHERE bk.bez_kenmerk_key = bkw.bez_kenmerk_key
|
||||
AND BITAND(bk.bez_kenmerk_systeem, 8) = 8);
|
||||
-- Zet het verwijder-veld van alle bijlagen van bezoekers waarvan het &8 (BITAND) bit (anonimiseren)
|
||||
-- van het bez_kenmerk.bez_kenmerk_systeem veld is gezet.
|
||||
-- De scheduled functie utils/gen_schedular/gen_cleanup.js verwijderd dan binnenkort de bijlage echt
|
||||
-- en ruimt dan ook het record in fac_bijlagen op.
|
||||
FOR rec_fb in c_bijlagen(rec_a.bez_afspraak_key)
|
||||
LOOP
|
||||
flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
|
||||
@@ -347,6 +396,32 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
WHERE fac_srtnotificatie_code = 'MLDANO'))
|
||||
ORDER BY m.mld_melding_key;
|
||||
|
||||
CURSOR c_bijlagen_melding(p_refkey IN NUMBER)
|
||||
IS
|
||||
SELECT b.fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, mld_kenmerk k
|
||||
, mld_srtkenmerk s
|
||||
WHERE k.mld_kenmerk_key = b.fac_bijlagen_kenmerk_key
|
||||
AND k.mld_srtkenmerk_key = s.mld_srtkenmerk_key
|
||||
AND b.fac_bijlagen_refkey = p_refkey
|
||||
AND BITAND(s.mld_srtkenmerk_systeem, 8) = 8
|
||||
AND k.mld_kenmerk_niveau IN ('S','D','T')
|
||||
AND b.fac_bijlagen_module = 'MLD';
|
||||
|
||||
CURSOR c_bijlagen_opdracht(p_refkey IN NUMBER)
|
||||
IS
|
||||
SELECT b.fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, mld_kenmerk k
|
||||
, mld_srtkenmerk s
|
||||
WHERE k.mld_kenmerk_key = b.fac_bijlagen_kenmerk_key
|
||||
AND k.mld_srtkenmerk_key = s.mld_srtkenmerk_key
|
||||
AND b.fac_bijlagen_refkey = p_refkey
|
||||
AND BITAND(s.mld_srtkenmerk_systeem, 8) = 8
|
||||
AND k.mld_kenmerk_niveau IN ('P','O')
|
||||
AND b.fac_bijlagen_module = 'MLD';
|
||||
|
||||
BEGIN
|
||||
IF p_einddatum > SYSDATE - anonymize_period + 1
|
||||
THEN
|
||||
@@ -396,6 +471,14 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
||||
AND mk.mld_kenmerk_key = mkm.mld_kenmerk_key
|
||||
AND BITAND(msk.mld_srtkenmerk_systeem, 8) = 8);
|
||||
-- Zet het verwijder-veld van alle bijlagen van de melding waarvan het &8 (BITAND) bit (anonimiseren)
|
||||
-- van het mld_srtkenmerk.mld_srtkenmerk_systeem veld is gezet.
|
||||
-- De scheduled functie utils/gen_schedular/gen_cleanup.js verwijderd dan binnenkort de bijlage echt
|
||||
-- en ruimt dan ook het record in fac_bijlagen op.
|
||||
FOR rec_fb IN c_bijlagen_melding(rec_m.mld_melding_key)
|
||||
LOOP
|
||||
flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
|
||||
@@ -460,6 +543,15 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
WHERE mk.mld_srtkenmerk_key = msk.mld_srtkenmerk_key
|
||||
AND mk.mld_kenmerk_key = mko.mld_kenmerk_key
|
||||
AND BITAND(msk.mld_srtkenmerk_systeem, 8) = 8);
|
||||
|
||||
-- Zet het verwijder-veld van alle bijlagen van de melding-opdracht waarvan het &8 (BITAND) bit (anonimiseren)
|
||||
-- van het mld_srtkenmerk.mld_srtkenmerk_systeem veld is gezet.
|
||||
-- De scheduled functie utils/gen_schedular/gen_cleanup.js verwijderd dan binnenkort de bijlage echt
|
||||
-- en ruimt dan ook het record in fac_bijlagen op.
|
||||
FOR rec_fb IN c_bijlagen_opdracht(rec_o.mld_opdr_key)
|
||||
LOOP
|
||||
flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
|
||||
@@ -524,6 +616,17 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_code = 'PRSANO'))
|
||||
ORDER BY 2;
|
||||
|
||||
CURSOR c_bijlagen(p_refkey IN NUMBER)
|
||||
IS
|
||||
SELECT b.fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, prs_kenmerk k
|
||||
WHERE k.prs_kenmerk_key = b.fac_bijlagen_kenmerk_key
|
||||
AND BITAND(k.prs_kenmerk_systeem, 8) = 8
|
||||
AND b.fac_bijlagen_module = 'PRS'
|
||||
AND b.fac_bijlagen_refkey = p_refkey;
|
||||
|
||||
BEGIN
|
||||
IF p_einddatum > SYSDATE - anonymize_period + 1
|
||||
THEN
|
||||
@@ -576,6 +679,14 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
FROM prs_kenmerk pk
|
||||
WHERE pk.prs_kenmerk_key = pkl.prs_kenmerk_key
|
||||
AND BITAND(pk.prs_kenmerk_systeem, 8) = 8);
|
||||
-- Zet het verwijder-veld van alle bijlagen van personen waarvan het &8 (BITAND) bit (anonimiseren)
|
||||
-- van het prs_kenmerk.prs_kenmerk_systeem veld is gezet.
|
||||
-- De scheduled functie utils/gen_schedular/gen_cleanup.js verwijderd dan binnenkort de bijlage echt
|
||||
-- en ruimt dan ook het record in fac_bijlagen op.
|
||||
FOR rec_fb in c_bijlagen(rec_p.prs_perslid_key)
|
||||
LOOP
|
||||
flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
|
||||
@@ -622,6 +733,137 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
END IF;
|
||||
END;
|
||||
|
||||
PROCEDURE anonymizeres (p_startdatum IN DATE,
|
||||
p_einddatum IN DATE)
|
||||
AS
|
||||
anonymize_period NUMBER := fac.safe_to_number (fac.getsetting ('anonymize_period'));
|
||||
bez_generic_visitor VARCHAR2 (2001) := lcl.l('lcl_bez_generic_visitor');
|
||||
prs_old_employee VARCHAR2 (100) := lcl.l('lcl_prs_old_employee');
|
||||
v_count NUMBER;
|
||||
anonymize_mode NUMBER;
|
||||
|
||||
-- Alle personen die tussen de startdatum en de einddatum verwijderd zijn.
|
||||
CURSOR c_reservering
|
||||
IS
|
||||
SELECT r.res_rsv_ruimte_key
|
||||
FROM res_rsv_ruimte r
|
||||
WHERE (SELECT MAX(ft.fac_tracking_datum)
|
||||
FROM fac_tracking ft
|
||||
WHERE ft.fac_tracking_refkey = r.res_rsv_ruimte_key
|
||||
AND ft.fac_srtnotificatie_key IN (SELECT nk.fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie nk
|
||||
WHERE nk.fac_srtnotificatie_xmlnode = 'reservering'
|
||||
AND nk.fac_srtnotificatie_key != (SELECT nc.fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie nc
|
||||
WHERE nc.fac_srtnotificatie_code = 'RESANO'
|
||||
)
|
||||
)
|
||||
) BETWEEN to_date('01-01-2023','dd-mm-yyyy') AND to_date('01-07-2023','dd-mm-yyyy')
|
||||
AND ( r.res_status_bo_key IN (5,6)
|
||||
OR r.res_rsv_ruimte_verwijder IS NOT NULL
|
||||
)
|
||||
AND NOT EXISTS
|
||||
(SELECT ft.fac_tracking_key
|
||||
FROM fac_tracking ft
|
||||
WHERE ft.fac_tracking_refkey = r.res_rsv_ruimte_key
|
||||
AND ft.fac_srtnotificatie_key = (SELECT nc.fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie nc
|
||||
WHERE nc.fac_srtnotificatie_code = 'RESANO'
|
||||
)
|
||||
)
|
||||
ORDER BY r.res_rsv_ruimte_key;
|
||||
|
||||
CURSOR c_bijlagen(p_refkey IN NUMBER)
|
||||
IS
|
||||
SELECT b.fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, res_kenmerk k
|
||||
, res_srtkenmerk s
|
||||
WHERE k.res_kenmerk_key = b.fac_bijlagen_kenmerk_key
|
||||
AND k.res_srtkenmerk_key = s.res_srtkenmerk_key
|
||||
AND BITAND(s.res_srtkenmerk_systeem, 8) = 8
|
||||
AND b.fac_bijlagen_module = 'RES'
|
||||
AND b.fac_bijlagen_refkey = p_refkey;
|
||||
|
||||
BEGIN
|
||||
IF p_einddatum > SYSDATE - anonymize_period + 1
|
||||
THEN
|
||||
raise_application_error(-20001, 'ano_m001 Einddatum is te groot');
|
||||
END IF;
|
||||
|
||||
SELECT fac.getSetting('anonymize_mode')
|
||||
INTO anonymize_mode
|
||||
FROM DUAL;
|
||||
|
||||
IF anonymize_mode > 0
|
||||
THEN
|
||||
v_count := 0;
|
||||
FOR rec_r IN c_reservering
|
||||
LOOP
|
||||
-- *
|
||||
-- Anonimiseren reservering
|
||||
IF (BITAND(anonymize_mode, 1) = 1) -- tracking
|
||||
THEN
|
||||
-- Alle RES tracking anonimiseren m.b.t. de reservering.
|
||||
UPDATE fac_tracking
|
||||
SET fac_tracking_oms = NULL
|
||||
WHERE fac_srtnotificatie_key IN (SELECT fac_srtnotificatie_key
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_xmlnode = 'reservering'
|
||||
AND fac_srtnotificatie_code != 'RESANO')
|
||||
AND fac_tracking_refkey = rec_r.res_rsv_ruimte_key
|
||||
AND fac_tracking_oms IS NOT NULL;
|
||||
END IF;
|
||||
|
||||
--IF (BITAND(anonymize_mode, 2) = 2) -- notes
|
||||
--THEN
|
||||
--END IF;
|
||||
|
||||
IF (BITAND(anonymize_mode, 4) = 4) -- kenmerken
|
||||
THEN
|
||||
-- Verwijder alle kenmerkwaarden van de reservering waarvan het &8 (BITAND) bit (anonimiseren)
|
||||
-- van het res_srtkenmerk.res_srtkenmerk_systeem veld is gezet.
|
||||
DELETE FROM res_kenmerkwaarde rkw
|
||||
WHERE rkw.res_rsv_ruimte_key = rec_r.res_rsv_ruimte_key
|
||||
AND rkw.res_kenmerk_key IN (SELECT rk.res_kenmerk_key
|
||||
FROM res_kenmerk rk
|
||||
, res_srtkenmerk rsk
|
||||
WHERE rk.res_srtkenmerk_key = rsk.res_srtkenmerk_key
|
||||
AND rk.res_kenmerk_key = rkw.res_kenmerk_key
|
||||
AND BITAND(rsk.res_srtkenmerk_systeem, 8) = 8);
|
||||
-- Zet het verwijder-veld van alle bijlagen van reservering waarvan het &8 (BITAND) bit (anonimiseren)
|
||||
-- van het res_srtkenmerk.res_srtkenmerk_systeem veld is gezet.
|
||||
-- De scheduled functie utils/gen_schedular/gen_cleanup.js verwijderd dan binnenkort de bijlage echt
|
||||
-- en ruimt dan ook het record in fac_bijlagen op.
|
||||
FOR rec_fb in c_bijlagen(rec_r.res_rsv_ruimte_key)
|
||||
LOOP
|
||||
flx.deleteflexbijlage(rec_fb.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
IF (BITAND(anonymize_mode, 8) = 8) -- vaste omschrijvingen
|
||||
THEN
|
||||
UPDATE res_rsv_ruimte
|
||||
SET res_rsv_ruimte_omschrijving = CASE WHEN res_rsv_ruimte_omschrijving IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, res_rsv_ruimte_opmerking = CASE WHEN res_rsv_ruimte_opmerking IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
, res_rsv_ruimte_telefoon = CASE WHEN res_rsv_ruimte_telefoon IS NOT NULL THEN lcl.l('lcl_fac_anonymized') END
|
||||
WHERE res_rsv_ruimte_key = rec_r.res_rsv_ruimte_key;
|
||||
END IF;
|
||||
|
||||
-- Anonimiseren van de reservering tracken.
|
||||
fac.trackaction('RESANO', rec_r.res_rsv_ruimte_key, NULL, NULL, NULL);
|
||||
|
||||
IF v_count >= 1000
|
||||
THEN
|
||||
COMMIT;
|
||||
v_count := 0;
|
||||
ELSE
|
||||
v_count := v_count + 1;
|
||||
END IF;
|
||||
END LOOP;
|
||||
END IF;
|
||||
END;
|
||||
|
||||
PROCEDURE anonymizefull(p_flags NUMBER DEFAULT 65535)
|
||||
AS
|
||||
BEGIN
|
||||
@@ -827,6 +1069,7 @@ CREATE OR REPLACE PACKAGE BODY ano AS
|
||||
anonymizebez(p_startdatum, p_einddatum);
|
||||
anonymizemld(p_startdatum, p_einddatum);
|
||||
anonymizeprs(p_startdatum, p_einddatum);
|
||||
anonymizeres(p_startdatum, p_einddatum);
|
||||
END;
|
||||
|
||||
PROCEDURE table_column(p_tabel IN VARCHAR2,
|
||||
|
||||
@@ -307,7 +307,7 @@ BEGIN
|
||||
|
||||
UPDATE_AANMAAKDATUM(res_srtkenmerk, res_srtkenmerk_aanmaak);
|
||||
IF (:new.res_srtkenmerk_verwijder IS NOT NULL AND :old.res_srtkenmerk_verwijder IS NULL AND
|
||||
:new.res_srtkenmerk_systeem = 1)
|
||||
BITAND(:new.res_srtkenmerk_systeem, 1) = 1)
|
||||
THEN
|
||||
raise_application_error(-20000, 'RES_C_RES_SRTKENMERK_SYSTEEM');
|
||||
END IF;
|
||||
|
||||
@@ -320,6 +320,9 @@ ALTER TABLE ins_srtcontrole ADD ins_srtcontrole_opmerking_text NUMBER(1) DEFAULT
|
||||
ALTER TABLE alg_verdieping
|
||||
ADD alg_verdieping_dwgz NUMBER (16, 3);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// FMHN#79962
|
||||
DEF_FAC_SRTNOT('RESANO', 0, 'lcl_noti_RESANO', 'res/res_reservering.asp?rsv_ruimte_key=', '0', 'reservering', 10);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// FCLT#00000
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user