Files
Customer/onces/LOGC/LOGC#56439.sql
Peter Feij d21164f916 Je kunt ook té vooruitstrevend zijn, we zitten nog niet op DB36.
svn path=/Customer/; revision=40837
2019-02-07 10:42:22 +00:00

156 lines
5.7 KiB
SQL

--
-- $Id$
--
-- Omzetten van huidige inrichting met vakgroepen per team naar vakgroepen per product en secundaire behandelgroepen
-- Er is handmatig al e.e.a. aangemaakt zodat we hier van bekende keys uit kunnen gaan:
--
-- Nieuwe disciplines Facilitor (161), Mareon (181) en Plato (182)
-- Corresponderende meldingen:
-- Gebrek|Verstoring (201, 241, 245)
-- Ondersteuning (202, 242, 246)
-- Vraag (203, 243, 247)
-- Wens (221, 244, 248)
DEFINE thisfile = 'LOGC#56439.SQL'
DEFINE dbuser = '^LOGC'
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 ------
-- Eerst doen we alles onder FACILITOR, achteraf splitsen we nog naar Mareon en Plato
-- Het omzetten van Ticket/Consultants/Ticket[@Ondersteuning] naar Tickets/FACILITOR/Ondersteuning enz.
-- De secundaire behandelaar wordt gevuld met de primaire behandelaar
-- kenmerk 21 is het type: Gebrek, Wens, Ondersteuning en Vraag en bepaalt de nieuwe stdmelding
-- Waar het type bekend is, kun je 1-op-1 omzetten
UPDATE mld_melding m
SET
m.mld_ins_discipline_key =
(SELECT sm.mld_ins_discipline_key
FROM mld_stdmelding sm
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key),
mld_melding_behandelaar2_key = mld_melding_behandelaar_key,
m.mld_stdmelding_key =
(SELECT DECODE (kmm.mld_kenmerkmelding_waarde,
1, 201,
2, 202,
3, 203,
4, 221)
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_melding_key = m.mld_melding_key
AND kmm.mld_kenmerk_key = 21)
WHERE m.mld_melding_key IN
(SELECT mld_melding_key
FROM mld_kenmerkmelding
WHERE mld_kenmerk_key = 21
AND mld_kenmerkmelding_verwijder IS NULL);
-- Waar het type NIET bekend is, vertalen we de tickets obv de huidige primaire behandelgroep
-- wat bepaald wordt via de stdmelding
UPDATE mld_melding m
SET
m.mld_ins_discipline_key =
(SELECT sm.mld_ins_discipline_key
FROM mld_stdmelding sm
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key),
mld_melding_behandelaar2_key = mld_melding_behandelaar_key,
m.mld_stdmelding_key =
DECODE (m.mld_stdmelding_key,
22, 221,
23, 202,
24, 221,
101, 203,
81, 203,
25, 203,
3, 203, m.mld_stdmelding_key) -- rest is geen tickets
WHERE NOT EXISTS
(SELECT ''
FROM mld_kenmerkmelding km
WHERE mld_kenmerk_key = 21
AND mld_kenmerkmelding_verwijder IS NULL
AND km.mld_melding_key = m.mld_melding_key);
-- De oude vakgroepen worden secundaire behandelgroepen, net als de nieuwe Testen en Release
UPDATE mld_disc_params SET mld_disc_params_srtgroep = 2 WHERE mld_ins_discipline_key IN (22,42,41,81,43,21,201,202);
-- Meldingen met Test-balletje krijgen secundaire behandelgroep Testen
UPDATE mld_melding SET mld_ins_discipline_key = 201 WHERE mld_melding_flag = 4;
-- Meldingen met 2Saas-balletje krijgen secundaire behandelgroep Release
UPDATE mld_melding SET mld_ins_discipline_key = 202 WHERE mld_melding_flag = 5;
--Nu gaan we MARX splitsen naar de Mareon-vakgroep:
-- Kenmerk 25 is de fixversie/release
UPDATE mld_melding
SET mld_stdmelding_key =
DECODE (mld_stdmelding_key,
201, 241,
202, 242,
203, 243,
221, 244,
mld_stdmelding_key)
WHERE prs_kostenplaats_key = (SELECT prs_kostenplaats_key
FROM prs_kostenplaats
WHERE prs_kostenplaats_upper = 'MARX');
UPDATE mld_melding
SET mld_stdmelding_key =
DECODE (mld_stdmelding_key,
201, 241,
202, 242,
203, 243,
221, 244,
mld_stdmelding_key)
WHERE mld_melding_key IN
(SELECT mld_melding_key
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerkmelding_waarde LIKE 'MARX%'
AND kmm.mld_kenmerk_key = 25);
--Nu gaan we PLAT splitsen naar de Plato-vakgroep:
UPDATE mld_melding
SET mld_stdmelding_key =
DECODE (mld_stdmelding_key,
201, 245,
202, 246,
203, 247,
221, 248,
mld_stdmelding_key)
WHERE prs_kostenplaats_key = (SELECT prs_kostenplaats_key
FROM prs_kostenplaats
WHERE prs_kostenplaats_upper = 'PLAT');
UPDATE mld_melding
SET mld_stdmelding_key =
DECODE (mld_stdmelding_key,
201, 245,
202, 246,
203, 247,
221, 248,
mld_stdmelding_key)
WHERE mld_melding_key IN
(SELECT mld_melding_key
FROM mld_kenmerkmelding kmm
WHERE kmm.mld_kenmerkmelding_waarde LIKE 'PLAT%'
AND kmm.mld_kenmerk_key = 25);
-- Nu moet er (handmatig) geautoriseerd gaan worden
------ 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