-- Customer specific once-script AAES24766.sql: Change organisation/costcenter structure.
--
-- (c) 2012 SG|facilitor bv 
-- $Revision$ 
-- $Id$
--
-- Support: +31 53 4800700

SET ECHO ON
SPOOL AAES24766.lst
SET DEFINE OFF


-- verplaats de kostenplaats naar het kenmerk (key = 1080)
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.
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);

-- En deze vervolgens koppelen aan de bijbehorende afdeling.
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;

COMMIT;

SPOOL OFF