-- Customer specific once-script DJIN#38242.
--
-- (c) 2017 Facilitor B.V.
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL xDJIN38242.lst
SET DEFINE OFF

-- DJIN#38242: Rechtbreien organisatieboom.
-- 1. Personen onder de 2 VERVALLEN afdelingen op niveau-2 (met keys 21+22) omhangen naar
--    afdeling met dezelfde code elders in de boom op niveau-3!
/* Formatted on 8-2-2017 16:30:30 (QP5 v5.136.908.31019) */
UPDATE prs_perslid p
   SET p.prs_afdeling_key =
          (SELECT a_wordt.prs_afdeling_key
             FROM prs_afdeling a_was,
                  prs_afdeling a_wordt,
                  prs_v_afdeling_boom ab
            WHERE a_was.prs_afdeling_key = p.prs_afdeling_key
                  AND a_was.prs_afdeling_verwijder IS NULL        -- Van actieve afdeling
                  AND a_was.prs_afdeling_upper = a_wordt.prs_afdeling_upper
                  AND a_wordt.prs_afdeling_verwijder IS NULL     -- Naar actieve afdeling
                  AND a_was.prs_afdeling_key <> a_wordt.prs_afdeling_key -- Niet dezelfde
                  AND a_wordt.prs_afdeling_key = ab.prs_afdeling_key
                  AND ab.prs_afdeling_key = ab.prs_afdeling_key3)          -- Op niveau-3
 WHERE p.prs_perslid_verwijder IS NULL
       AND EXISTS
             (SELECT 1
                FROM prs_v_afdeling_boom
               WHERE prs_afdeling_key = p.prs_afdeling_key
                     AND prs_afdeling_key2 IN (21, 22))
       AND EXISTS
             (SELECT 1
                FROM prs_afdeling a_was,
                     prs_afdeling a_wordt,
                     prs_v_afdeling_boom ab
               WHERE a_was.prs_afdeling_key = p.prs_afdeling_key
                     AND a_was.prs_afdeling_verwijder IS NULL
                     AND a_was.prs_afdeling_upper = a_wordt.prs_afdeling_upper
                     AND a_wordt.prs_afdeling_verwijder IS NULL
                     AND a_was.prs_afdeling_key <> a_wordt.prs_afdeling_key
                     AND a_wordt.prs_afdeling_key = ab.prs_afdeling_key
                     AND ab.prs_afdeling_key = ab.prs_afdeling_key3);

-- 2. Alle afdelingen onder 2 VERVALLEN afdelingen op niveau-2 (met keys 21+22) markeren
--    als verwijderd, zover dat niet al het geval is!
/* Formatted on 8-2-2017 16:35:25 (QP5 v5.136.908.31019) */
UPDATE prs_afdeling a
   SET a.prs_afdeling_verwijder = SYSDATE
 WHERE a.prs_afdeling_verwijder IS NULL
       AND EXISTS
             (SELECT 1
                FROM prs_v_afdeling_boom
               WHERE prs_afdeling_key = a.prs_afdeling_key
                     AND prs_afdeling_key2 IN (21, 22))
       AND NOT EXISTS
             (SELECT 1
                FROM prs_perslid
               WHERE prs_afdeling_key = a.prs_afdeling_key
                     AND prs_perslid_verwijder IS NULL);

COMMIT;
BEGIN adm.systrackscriptId('$Id$'); END;
/
SPOOL OFF
