diff --git a/DLLG/DLLG.sql b/DLLG/DLLG.sql index 298e73e41..7f937c95e 100644 --- a/DLLG/DLLG.sql +++ b/DLLG/DLLG.sql @@ -449,7 +449,7 @@ AS THEN fac.writelog ('DLLG: update_bezoeker', 'I', 'v_code: ' || v_code || ' p_bezkey: ' || p_bezkey, ''); - v_code := REMAINDER (fac_s_user01.NEXTVAL, 40000) + 10000; + v_code := REMAINDER (fac_s_user01.NEXTVAL, 50000); FLX.setflex ('BEZ', v_card_number_key, @@ -2065,17 +2065,63 @@ AS CREATE OR REPLACE PROCEDURE dllg_daily AS - v_volgnr NUMBER; + + CURSOR c IS + SELECT bez_bezoekers_key + FROM BEZ_bezoekers b, bez_afspraak a + WHERE a.bez_afspraak_key = b.bez_afspraak_key + AND bez_afspraak_eind < SYSDATE - 1 + AND EXISTS + (SELECT 1 + FROM bez_kenmerkwaarde kw + WHERE kw.bez_bezoekers_key = b.bez_bezoekers_key + AND kw.bez_kenmerk_key = 1043) -- cardnumber + ORDER BY bez_bezoekers_key; + + v_card_number_key NUMBER; + v_facility_code_key NUMBER; + v_hex_code_key NUMBER; + v_dec_code_key NUMBER; + v_volgnr NUMBER; BEGIN + -- Pas informatie gaan we verwijderd als de einddatum van het bezoek gepasseerd is. Daarmee voorkomen we dubbele cardnumbers. + SELECT bez_kenmerk_key + INTO v_card_number_key + FROM bez_kenmerk + WHERE bez_kenmerk_upper = 'CARD NUMBER'; + + SELECT bez_kenmerk_key + INTO v_facility_code_key + FROM bez_kenmerk + WHERE bez_kenmerk_upper = 'FACILITY CODE'; + + SELECT bez_kenmerk_key + INTO v_hex_code_key + FROM bez_kenmerk + WHERE bez_kenmerk_upper = 'HEX CODE'; + + SELECT bez_kenmerk_key + INTO v_dec_code_key + FROM bez_kenmerk + WHERE bez_kenmerk_upper = 'DEC CODE'; + + FOR rec in c + LOOP + DELETE bez_kenmerkwaarde WHERE bez_kenmerk_key = v_card_number_key AND bez_bezoekers_key = rec.bez_bezoekers_key; + DELETE bez_kenmerkwaarde WHERE bez_kenmerk_key = v_facility_code_key AND bez_bezoekers_key = rec.bez_bezoekers_key; + DELETE bez_kenmerkwaarde WHERE bez_kenmerk_key = v_hex_code_key AND bez_bezoekers_key = rec.bez_bezoekers_key; + DELETE bez_kenmerkwaarde WHERE bez_kenmerk_key = v_dec_code_key AND bez_bezoekers_key = rec.bez_bezoekers_key; + END LOOP; + -- Anonymizeren van bezoekers (na 6 maanden) en personen (na 12 maanden) SELECT COALESCE(MAX(fac_rapport_volgnr),0) INTO v_volgnr FROM fac_rapport WHERE fac_rapport_node = 'Anonymize'; - v_volgnr := v_volgnr + 1; IF TO_CHAR (SYSDATE, 'DD') = '01' THEN + v_volgnr := v_volgnr + 1; BEGIN DLLG.anonymizebez (add_months(trunc(SYSDATE), -7), add_months(trunc(SYSDATE), -6)); INSERT INTO fac_rapport (fac_rapport_node, fac_rapport_volgnr, fac_rapport_regel)