Files
Customer/onces/MDUX/MDUX#38328.sql
Marcel Bourseau 7f6af7b631 MDUX#38328: Middelenbeheer (objectenbeheer)
svn path=/Customer/; revision=33455
2017-04-11 10:00:01 +00:00

95 lines
2.6 KiB
SQL

--
-- $Id$
--
-- <<Korte omschrijving wat het script doet>>
DEFINE thisfile = 'MDUX#38328.SQL'
DEFINE dbuser = '^MDUX'
DEFINE custid = 'MDUX'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
WHENEVER SQLERROR EXIT;
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
WHENEVER SQLERROR CONTINUE;
SPOOL &fcltlogfile
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PROCEDURE mdux_ins_conv_object2afdeling
IS
-- Alle objecten die een Accountcode hebben in het kenmerk accountcode, die gaan ipv op ruimteof persoon op de afdeling (account).
CURSOR c
IS
SELECT d.ins_deel_key, d.ins_deel_upper, kd.ins_kenmerkdeel_waarde, a.prs_afdeling_key
FROM ins_deel d, ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk, prs_afdeling a
WHERE d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_upper = 'ACCOUNTCODE'
AND UPPER(kd.ins_kenmerkdeel_waarde) = a.prs_afdeling_upper
AND ins_deel_verwijder IS NULL
AND a.prs_afdeling_verwijder IS NULL;
--Check: objecten die een accountcode (=afdelingcode) hebben gerkegen die niet bestaat.
--select d.ins_deel_upper, kd.ins_kenmerkdeel_waarde from ins_deel d, ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
--where d.ins_deel_key = kd.ins_deel_key
--and kd.ins_kenmerk_key = k.ins_kenmerk_key
--AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
--AND sk.ins_srtkenmerk_upper = 'ACCOUNTCODE'
--AND NOT EXISTS (select 'x' FROM prs_afdeling a WHERE UPPER(kd.ins_kenmerkdeel_waarde) = a.prs_afdeling_upper);
v_count NUMBER;
BEGIN
-- Van alle objectsoorten de "Hoort bij" niet alleen ruimte en persoon, maar ook afdeling mogelijk maken: ins_srtdeel_binding op 25 zetten.
UPDATE ins_srtdeel
SET ins_srtdeel_binding = 25;
-- Voor elke object met een afdeling-code in kenmerk 'Accountcode'
FOR rec IN c
LOOP
BEGIN
UPDATE ins_deel
SET ins_alg_ruimte_key = rec.prs_afdeling_key, ins_alg_ruimte_type = 'A'
WHERE ins_deel_key = rec.ins_deel_key;
END;
END LOOP;
END mdux_ins_conv_object2afdeling;
/
BEGIN
mdux_ins_conv_object2afdeling();
END;
/
DROP PROCEDURE mdux_ins_conv_object2afdeling;
------ 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