Files
Customer/onces/UWVA/uwva125.sql
Sander Schepers 15e67bf7f6 UWVA#59571 Levering uwva125.sql
svn path=/Customer/; revision=49993
2021-02-22 17:22:39 +00:00

191 lines
7.8 KiB
SQL

--
-- $Id$
--
-- Customer specific once-script UWVA124.
DEFINE thisfile = 'UWVA125.SQL'
DEFINE dbuser = '^UWVA'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
-- Hieronder de once uit UWVA#59571:
-- Het anonimiseerscript voor de bezoekers en afspraken wordt aangepast. Dat wordt wat eenduidiger en er wordt wat meer anoniem gemaakt dan voorheen.
-- Dat anonimiseerscript is een geschedulede taak, die enkel kijkt naar de periode van afgelopen jaar (tot 31 dgn geleden).
--
-- Met dit once script wordt hetzelfde gedaan als het anonimiseerscript ook doet, maar dan voor de periode langer geleden (de hele oude historie dus).
DECLARE
CURSOR c_afspraak
IS
SELECT DISTINCT (a.bez_afspraak_key)
FROM bez_afspraak a, bez_bezoekers b
WHERE a.bez_afspraak_key = b.bez_afspraak_key
AND a.bez_afspraak_datum < SYSDATE - 31;
BEGIN
-- Eerst de tracking van de bezoekers verwijderen
DELETE FROM fac_tracking
WHERE fac_tracking_key IN
(SELECT t.fac_tracking_key
FROM fac_srtnotificatie sn,
fac_tracking t,
bez_bezoekers b,
bez_afspraak a
WHERE t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode =
'bezoeker'
AND t.fac_tracking_refkey = b.bez_bezoekers_key
AND b.bez_afspraak_key = a.bez_afspraak_key
AND a.bez_afspraak_datum <
SYSDATE - 31);
COMMIT;
-- De tracking van de afspraken moet in een paar delen om een ora-30036 te voorkomen.
DELETE FROM fac_tracking
WHERE fac_tracking_key IN
(SELECT t.fac_tracking_key
FROM fac_srtnotificatie sn,
fac_tracking t,
bez_afspraak a
WHERE t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode =
'afspraak'
AND t.fac_tracking_refkey = a.bez_afspraak_key
AND a.bez_afspraak_datum <
SYSDATE - 2000);
COMMIT;
DELETE FROM fac_tracking
WHERE fac_tracking_key IN
(SELECT t.fac_tracking_key
FROM fac_srtnotificatie sn,
fac_tracking t,
bez_afspraak a
WHERE t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode =
'afspraak'
AND t.fac_tracking_refkey = a.bez_afspraak_key
AND a.bez_afspraak_datum <
SYSDATE - 1000);
COMMIT;
DELETE FROM fac_tracking
WHERE fac_tracking_key IN
(SELECT t.fac_tracking_key
FROM fac_srtnotificatie sn,
fac_tracking t,
bez_afspraak a
WHERE t.fac_srtnotificatie_key =
sn.fac_srtnotificatie_key
AND sn.fac_srtnotificatie_xmlnode =
'afspraak'
AND t.fac_tracking_refkey = a.bez_afspraak_key
AND a.bez_afspraak_datum <
SYSDATE - 31);
COMMIT;
-- Anonimiseer gegevens per bezoeker van afspraken >31 dagen oud (bij bezoeker of reservering)
-- Met UWVA#59571 moeten bepaalde bezoekersregistraties (KZ) naar 'Anoniem', anderen naar 'Bezoeker'
FOR rc IN c_afspraak
LOOP
BEGIN
DELETE FROM bez_kenmerkwaarde kw
WHERE EXISTS
(SELECT 1
FROM bez_bezoekers
WHERE bez_bezoekers_key = kw.bez_bezoekers_key
AND bez_afspraak_key = rc.bez_afspraak_key);
UPDATE bez_bezoekers
SET bez_afspraak_naam = 'Anoniem', bez_afspraak_bedrijf = NULL
WHERE bez_afspraak_key = rc.bez_afspraak_key
AND bez_afspraak_key IN
(SELECT a2.bez_afspraak_key
FROM fac_usrdata ud,
bez_afspraak a2,
res_rsv_ruimte r
WHERE r.res_activiteit_key =
fac.safe_to_number (ud.fac_usrdata_code)
AND a2.res_rsv_ruimte_key =
r.res_rsv_ruimte_key
AND ud.fac_usrdata_verwijder IS NULL
AND ud.fac_usrtab_key = 1663); -- Eigen tabel Klantzone
UPDATE bez_bezoekers
SET bez_afspraak_naam = 'Bezoeker', bez_afspraak_bedrijf = NULL
WHERE bez_afspraak_key = rc.bez_afspraak_key
AND bez_afspraak_key NOT IN
(SELECT a2.bez_afspraak_key
FROM fac_usrdata ud,
bez_afspraak a2,
res_rsv_ruimte r
WHERE r.res_activiteit_key =
fac.safe_to_number (ud.fac_usrdata_code)
AND a2.res_rsv_ruimte_key =
r.res_rsv_ruimte_key
AND ud.fac_usrdata_verwijder IS NULL
AND ud.fac_usrtab_key = 1663); -- Eigen tabel Klantzone
-- Verwijder opmerking van afspraken >31 dagen oud (bij bezoeker of reservering)
UPDATE bez_afspraak
SET bez_afspraak_opmerking = NULL
WHERE bez_afspraak_key = rc.bez_afspraak_key;
-- Met UWVA#59571 moeten de reserveringsopmerkingen ook leeg worden gemaakt voor de kz-reserveringen.
UPDATE res_rsv_ruimte
SET res_rsv_ruimte_opmerking = NULL
WHERE res_status_bo_key <> 6 --Reserveringen met status Verwerkt mogen niet aangepast worden. Het betreft maar 2 reserveringen met die status
AND res_rsv_ruimte_key IN
(SELECT r.res_rsv_ruimte_key
FROM fac_usrdata ud,
bez_afspraak a2,
res_rsv_ruimte r
WHERE r.res_activiteit_key =
fac.safe_to_number (ud.fac_usrdata_code)
AND a2.res_rsv_ruimte_key =
r.res_rsv_ruimte_key
AND a2.bez_afspraak_key = rc.bez_afspraak_key
AND ud.fac_usrdata_verwijder IS NULL
AND ud.fac_usrtab_key = 1663);
COMMIT;
END;
END LOOP;
COMMIT;
END;
/
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile
@@uwva_prs.sql
--@@uwva_fin.sql
--@@uwva_hv.sql
@@uwva_misc.sql