

-- verplaats de kostenplaat naar het kenmerk
INSERT INTO prs_kenmerklink (prs_link_key,
                             prs_kenmerklink_niveau,
                             prs_kenmerklink_waarde,
                             prs_kenmerk_key)
   SELECT prs_afdeling_key,
          'A',
          prs_kostenplaats_nr,
          1080
     FROM prs_afdeling a, prs_kostenplaats k
    WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key
      AND k.prs_kostenplaats_key > 40
      AND a.prs_afdeling_verwijder IS NULL
      AND k.prs_kostenplaats_verwijder IS NULL

-- pas de kostenplaatsnummers aan zodat ze gelijk zijn aan de code van de afdeling
UPDATE prs_kostenplaats k
   SET prs_kostenplaats_nr =
          (SELECT MAX (prs_afdeling_naam)
             FROM prs_afdeling a
            WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key
              AND a.prs_afdeling_verwijder IS NULL)
 WHERE k.prs_kostenplaats_verwijder IS NULL
   AND k.prs_kostenplaats_key > 40
   AND EXISTS (SELECT prs_afdeling_key
                 FROM prs_afdeling a
                WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key)


-- sommige afdelingen waren verbonden aan dezelfde kostenplaats.
-- dan moeten we deze link maar verwijderen.
UPDATE prs_afdeling
   SET prs_kostenplaats_key = NULL
 WHERE prs_afdeling_key IN
             (SELECT prs_afdeling_key
                FROM prs_afdeling a, prs_kostenplaats k
               WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key
                 AND k.prs_kostenplaats_key > 40
                 AND a.prs_afdeling_verwijder IS NULL
                 AND k.prs_kostenplaats_verwijder IS NULL
                 AND a.prs_afdeling_naam <> k.prs_kostenplaats_nr);
                 
-- Dan nu nog even de overgebleven afdelingen zonder kostenplaats voorzien
-- van een kostenplaats.
/* Formatted on 11/5/2012 11:18:25 AM (QP5 v5.136.908.31019) */
INSERT INTO prs_kostenplaats (prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module)
   (SELECT prs_afdeling_naam, prs_afdeling_omschrijving, 'PRS'
      FROM prs_afdeling
     WHERE prs_kostenplaats_key IS NULL AND prs_afdeling_key > 21);
     
UPDATE prs_afdeling a SET prs_kostenplaats_key =
   (SELECT prs_kostenplaats_key FROM prs_kostenplaats k
     WHERE prs_afdeling_naam = prs_kostenplaats_nr
       AND a.prs_afdeling_verwijder IS NULL
       AND k.prs_kostenplaats_verwijder IS NULL)
WHERE prs_afdeling_key > 21
  AND prs_kostenplaats_key IS NULL
  
  create table aaes_leidinggevende_afd (prs_kostenplaats_key number(10), prs_perslid_key number(10))

insert into aaes_leidinggevende_afd (prs_kostenplaats_key, prs_perslid_key)
(select a.prs_kostenplaats_key, prs_perslid_key_leid 
 from aaes_v_leidinggevende_afd la,
       prs_afdeling a
   where la.prs_afdeling_key = a.prs_afdeling_key)
   
   and a.prs_kostenplaats_key = k.prs_kostenplaats_key
   
   )

update prs_kostenplaats k set prs_perslid_key =
 (select distinct prs_perslid_key 
 from aaes_leidinggevende_afd la
   where la.prs_kostenplaats_key = k.prs_kostenplaats_key
   )
   
   select * from prs_afdeling where prs_kostenplaats_key in (
   select prs_kostenplaats_key from aaes_leidinggevende_afd
   group by prs_kostenplaats_key having count (prs_kostenplaats_key) > 1)
   
 select * from prs_kostenplaats where prs_kostenplaats_key = 1166  
 
 
 
 SELECT a.prs_afdeling_naam afdeling_naam,
       a.prs_afdeling_omschrijving afdeling_omschrijving,
       paa.prs_afdeling_naam afdeling_parent,
       an.prs_kenmerklink_waarde afdeling_niveau,
       pfal.prs_perslid_naam_full leidinggevende,
       (SELECT COUNT ( * )
          FROM prs_perslid p
         WHERE p.prs_afdeling_key = a.prs_afdeling_key)
          aantal_pers,
       k.prs_kostenplaats_nr kostenplaats_nr,
       prs_kostenplaats_omschrijving kostenplaats_omschrijving,
       pfbh.prs_perslid_naam_full budgethouder
  FROM prs_afdeling a,
       prs_kostenplaats k,
       prs_afdeling paa,
       (SELECT prs_link_key, prs_kenmerklink_waarde
          FROM prs_kenmerklink
         WHERE prs_kenmerk_key = 1000) al,
       (SELECT prs_link_key, prs_kenmerklink_waarde
          FROM prs_kenmerklink
         WHERE prs_kenmerk_key = 1060) an,
       (SELECT prs_link_key, prs_kenmerklink_waarde
          FROM prs_kenmerklink
         WHERE prs_kenmerk_key = 1020) pa,
       prs_v_perslid_fullnames pfal,
       prs_v_perslid_fullnames pfbh
 WHERE a.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
   AND a.prs_afdeling_key = al.prs_link_key(+)
   AND a.prs_afdeling_key = an.prs_link_key(+)
   AND a.prs_afdeling_key = pa.prs_link_key(+)
   AND fac.safe_to_number (pa.prs_kenmerklink_waarde) =
          paa.prs_afdeling_key(+)
   AND fac.safe_to_number (al.prs_kenmerklink_waarde) =
          pfal.prs_perslid_key(+)
   AND k.prs_perslid_key = pfbh.prs_perslid_key(+);