95 lines
2.6 KiB
SQL
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
|