-- Customer specific once-script PNBR#29008.
--
-- (c) 2012 SG|facilitor bv 
-- $Revision$ 
-- $Modtime: 4-04-12 12:56 $
--
-- Support: +31 53 4800700
SET ECHO ON
SPOOL PNBR#29008.lst
SET DEFINE OFF


INSERT INTO prs_kenmerklink (prs_link_key,
                             prs_kenmerklink_niveau,
                             prs_kenmerk_key,
                             prs_kenmerklink_waarde)
   SELECT prs_afdeling_key,
          'A',
          1080,
          prs_afdeling_parentkey
     FROM prs_afdeling
    WHERE prs_afdeling_verwijder IS NULL;



-- eigen afdelingstructuur omdat Provincie Noord Brabant meer dan 5 niveaus kent.
CREATE OR REPLACE VIEW pnbr_v_afdeling
(
   prs_bedrijf_key,
   prs_afdeling_key,
   prs_afdeling_parentkey
)
AS
   SELECT a.prs_bedrijf_key, a.prs_afdeling_key, kl.prs_afdeling_parentkey
     FROM prs_afdeling a,
          (SELECT prs_link_key prs_afdeling_key,
                  prs_kenmerklink_waarde prs_afdeling_parentkey
             FROM prs_kenmerklink
            WHERE prs_kenmerk_key = 1080) kl
    WHERE a.prs_afdeling_key = kl.prs_afdeling_key(+);

CREATE OR REPLACE VIEW pnbr_v_afdeling_boom
(
   niveau,
   prs_bedrijf_key,
   prs_afdeling_key,
   prs_afdeling_key1,
   prs_afdeling_key2,
   prs_afdeling_key3,
   prs_afdeling_key4,
   prs_afdeling_key5,
   prs_afdeling_key6,
   prs_afdeling_key7,
   prs_afdeling_key8,
   prs_afdeling_key9,
   prs_afdeling_key10
)
AS
   SELECT '1' niveau,
          a1.prs_bedrijf_key,
          a1.prs_afdeling_key,
          a1.prs_afdeling_key,
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL)
     FROM pnbr_v_afdeling a1
    WHERE a1.prs_afdeling_parentkey IS NULL
   UNION
   SELECT '2' niveau,
          a1.prs_bedrijf_key,
          a2.prs_afdeling_key,
          a1.prs_afdeling_key,
          a2.prs_afdeling_key,
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL)
     FROM pnbr_v_afdeling a1, pnbr_v_afdeling a2
    WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
      AND a1.prs_afdeling_parentkey IS NULL
   UNION
   SELECT '3' niveau,
          a1.prs_bedrijf_key,
          a3.prs_afdeling_key,
          a1.prs_afdeling_key,
          a2.prs_afdeling_key,
          a3.prs_afdeling_key,
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL)
     FROM pnbr_v_afdeling a1, pnbr_v_afdeling a2, pnbr_v_afdeling a3
    WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
      AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
      AND a1.prs_afdeling_parentkey IS NULL
   UNION
   SELECT '4' niveau,
          a1.prs_bedrijf_key,
          a4.prs_afdeling_key,
          a1.prs_afdeling_key,
          a2.prs_afdeling_key,
          a3.prs_afdeling_key,
          a4.prs_afdeling_key,
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL)
     FROM pnbr_v_afdeling a1,
          pnbr_v_afdeling a2,
          pnbr_v_afdeling a3,
          pnbr_v_afdeling a4
    WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
      AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
      AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
      AND a1.prs_afdeling_parentkey IS NULL
   UNION
   SELECT '5' niveau,
          a1.prs_bedrijf_key,
          a5.prs_afdeling_key,
          a1.prs_afdeling_key,
          a2.prs_afdeling_key,
          a3.prs_afdeling_key,
          a4.prs_afdeling_key,
          a5.prs_afdeling_key,
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL)
     FROM pnbr_v_afdeling a1,
          pnbr_v_afdeling a2,
          pnbr_v_afdeling a3,
          pnbr_v_afdeling a4,
          pnbr_v_afdeling a5
    WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
      AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
      AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
      AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
      AND a1.prs_afdeling_parentkey IS NULL
   UNION
   SELECT '6' niveau,
          a1.prs_bedrijf_key,
          a6.prs_afdeling_key,
          a1.prs_afdeling_key,
          a2.prs_afdeling_key,
          a3.prs_afdeling_key,
          a4.prs_afdeling_key,
          a5.prs_afdeling_key,
          a6.prs_afdeling_key,
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL)
     FROM pnbr_v_afdeling a1,
          pnbr_v_afdeling a2,
          pnbr_v_afdeling a3,
          pnbr_v_afdeling a4,
          pnbr_v_afdeling a5,
          pnbr_v_afdeling a6
    WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
      AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
      AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
      AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
      AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
      AND a1.prs_afdeling_parentkey IS NULL
   UNION
   SELECT '7' niveau,
          a1.prs_bedrijf_key,
          a7.prs_afdeling_key,
          a1.prs_afdeling_key,
          a2.prs_afdeling_key,
          a3.prs_afdeling_key,
          a4.prs_afdeling_key,
          a5.prs_afdeling_key,
          a6.prs_afdeling_key,
          a7.prs_afdeling_key,
          TO_NUMBER (NULL),
          TO_NUMBER (NULL),
          TO_NUMBER (NULL)
     FROM pnbr_v_afdeling a1,
          pnbr_v_afdeling a2,
          pnbr_v_afdeling a3,
          pnbr_v_afdeling a4,
          pnbr_v_afdeling a5,
          pnbr_v_afdeling a6,
          pnbr_v_afdeling a7
    WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
      AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
      AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
      AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
      AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
      AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
      AND a1.prs_afdeling_parentkey IS NULL
   UNION
   SELECT '8' niveau,
          a1.prs_bedrijf_key,
          a8.prs_afdeling_key,
          a1.prs_afdeling_key,
          a2.prs_afdeling_key,
          a3.prs_afdeling_key,
          a4.prs_afdeling_key,
          a5.prs_afdeling_key,
          a6.prs_afdeling_key,
          a7.prs_afdeling_key,
          a8.prs_afdeling_key,
          TO_NUMBER (NULL),
          TO_NUMBER (NULL)
     FROM pnbr_v_afdeling a1,
          pnbr_v_afdeling a2,
          pnbr_v_afdeling a3,
          pnbr_v_afdeling a4,
          pnbr_v_afdeling a5,
          pnbr_v_afdeling a6,
          pnbr_v_afdeling a7,
          pnbr_v_afdeling a8
    WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
      AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
      AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
      AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
      AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
      AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
      AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
      AND a1.prs_afdeling_parentkey IS NULL
   UNION
   SELECT '9' niveau,
          a1.prs_bedrijf_key,
          a9.prs_afdeling_key,
          a1.prs_afdeling_key,
          a2.prs_afdeling_key,
          a3.prs_afdeling_key,
          a4.prs_afdeling_key,
          a5.prs_afdeling_key,
          a6.prs_afdeling_key,
          a7.prs_afdeling_key,
          a8.prs_afdeling_key,
          a9.prs_afdeling_key,
          TO_NUMBER (NULL)
     FROM pnbr_v_afdeling a1,
          pnbr_v_afdeling a2,
          pnbr_v_afdeling a3,
          pnbr_v_afdeling a4,
          pnbr_v_afdeling a5,
          pnbr_v_afdeling a6,
          pnbr_v_afdeling a7,
          pnbr_v_afdeling a8,
          pnbr_v_afdeling a9
    WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
      AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
      AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
      AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
      AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
      AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
      AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
      AND a9.prs_afdeling_parentkey = a8.prs_afdeling_key
      AND a1.prs_afdeling_parentkey IS NULL
   UNION
   SELECT '10' niveau,
          a1.prs_bedrijf_key,
          a10.prs_afdeling_key,
          a1.prs_afdeling_key,
          a2.prs_afdeling_key,
          a3.prs_afdeling_key,
          a4.prs_afdeling_key,
          a5.prs_afdeling_key,
          a6.prs_afdeling_key,
          a7.prs_afdeling_key,
          a8.prs_afdeling_key,
          a9.prs_afdeling_key,
          a10.prs_afdeling_key
     FROM pnbr_v_afdeling a1,
          pnbr_v_afdeling a2,
          pnbr_v_afdeling a3,
          pnbr_v_afdeling a4,
          pnbr_v_afdeling a5,
          pnbr_v_afdeling a6,
          pnbr_v_afdeling a7,
          pnbr_v_afdeling a8,
          pnbr_v_afdeling a9,
          pnbr_v_afdeling a10
    WHERE a2.prs_afdeling_parentkey = a1.prs_afdeling_key
      AND a3.prs_afdeling_parentkey = a2.prs_afdeling_key
      AND a4.prs_afdeling_parentkey = a3.prs_afdeling_key
      AND a5.prs_afdeling_parentkey = a4.prs_afdeling_key
      AND a6.prs_afdeling_parentkey = a5.prs_afdeling_key
      AND a7.prs_afdeling_parentkey = a6.prs_afdeling_key
      AND a8.prs_afdeling_parentkey = a7.prs_afdeling_key
      AND a9.prs_afdeling_parentkey = a8.prs_afdeling_key
      AND a10.prs_afdeling_parentkey = a9.prs_afdeling_key
      AND a1.prs_afdeling_parentkey IS NULL;

INSERT INTO prs_kenmerklink (prs_link_key,
                             prs_kenmerklink_niveau,
                             prs_kenmerk_key,
                             prs_kenmerklink_waarde)
   SELECT prs_afdeling_key,
          'A',
          1081,
          niveau
     FROM pnbr_v_afdeling_boom;


UPDATE prs_afdeling a
   SET prs_afdeling_parentkey = NULL,
       prs_bedrijf_key =
          (SELECT COALESCE (prs_bedrijf_key, 81)
             FROM prs_v_afdeling_boom ab
            WHERE ab.prs_afdeling_key = a.prs_afdeling_key)
 WHERE prs_afdeling_verwijder IS NULL;

DROP PACKAGE PNBR;

BEGIN adm.systrackscriptid('$Id$'); END;
/

SPOOL OFF
