--
-- $Id$
--
-- Anonimiseren contactpersonen die niet gekoppeld zijn aan recente bezoekafspraken.

DEFINE thisfile = 'GDFS#60508.SQL'
DEFINE dbuser   = '^GDFS'

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 ------

-- Gooi alle contactpersonen weg die niet gekopeld zijn aan bezoekafspraken van 3 maanden oud of eerder
UPDATE prs_contactpersoon
   SET prs_contactpersoon_verwijder = SYSDATE
 WHERE prs_contactpersoon_verwijder IS NULL
       AND prs_contactpersoon_key NOT IN
                (SELECT DISTINCT cp.prs_contactpersoon_key
                   FROM bez_bezoekers b,
                        bez_afspraak a,
                        prs_contactpersoon cp
                  WHERE a.bez_afspraak_key = b.bez_afspraak_key
                        AND cp.prs_contactpersoon_key =
                              b.prs_contactpersoon_key
                        AND a.bez_afspraak_eind > TRUNC (SYSDATE) - 92
                        AND cp.prs_contactpersoon_verwijder IS NULL);

-- Anonimiseer alle verwijderde contactpersonen
-- Bij vaker gebruik van het script kan de volgende regel worden toegevoegd
-- AND prs_contactpersoon_naam != 'Geanonimiseerd'
UPDATE prs_contactpersoon
   SET prs_contactpersoon_naam = 'Geanonimiseerd',
       prs_contactpersoon_voornaam = NULL,
       prs_contactpersoon_email = NULL,
       prs_contactpersoon_telefoon_1 = NULL,
       prs_contactpersoon_telefoon_2 = NULL,
       prs_contactpersoon_tussenv = NULL,
       prs_contactpersoon_voorletters = NULL,
       prs_contactpersoon_opmerking = NULL
 WHERE prs_contactpersoon_verwijder IS NOT NULL;


-- Gooi de kenmerkwaarde kenteken weg van verwijderde contactpersonen
DELETE FROM prs_kenmerklink
      WHERE prs_kenmerklink_niveau = 'C' AND prs_kenmerk_key = 1002 -- kenteken
            AND prs_link_key IN
                     (SELECT prs_contactpersoon_key
                        FROM prs_contactpersoon
                       WHERE prs_contactpersoon_verwijder IS NOT NULL);

------ payload end   ------

SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 1); END;
/

COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile