Files
Customer/onces/YASK/YASK#63182_1.sql
2021-02-03 18:16:00 +00:00

119 lines
3.8 KiB
SQL

--
-- $Id$
--
-- Korte beschrijving wat het script doet
-- Kostenplaatsen aanpassen zodat code weer in nummer staan en omschrijving goed staat
-- Verder worden de kostenplaatsen gegroepeerd en worden budgethouders toegekoend.
--
DEFINE thisfile = 'YASK#63182_1.SQL'
DEFINE dbuser = '^YASK'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusterr NEW_VALUE fcltcusterr NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusterr FROM DUAL;
WHENEVER SQLERROR CONTINUE;
PROMPT &fcltcusterr
SET DEFINE OFF
------ payload begin ------
DECLARE
CURSOR c IS
SELECT kp.*,
(SELECT COUNT (*)
FROM prs_kostenplaats kp2
WHERE kp2.prs_kostenplaats_verwijder IS NULL
AND kp2.prs_kostenplaats_nr LIKE
'%(' || kpngrp || ')%') aantal
FROM (SELECT k.*,
SUBSTR (
prs_kostenplaats_nr,
INSTR (prs_kostenplaats_nr, '(') + 1,
INSTR (prs_kostenplaats_nr, ')')
- (INSTR (prs_kostenplaats_nr, '(') + 1)) kpngrp
FROM prs_kostenplaats k
WHERE prs_kostenplaats_nr LIKE '%(%)%'
AND prs_kostenplaats_verwijder IS NULL) kp
ORDER BY kpngrp;
v_index NUMBER;
v_kpngrp VARCHAR2 (20);
v_omschr VARCHAR2 (100);
v_postfix VARCHAR2 (200);
v_kpngrp_key NUMBER;
BEGIN
v_kpngrp := '-1';
FOR rec IN c
LOOP
v_omschr :=
TRIM(SUBSTR (rec.prs_kostenplaats_omschrijving,
1,
INSTR (rec.prs_kostenplaats_omschrijving, '(') - 1));
IF rec.kpngrp <> v_kpngrp
THEN
v_index := 0;
v_kpngrp := rec.kpngrp;
v_postfix := NULL;
INSERT INTO prs_kostenplaatsgrp (prs_kostenplaatsgrp_nr,
prs_kostenplaatsgrp_oms)
VALUES (rec.kpngrp, rec.kpngrp)
RETURNING prs_kostenplaatsgrp_key
INTO v_kpngrp_key;
END IF;
IF rec.aantal > 1
THEN
v_index := v_index + 1;
v_postfix := '-' || v_index;
END IF;
DBMS_OUTPUT.put_line (
rec.kpngrp
|| v_postfix
|| ' | '
|| v_omschr
|| ' * '
|| v_kpngrp_key);
UPDATE prs_kostenplaats SET prs_kostenplaats_nr = rec.kpngrp || v_postfix,
prs_kostenplaats_omschrijving = v_omschr,
prs_kostenplaatsgrp_key = v_kpngrp_key
WHERE prs_kostenplaats_key = rec.prs_kostenplaats_key;
END LOOP;
UPDATE prs_kostenplaats SET prs_perslid_key = 2001 -- Prevo, R.
WHERE prs_kostenplaats_nr LIKE 'L%';
UPDATE prs_kostenplaats SET prs_perslid_key = 2003 -- Reinders, S.
WHERE prs_kostenplaats_nr LIKE 'P702%'
OR prs_kostenplaats_nr LIKE 'P703%'
OR prs_kostenplaats_nr LIKE 'P704%'
OR prs_kostenplaats_nr LIKE 'P72%';
UPDATE prs_kostenplaats SET prs_perslid_key = 2005 -- Sturmans, B.
WHERE prs_kostenplaats_nr LIKE 'P705%'
OR prs_kostenplaats_nr LIKE 'P71%';
END;
/
------ 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