Files
Customer/onces/BLCC/BLCC#75251.sql
Maarten van der Heide f2e3631efb BLCC#75251 Once/Bijwerken ruimtegegevens
svn path=/Customer/; revision=57967
2022-11-10 17:02:55 +00:00

309 lines
12 KiB
SQL

--
-- $Id$
--
-- Customer specific once-script BLCC#75251.sql.
DEFINE thisfile = 'BLCC#75251.sql'
DEFINE dbuser = '^BLCC'
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 ------
-- BLCC#75251: Bijwerken ruimtegegevens op basis van 'ONRGOED2'-import!
-- *** PRE-CONDITIE ***
-- Alleen inlezen (niet verwerken!) van bestand via 'FIP: 2-Aanvullen
-- bouwlagen en ruimten'-import!
-- Verwijder FAC_IMPORT-entry voor vandaag/zojuist door _FACILITOR ingelezen
-- bestand (om verwerken te voorkomen).
-- NB. De FAC_IMPORT_USRDATA-tabel blijft gevuld!
DELETE FROM fac_import
WHERE fac_import_app_key = 3 -- FIP: 2-Aanvullen bouwlagen en ruimten
AND TRUNC (fac_import_datum_gelezen) = TRUNC (SYSDATE)
--AND fac_import_filenaam = '<xxx>.csv'
AND prs_perslid_key = 4 -- _FACILITOR
;
COMMIT;
-- Verwijderen ruimtefunctie (veld bij ruimte én ook achterliggende stamtabel
-- met ruimtefuncties!
/*
SELECT *
FROM alg_ruimte
WHERE alg_srtruimte_key IS NOT NULL;
SELECT *
FROM alg_ruimte r
WHERE EXISTS
(SELECT 1
FROM fac_imp_onrgoed2 i, alg_srtruimte sr
WHERE i.alg_srtruimte_omschrijving IS NOT NULL
AND UPPER (TRIM (i.alg_srtruimte_omschrijving)) = sr.alg_srtruimte_upper
AND fac.safe_to_number (i.alg_kenmerkwaarde3) = r.alg_ruimte_key
AND sr.alg_srtruimte_key = r.alg_srtruimte_key);
*/
INSERT INTO fac_tracking (fac_tracking_datum,
fac_srtnotificatie_key,
fac_tracking_refkey,
fac_tracking_oms)
SELECT SYSDATE,
118, -- 118=ALGRUP
r.alg_ruimte_key,
'Ruimtefunctie: ' || sr.alg_srtruimte_omschrijving || ' --> (gewist)'
FROM alg_ruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key
ORDER BY r.alg_ruimte_key;
COMMIT;
UPDATE alg_ruimte
SET alg_srtruimte_key = NULL
WHERE alg_srtruimte_key IS NOT NULL;
COMMIT;
/*
SELECT *
FROM alg_srtruimte sr
WHERE NOT EXISTS (SELECT 1
FROM alg_ruimte
WHERE alg_srtruimte_key = sr.alg_srtruimte_key);
*/
DELETE FROM alg_srtruimte sr
WHERE NOT EXISTS (SELECT 1
FROM alg_ruimte
WHERE alg_srtruimte_key = sr.alg_srtruimte_key);
COMMIT;
-- Toevoegen nieuwe ruimtefuncties (in stamtabel)!
INSERT INTO alg_srtruimte (alg_srtruimte_omschrijving)
SELECT DISTINCT (SUBSTR (TRIM (i.alg_srtruimte_omschrijving), 1, 50))
FROM fac_imp_onrgoed2 i
WHERE i.alg_srtruimte_omschrijving IS NOT NULL
AND NOT EXISTS
(SELECT 1
FROM alg_srtruimte
WHERE alg_srtruimte_upper = UPPER (TRIM (i.alg_srtruimte_omschrijving)))
ORDER BY SUBSTR (TRIM (i.alg_srtruimte_omschrijving), 1, 50);
COMMIT;
-- Bijwerken ruimtefunctie-veld zoals ingelezen (indien gevuld)!
UPDATE alg_ruimte r
SET r.alg_srtruimte_key =
(SELECT sr.alg_srtruimte_key
FROM fac_imp_onrgoed2 i, alg_srtruimte sr
WHERE i.alg_srtruimte_omschrijving IS NOT NULL
AND UPPER (TRIM (i.alg_srtruimte_omschrijving)) = sr.alg_srtruimte_upper
AND fac.safe_to_number (i.alg_kenmerkwaarde3) = r.alg_ruimte_key)
WHERE EXISTS
(SELECT 1
FROM fac_imp_onrgoed2 i, alg_srtruimte sr
WHERE i.alg_srtruimte_omschrijving IS NOT NULL
AND UPPER (TRIM (i.alg_srtruimte_omschrijving)) = sr.alg_srtruimte_upper
AND fac.safe_to_number (i.alg_kenmerkwaarde3) = r.alg_ruimte_key);
COMMIT;
INSERT INTO fac_tracking (fac_tracking_datum,
fac_srtnotificatie_key,
fac_tracking_refkey,
fac_tracking_oms)
SELECT SYSDATE,
118, -- 118=ALGRUP
r.alg_ruimte_key,
'Ruimtefunctie: (leeg) --> ' || sr.alg_srtruimte_omschrijving
FROM alg_ruimte r, alg_srtruimte sr
WHERE r.alg_srtruimte_key = sr.alg_srtruimte_key
ORDER BY r.alg_ruimte_key;
COMMIT;
-- Bijwerken Verhuur classificatie-veld (key=1100) zoals ingelezen (indien gevuld)!
/*
SELECT *
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1100;
*/
INSERT INTO fac_tracking (fac_tracking_datum,
fac_srtnotificatie_key,
fac_tracking_refkey,
fac_tracking_oms)
SELECT SYSDATE,
118, -- 118=ALGRUP
ok.alg_onrgoed_key,
'Verhuur classificatie: ' || ud.fac_usrdata_omschr || ' --> (gewist)'
FROM alg_onrgoedkenmerk ok, fac_usrdata ud
WHERE ok.alg_onrgoedkenmerk_verwijder IS NULL
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_kenmerk_key = 1100
AND fac.safe_to_number (ok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key
AND EXISTS -- Alleen wissen als nieuwe waarde ingelezen!
(SELECT 1
FROM fac_imp_onrgoed2
WHERE TRIM (alg_kenmerkwaarde1) IN ('A', 'B', 'N')
AND fac.safe_to_number (alg_kenmerkwaarde3) = ok.alg_onrgoed_key)
ORDER BY ok.alg_onrgoed_key;
COMMIT;
DELETE FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoedkenmerk_verwijder IS NULL
AND ok.alg_onrgoed_niveau = 'R'
AND ok.alg_kenmerk_key = 1100
AND EXISTS -- Alleen wissen als nieuwe waarde ingelezen!
(SELECT 1
FROM fac_imp_onrgoed2
WHERE TRIM (alg_kenmerkwaarde1) IN ('A', 'B', 'N')
AND fac.safe_to_number (alg_kenmerkwaarde3) = ok.alg_onrgoed_key);
COMMIT;
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
alg_onrgoed_niveau,
alg_kenmerk_key,
alg_onrgoedkenmerk_waarde)
SELECT fac.safe_to_number (i.alg_kenmerkwaarde3),
'R',
1100,
DECODE (TRIM (alg_kenmerkwaarde1),
'A', '1622',
'B', '1624',
'1623') -- 'N'
FROM fac_imp_onrgoed2 i
WHERE TRIM (i.alg_kenmerkwaarde1) IN ('A', 'B', 'N')
AND EXISTS
(SELECT 1
FROM alg_ruimte
WHERE alg_ruimte_key = fac.safe_to_number (i.alg_kenmerkwaarde3))
AND NOT EXISTS
(SELECT 1
FROM alg_onrgoedkenmerk
WHERE alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1100
AND alg_onrgoed_key = fac.safe_to_number (i.alg_kenmerkwaarde3))
ORDER BY fac.safe_to_number (i.alg_kenmerkwaarde3);
COMMIT;
INSERT INTO fac_tracking (fac_tracking_datum,
fac_srtnotificatie_key,
fac_tracking_refkey,
fac_tracking_oms)
SELECT SYSDATE,
118, -- 118=ALGRUP
fac.safe_to_number (i.alg_kenmerkwaarde3),
'Verhuur classificatie: (leeg) --> '
|| DECODE (TRIM (alg_kenmerkwaarde1),
'A', 'Algemene ruimte, gebouwgebonden',
'B', 'Bombenisruimte',
'Algemene ruimte, verdiepinggebonden')
FROM fac_imp_onrgoed2 i
WHERE TRIM (i.alg_kenmerkwaarde1) IN ('A', 'B', 'N')
AND EXISTS
(SELECT 1
FROM alg_ruimte
WHERE alg_ruimte_key = fac.safe_to_number (i.alg_kenmerkwaarde3))
AND EXISTS
(SELECT 1
FROM alg_onrgoedkenmerk
WHERE alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1100
AND alg_onrgoed_key = fac.safe_to_number (i.alg_kenmerkwaarde3))
ORDER BY fac.safe_to_number (i.alg_kenmerkwaarde3);
COMMIT;
-- Verwijderen VVO Overeenkomst-veld (key=1720) bij ruimte!
/*
SELECT *
FROM alg_onrgoedkenmerk
WHERE alg_kenmerk_key = 1720;
*/
INSERT INTO fac_tracking (fac_tracking_datum,
fac_srtnotificatie_key,
fac_tracking_refkey,
fac_tracking_oms)
SELECT SYSDATE,
118, -- 118=ALGRUP
alg_onrgoed_key,
'VVO Overeenkomst: ' || alg_onrgoedkenmerk_waarde || ' --> (gewist)'
FROM alg_onrgoedkenmerk
WHERE alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1720
AND alg_onrgoedkenmerk_waarde IS NOT NULL
ORDER BY alg_onrgoed_key;
COMMIT;
DELETE FROM alg_onrgoedkenmerk
WHERE alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1720;
COMMIT;
-- Bijwerken VVO Overeenkomst-veld (key=1720) zoals ingelezen (indien gevuld)!
INSERT INTO alg_onrgoedkenmerk (alg_onrgoed_key,
alg_onrgoed_niveau,
alg_kenmerk_key,
alg_onrgoedkenmerk_waarde)
SELECT fac.safe_to_number (i.alg_kenmerkwaarde3),
'R',
1720,
TO_CHAR (ROUND (fac.safe_to_number (i.alg_kenmerkwaarde2), 2))
FROM fac_imp_onrgoed2 i
WHERE TRIM (i.alg_kenmerkwaarde2) IS NOT NULL
AND EXISTS
(SELECT 1
FROM alg_ruimte
WHERE alg_ruimte_key = fac.safe_to_number (i.alg_kenmerkwaarde3))
AND NOT EXISTS
(SELECT 1
FROM alg_onrgoedkenmerk
WHERE alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1720
AND alg_onrgoed_key = fac.safe_to_number (i.alg_kenmerkwaarde3))
ORDER BY fac.safe_to_number (i.alg_kenmerkwaarde3);
COMMIT;
INSERT INTO fac_tracking (fac_tracking_datum,
fac_srtnotificatie_key,
fac_tracking_refkey,
fac_tracking_oms)
SELECT SYSDATE,
118, -- 118=ALGRUP
fac.safe_to_number (i.alg_kenmerkwaarde3),
'VVO Overeenkomst: (leeg) --> ' || TRIM (i.alg_kenmerkwaarde2)
FROM fac_imp_onrgoed2 i
WHERE TRIM (i.alg_kenmerkwaarde2) IS NOT NULL
AND EXISTS
(SELECT 1
FROM alg_ruimte
WHERE alg_ruimte_key = fac.safe_to_number (i.alg_kenmerkwaarde3))
AND EXISTS
(SELECT 1
FROM alg_onrgoedkenmerk
WHERE alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1720
AND alg_onrgoed_key = fac.safe_to_number (i.alg_kenmerkwaarde3))
ORDER BY fac.safe_to_number (i.alg_kenmerkwaarde3);
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