FMHN#73986 Once/Verwijderen JenV-personen+afdelingen (alléén ACCEPTATIE)

svn path=/Customer/; revision=56976
This commit is contained in:
Maarten van der Heide
2022-08-23 14:26:29 +00:00
parent 5e45ddebd1
commit 15185e8c9b

354
onces/FMHN/FMHN#73986.sql Normal file
View File

@@ -0,0 +1,354 @@
--
-- $Id$
--
-- Customer specific once-script FMHN#73986.sql.
DEFINE thisfile = 'FMHN#73986.sql'
DEFINE dbuser = '^FMHN'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
-- FMHN#73986: Schonen alle IDM-personen+afdelingen van JenV in *ACCEPTATIE*,
-- nadat alle lopende verplichtingen eerst zijn overgezet op naam
-- van JenV-dummy persoon met key=157552.
/*
-- prs_v_verplichting_keys => Openstaande verplichtingen zonder details
-- prs_v_verplichting => Openstaande verplichtingen met details
SELECT *
FROM prs_perslid p
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%'
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923);
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || p.prs_perslid_externid || '] '
aanduiding,
p.prs_perslid_key,
COUNT ( * ) verplichtingen
FROM prs_perslid p, prs_v_verplichting_keys v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%'
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key(+)
GROUP BY '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || p.prs_perslid_externid || '] ',
p.prs_perslid_key;
SELECT *
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_externid LIKE '07%'
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = a.prs_afdeling_key
AND prs_bedrijf_key = 923);
-- afspraak, deel, melding, reservering
SELECT DISTINCT v.xmlnode
FROM prs_perslid p, prs_v_verplichting v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%'
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key;
*/
-- Afspraak-verplichtingen naar dummy-persoon!
/*
SELECT COUNT (*) -- a.*
FROM bez_afspraak a
WHERE EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_verplichting v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key
AND v.xmlnode = 'afspraak'
AND v.item_key = a.bez_afspraak_key
AND (v.prs_perslid_key = a.prs_perslid_key
OR v.prs_perslid_key = a.bez_afspraak_host_key
OR v.prs_perslid_key = a.bez_afspraak_contact_key));
*/
UPDATE bez_afspraak a
SET a.prs_perslid_key = DECODE (a.prs_perslid_key, NULL, NULL, 157552),
a.bez_afspraak_host_key = DECODE (a.bez_afspraak_host_key, NULL, NULL, 157552),
a.bez_afspraak_contact_key = DECODE (a.bez_afspraak_contact_key, NULL, NULL, 157552)
WHERE EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_verplichting v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key
AND v.xmlnode = 'afspraak'
AND v.item_key = a.bez_afspraak_key
AND (v.prs_perslid_key = a.prs_perslid_key
OR v.prs_perslid_key = a.bez_afspraak_host_key
OR v.prs_perslid_key = a.bez_afspraak_contact_key));
COMMIT;
-- P-gebonden deel-verplichtingen naar dummy-persoon!
/*
SELECT COUNT ( * ) -- d.ins_deel_omschrijving objectid, d.*
FROM ins_v_aanwezigdeel d
WHERE d.ins_deel_verwijder IS NULL
AND (d.ins_alg_ruimte_type = 'P' OR d.ins_alg_ruimte_type_org = 'P')
AND EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_verplichting v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key
AND v.xmlnode = 'deel'
AND v.item_key = d.ins_deel_key
AND (v.prs_perslid_key = d.ins_alg_ruimte_key
OR v.prs_perslid_key = d.ins_alg_ruimte_key_org));
*/
UPDATE ins_deel d
SET d.ins_alg_ruimte_key = DECODE (d.ins_alg_ruimte_type, 'P', 157552, d.ins_alg_ruimte_key),
d.ins_alg_ruimte_key_org = DECODE (d.ins_alg_ruimte_type_org, 'P', 157552, d.ins_alg_ruimte_key_org) -- Is d.ins_alg_ruimte_type_org ooit 'P'?
WHERE d.ins_deel_verwijder IS NULL
AND (d.ins_alg_ruimte_type = 'P' OR d.ins_alg_ruimte_key_org = 'P')
AND EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_verplichting v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key
AND v.xmlnode = 'deel'
AND v.item_key = d.ins_deel_key
AND (v.prs_perslid_key = d.ins_alg_ruimte_key
OR v.prs_perslid_key = d.ins_alg_ruimte_key_org));
COMMIT;
-- A-gebonden deel-verplichtingen naar dummy-persoon!
/*
SELECT COUNT ( * ) -- d.ins_deel_omschrijving objectid, d.*
FROM ins_v_aanwezigdeel d
WHERE d.ins_deel_verwijder IS NULL
AND (d.ins_alg_ruimte_type = 'A' OR d.ins_alg_ruimte_type_org = 'A')
AND EXISTS
(SELECT 1
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = a.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND (a.prs_afdeling_key = d.ins_alg_ruimte_key
OR a.prs_afdeling_key = d.ins_alg_ruimte_key_org));
*/
UPDATE ins_deel d
SET d.ins_alg_ruimte_key = DECODE (d.ins_alg_ruimte_type, 'A', 1, d.ins_alg_ruimte_key),
d.ins_alg_ruimte_key_org = DECODE (d.ins_alg_ruimte_type_org, 'A', 1, d.ins_alg_ruimte_key_org) -- Is d.ins_alg_ruimte_type_org ooit 'A'?
WHERE d.ins_deel_verwijder IS NULL
AND (d.ins_alg_ruimte_type = 'A' OR d.ins_alg_ruimte_type_org = 'A')
AND EXISTS
(SELECT 1
FROM prs_afdeling a
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = a.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND (a.prs_afdeling_key = d.ins_alg_ruimte_key
OR a.prs_afdeling_key = d.ins_alg_ruimte_key_org));
COMMIT;
-- Melding-verplichtingen naar dummy-persoon!
/*
SELECT COUNT ( * ) -- m.*
FROM mld_melding m
WHERE EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_verplichting v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key
AND v.xmlnode = 'melding'
AND v.item_key = m.mld_melding_key
AND (v.prs_perslid_key = m.prs_perslid_key
--OR v.prs_perslid_key = m.mld_melding_behandelaar_key -- Nooit een JenV-persoon!
--OR v.prs_perslid_key = m.mld_melding_behandelaar2_key -- Nooit een JenV-persoon!
OR v.prs_perslid_key = m.prs_perslid_key_voor));
*/
UPDATE mld_melding m
SET m.prs_perslid_key = 157552,
--m.mld_melding_behandelaar_key = DECODE (m.mld_melding_behandelaar_key, NULL, NULL, 157552),
--m.mld_melding_behandelaar2_key = DECODE (m.mld_melding_behandelaar2_key, NULL, NULL, 157552),
m.prs_perslid_key_voor = 157552
WHERE EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_verplichting v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key
AND v.xmlnode = 'melding'
AND v.item_key = m.mld_melding_key
AND (v.prs_perslid_key = m.prs_perslid_key
--OR v.prs_perslid_key = m.mld_melding_behandelaar_key -- Nooit een JenV-persoon!
--OR v.prs_perslid_key = m.mld_melding_behandelaar2_key -- Nooit een JenV-persoon!
OR v.prs_perslid_key = m.prs_perslid_key_voor));
COMMIT;
-- Reservering-verplichtingen naar dummy-persoon!
/*
SELECT COUNT ( * ) -- TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr) reserveringid, rrr.*
FROM res_rsv_ruimte rrr
WHERE EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_verplichting v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key
AND v.xmlnode = 'reservering'
AND v.item_key = rrr.res_rsv_ruimte_key
AND (v.prs_perslid_key = rrr.res_rsv_ruimte_contact_key
OR v.prs_perslid_key = rrr.res_rsv_ruimte_host_key));
*/
UPDATE res_rsv_ruimte rrr
SET rrr.res_rsv_ruimte_contact_key = 157552, rrr.res_rsv_ruimte_host_key = 157552
WHERE EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_verplichting v
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%' -- Zonder deze regel heul traag!
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_afdeling_key = p.prs_afdeling_key
AND prs_bedrijf_key = 923)
AND p.prs_perslid_key = v.prs_perslid_key
AND v.xmlnode = 'reservering'
AND v.item_key = rrr.res_rsv_ruimte_key
AND (v.prs_perslid_key = rrr.res_rsv_ruimte_contact_key
OR v.prs_perslid_key = rrr.res_rsv_ruimte_host_key));
COMMIT;
-- Verwijderen JenV-personen!
/*
SELECT COUNT ( * )
FROM prs_collega c
WHERE EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_afdeling_boom ab
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%'
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 923
AND prs_perslid_key = c.prs_perslid_key)
OR EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_afdeling_boom ab
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%'
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 923
AND prs_perslid_key = c.prs_perslid_key_alt);
*/
DELETE FROM prs_collega c
WHERE EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_afdeling_boom ab
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%'
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 923
AND prs_perslid_key = c.prs_perslid_key)
OR EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_afdeling_boom ab
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%'
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 923
AND prs_perslid_key = c.prs_perslid_key_alt);
UPDATE prs_perslid p
SET p.prs_perslid_verwijder = SYSDATE
WHERE p.prs_perslid_verwijder IS NULL
AND p.prs_perslid_externid LIKE '07%'
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_bedrijf_key = 923
AND prs_afdeling_key = p.prs_afdeling_key);
COMMIT;
-- Verwijderen JenV-afdelingen!
UPDATE prs_afdeling a
SET a.prs_afdeling_verwijder = SYSDATE
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_externid LIKE '07%'
AND EXISTS
(SELECT 1
FROM prs_v_afdeling_boom
WHERE prs_bedrijf_key = 923
AND prs_afdeling_key = a.prs_afdeling_key);
COMMIT;
------ 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