Files
Customer/onces/YASK/YASK#66676.sql
Maarten van der Heide 400af0edaa YASK#66676 Historisch corrigeren Kostenplaats-kenmerkveld voor Power Packer
svn path=/Customer/; revision=51410
2021-05-11 19:25:52 +00:00

204 lines
8.7 KiB
SQL

--
-- $Id$
--
-- Customer specific once-script YASK#66676.SQL.
DEFINE thisfile = 'YASK#66676.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 ------
-- YASK#66676: Historisch corrigeren Kostenplaats-kenmerkveld op melding.
/*
SELECT m.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, mld_melding m
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61 -- Klant Kostenplaats
AND (km.mld_kenmerkmelding_waarde LIKE 'B1%'
OR km.mld_kenmerkmelding_waarde LIKE 'B2%'
OR km.mld_kenmerkmelding_waarde LIKE 'B3%')
AND km.mld_melding_key = m.mld_melding_key
MINUS
SELECT m.mld_melding_key, km.mld_kenmerkmelding_waarde
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, mld_melding m
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61 -- Klant Kostenplaats
AND (km.mld_kenmerkmelding_waarde LIKE 'B1%'
OR km.mld_kenmerkmelding_waarde LIKE 'B2%'
OR km.mld_kenmerkmelding_waarde LIKE 'B3%')
AND km.mld_melding_key = m.mld_melding_key
AND (m.mld_alg_locatie_key = 81 -- Power Packer
OR m.prs_kostenplaats_key = 41 -- Power Packer
OR EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 1241
AND p.prs_perslid_key = m.prs_perslid_key));
*/
DELETE FROM mld_kenmerkmelding km
WHERE km.mld_kenmerkmelding_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM mld_kenmerk k
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61
AND k.mld_kenmerk_key = km.mld_kenmerk_key)
AND km.mld_kenmerkmelding_waarde LIKE 'B1%';
COMMIT;
UPDATE mld_kenmerkmelding km
SET km.mld_kenmerkmelding_waarde = 'B2'
WHERE km.mld_kenmerkmelding_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM mld_kenmerk k
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61
AND k.mld_kenmerk_key = km.mld_kenmerk_key)
AND km.mld_kenmerkmelding_waarde LIKE 'B2%';
COMMIT;
UPDATE mld_kenmerkmelding km
SET km.mld_kenmerkmelding_waarde = 'B3'
WHERE km.mld_kenmerkmelding_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM mld_kenmerk k
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61
AND k.mld_kenmerk_key = km.mld_kenmerk_key)
AND km.mld_kenmerkmelding_waarde LIKE 'B3%';
COMMIT;
-- YASK#66676: Historisch corrigeren Kostenplaats-kenmerkveld op opdracht.
/*
SELECT o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr, ko.mld_kenmerkopdr_waarde
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k, mld_opdr o
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61 -- Klant Kostenplaats
AND (ko.mld_kenmerkopdr_waarde LIKE 'B1%'
OR ko.mld_kenmerkopdr_waarde LIKE 'B2%'
OR ko.mld_kenmerkopdr_waarde LIKE 'B3%')
AND ko.mld_opdr_key = o.mld_opdr_key
MINUS
SELECT o.mld_melding_key, o.mld_opdr_bedrijfopdr_volgnr, ko.mld_kenmerkopdr_waarde
FROM mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k, mld_opdr o, mld_melding m
WHERE ko.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61 -- Klant Kostenplaats
AND (ko.mld_kenmerkopdr_waarde LIKE 'B1%'
OR ko.mld_kenmerkopdr_waarde LIKE 'B2%'
OR ko.mld_kenmerkopdr_waarde LIKE 'B3%')
AND ko.mld_opdr_key = o.mld_opdr_key
AND o.mld_melding_key = m.mld_melding_key
AND (m.mld_alg_locatie_key = 81 -- Power Packer
OR o.prs_kostenplaats_key = 41 -- Power Packer
OR EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 1241
AND p.prs_perslid_key = m.prs_perslid_key));
*/
DELETE FROM mld_kenmerkopdr ko
WHERE ko.mld_kenmerkopdr_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM mld_kenmerk k
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61
AND k.mld_kenmerk_key = ko.mld_kenmerk_key)
AND ko.mld_kenmerkopdr_waarde LIKE 'B1%'
AND EXISTS
(SELECT 1
FROM mld_opdr o, mld_melding m
WHERE o.mld_melding_key = m.mld_melding_key
AND (m.mld_alg_locatie_key = 81 -- Power Packer
OR o.prs_kostenplaats_key = 41 -- Power Packer
OR EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 1241
AND p.prs_perslid_key = m.prs_perslid_key))
AND o.mld_opdr_key = ko.mld_opdr_key);
COMMIT;
UPDATE mld_kenmerkopdr ko
SET ko.mld_kenmerkopdr_waarde = 'B2'
WHERE ko.mld_kenmerkopdr_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM mld_kenmerk k
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61
AND k.mld_kenmerk_key = ko.mld_kenmerk_key)
AND ko.mld_kenmerkopdr_waarde LIKE 'B2%'
AND EXISTS
(SELECT 1
FROM mld_opdr o, mld_melding m
WHERE o.mld_melding_key = m.mld_melding_key
AND (m.mld_alg_locatie_key = 81 -- Power Packer
OR o.prs_kostenplaats_key = 41 -- Power Packer
OR EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 1241
AND p.prs_perslid_key = m.prs_perslid_key))
AND o.mld_opdr_key = ko.mld_opdr_key);
COMMIT;
UPDATE mld_kenmerkopdr ko
SET ko.mld_kenmerkopdr_waarde = 'B3'
WHERE ko.mld_kenmerkopdr_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM mld_kenmerk k
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 61
AND k.mld_kenmerk_key = ko.mld_kenmerk_key)
AND ko.mld_kenmerkopdr_waarde LIKE 'B3%'
AND EXISTS
(SELECT 1
FROM mld_opdr o, mld_melding m
WHERE o.mld_melding_key = m.mld_melding_key
AND (m.mld_alg_locatie_key = 81 -- Power Packer
OR o.prs_kostenplaats_key = 41 -- Power Packer
OR EXISTS
(SELECT 1
FROM prs_perslid p, prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_bedrijf_key = 1241
AND p.prs_perslid_key = m.prs_perslid_key))
AND o.mld_opdr_key = ko.mld_opdr_key);
COMMIT;
------ 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