Files
Customer/onces/MDUX/MDUX#62845.sql
Sander Schepers 08f63cffeb MDUX#62845 Once script om de kostenplaatsen om te nummeren
svn path=/Customer/; revision=47165
2020-06-18 04:01:35 +00:00

152 lines
4.5 KiB
SQL

--
-- $Id$
--
-- Hiermee worden de kostenplaatsen omgenummerd en hernoemd obv een was-wordt lijst
--
DEFINE thisfile = 'MDUX#62845.SQL'
DEFINE dbuser = '^MDUX'
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
v_kostenplaats_key NUMBER;
v_afdeling_key NUMBER;
-- Onderstaande cursors bepalen welke kostenplaats_nrs en afdelings_nrs er moeten worden omgezet. Deze zijn tijdelijk ingelezen via fac_imp_organisatie
CURSOR c_kpl
IS
SELECT i.prs_afdeling_naam_parent AS nr_oud,
i.prs_bedrijf_naam AS oms_oud,
i.prs_afdeling_naam AS nr_nieuw,
i.prs_afdeling_omschrijving AS oms_nieuw,
k.prs_kostenplaats_key,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving
FROM fac_imp_organisatie i, prs_kostenplaats k
WHERE k.prs_kostenplaats_nr = i.prs_afdeling_naam_parent;
CURSOR c_afd
IS
SELECT SUBSTR (i.prs_afdeling_naam_parent, 0, 5)
|| SUBSTR (i.prs_afdeling_naam_parent, 7, 3)
AS nr_oud,
i.prs_bedrijf_naam AS oms_oud,
SUBSTR (i.prs_afdeling_naam, 0, 5)
|| SUBSTR (i.prs_afdeling_naam, 7, 6)
AS nr_nieuw,
i.prs_afdeling_omschrijving AS oms_nieuw,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving
FROM fac_imp_organisatie i, prs_afdeling a
WHERE a.prs_afdeling_naam =
SUBSTR (i.prs_afdeling_naam_parent, 0, 5)
|| SUBSTR (i.prs_afdeling_naam_parent, 7, 3);
BEGIN
--De kostenplaatsen omzetten
FOR rec IN c_kpl
LOOP
BEGIN
UPDATE prs_kostenplaats
SET prs_kostenplaats_nr = rec.nr_nieuw,
prs_kostenplaats_omschrijving = rec.oms_nieuw
WHERE prs_kostenplaats_nr = rec.nr_oud
AND prs_kostenplaats_key = rec.prs_kostenplaats_key
RETURNING prs_kostenplaats_key
INTO v_kostenplaats_key;
fac.trackaction (
'PRSKPU',
v_kostenplaats_key,
4,
SYSDATE,
'prs_kostenplaats_nr: '
|| rec.nr_oud
|| ' --> '
|| rec.nr_nieuw
|| CHR (13)
|| CHR (10)
|| 'prs_kostenplaats_omschrijving: '
|| rec.prs_kostenplaats_omschrijving
|| ' ('
|| rec.oms_oud
|| ') --> '
|| rec.oms_nieuw);
EXCEPTION
WHEN OTHERS
THEN
fac.writelog ('CONVERSIE_KOSTENPLAATSEN',
'E',
'Overwachte fout conversie: ' || rec.nr_oud,
'');
END;
END LOOP;
--De afdelingen omzetten
FOR rec IN c_afd
LOOP
BEGIN
UPDATE prs_afdeling
SET prs_afdeling_naam = rec.nr_nieuw,
prs_afdeling_omschrijving = rec.oms_nieuw
WHERE prs_afdeling_naam = rec.nr_oud
AND prs_afdeling_key = rec.prs_afdeling_key
RETURNING prs_afdeling_key
INTO v_afdeling_key;
fac.trackaction (
'PRSKPU',
v_afdeling_key,
4,
SYSDATE,
'prs_afdeling_naam: '
|| rec.nr_oud
|| ' --> '
|| rec.nr_nieuw
|| CHR (13)
|| CHR (10)
|| 'prs_afdeling_omschrijving: '
|| rec.prs_afdeling_omschrijving
|| ' ('
|| rec.oms_oud
|| ') --> '
|| rec.oms_nieuw);
EXCEPTION
WHEN OTHERS
THEN
fac.writelog ('CONVERSIE_KOSTENPLAATSEN',
'E',
'Overwachte fout conversie: ' || rec.nr_oud,
'');
END;
END LOOP;
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