YASK#63182 -- Implementatie Yask multiclient omgeving (aanpassen kostenplaatsen)
svn path=/Customer/; revision=49671
This commit is contained in:
118
onces/YASK/YASK#63182_1.sql
Normal file
118
onces/YASK/YASK#63182_1.sql
Normal file
@@ -0,0 +1,118 @@
|
||||
--
|
||||
-- $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
|
||||
Reference in New Issue
Block a user