BLCC#91276 Indexatie huurcontracten voor 2026

svn path=/Customer/; revision=70833
This commit is contained in:
Maarten van der Heide
2025-11-05 16:26:13 +00:00
parent c300282d39
commit 31470bf8b9

160
onces/BLCC/BLCC#91276.sql Normal file
View File

@@ -0,0 +1,160 @@
--
-- $Id$
--
-- Customer specific once-script BLCC#91276.SQL.
DEFINE thisfile = 'BLCC#91276.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#91276
-- Voor alle in januari 2026 lopende (en definieve) contracten onder de
-- contractsoorten 2122, 2123, 2181, 2185, 2182, 2184 en 2382 (resp. LA/
-- LA CRF/SLA CRF-CV/SLA MC/SLA CV-CRF/SLA CGZ vast/SLA Generiek CRF) de
-- betreffende velden x 1.037 (met 3,7% indexeren).
SET SERVEROUTPUT ON size 1000000;
DECLARE
CURSOR c
IS
SELECT DISTINCT kc.cnt_contract_key
FROM cnt_kenmerkcontract kc
WHERE kc.cnt_kenmerkcontract_verwijder IS NULL
AND EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE (cnt_srtkenmerk_key IN (385, 386, 387, 388, 389) -- Contracttarief H/K/L/O/T [LA+LA CRF] * 3,7% (behalve contract 1933/Arlanxeo)
OR cnt_kenmerk_key IN (663, 664, 671) -- Rent Infra/Rent Utilities/Rent Expedition space [SLA CRF-CV] * 3,7%
OR cnt_kenmerk_key = 637 -- Managed Connectivity [SLA MC] * 3,7%
OR cnt_kenmerk_key IN (512, 524) -- Advance Payment Collective Services/Advance Payment Utilities [SLA CV-CRF] * 3,7%
OR cnt_kenmerk_key = 638 -- Monthly Fee CGZ [SLA CGZ vast] * 3,7%
OR cnt_kenmerk_key = 824 -- Maandbedrag [SLA Generiek CRF] * 3,7%
)
AND cnt_kenmerk_key = kc.cnt_kenmerk_key)
AND EXISTS
(SELECT 1
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key IN (2122, 2123, 2181, 2185, 2182, 2184, 2382) -- LA/LA CRF/SLA CRF-CV/SLA MC/SLA CV-CRF/SLA CGZ vast/SLA Generiek CRF
AND TRUNC (cnt_contract_looptijd_van) < fac.safe_to_date ('31012026', 'ddmmyyyy') -- Van-datum < einde te factureren maand
AND cnt_contract_looptijd_tot > fac.safe_to_date ('01012026', 'ddmmyyyy') -- Tot-datum > begin te factureren maand
AND cnt_contract_status IN (0, 2) -- Definitief
AND cnt_contract_nummer_intern != 1933 -- Behalve contract 1933/Arlanxeo!
AND cnt_contract_key = kc.cnt_contract_key)
ORDER BY kc.cnt_contract_key;
v_count NUMBER := 0;
BEGIN
FOR rec IN c
LOOP
BEGIN
UPDATE cnt_kenmerkcontract kc
SET kc.cnt_kenmerkcontract_waarde = ROUND (1.037 * kc.cnt_kenmerkcontract_waarde, 2)
WHERE EXISTS
(SELECT 1
FROM cnt_kenmerk
WHERE (cnt_srtkenmerk_key IN (385, 386, 387, 388, 389) -- Contracttarief H/K/L/O/T [LA+LA CRF]
OR cnt_kenmerk_key IN (663, 664, 671) -- Rent Infra/Rent Utilities/Rent Expedition space [SLA CRF-CV]
OR cnt_kenmerk_key = 637 -- Managed Connectivity [SLA MC]
OR cnt_kenmerk_key IN (512, 524) -- Advance Payment Collective Services/Advance Payment Utilities [SLA CV-CRF]
OR cnt_kenmerk_key = 638 -- Monthly Fee CGZ [SLA CGZ vast]
OR cnt_kenmerk_key = 824) -- Maandbedrag [SLA Generiek CRF]
AND cnt_kenmerk_key = kc.cnt_kenmerk_key)
AND kc.cnt_contract_key = rec.cnt_contract_key;
fac.trackaction ('CNTUPD', rec.cnt_contract_key, NULL, NULL, 'Contracttarieven ge<67>ndexeerd (3,7%)');
v_count := v_count + 1;
END;
END LOOP;
DBMS_OUTPUT.PUT_LINE ('S: ' || TO_CHAR (v_count) || ' contracten gewijzigd');
END;
/
-- Voor alle in januari 2026 lopende (en definieve) contracten onder de
-- contractsoorten 3161=Research Abonnement het Termijnbedrag x 1.029 (met
-- 2,9% indexeren).
DECLARE
CURSOR c
IS
SELECT cnt_contract_key, cnt_contract_termijnkosten termijn_cur, ROUND (1.029 * cnt_contract_termijnkosten, 2) termijn_new
FROM cnt_v_aanwezigcontract
WHERE ins_discipline_key = 3161 -- Termijn- en Contractbedrag [Research Abonnement] * 2,9%
AND TRUNC (cnt_contract_looptijd_van) < fac.safe_to_date ('31012026', 'ddmmyyyy') -- Van-datum < einde te factureren maand
AND cnt_contract_looptijd_tot > fac.safe_to_date ('01012026', 'ddmmyyyy') -- Tot-datum > begin te factureren maand
AND cnt_contract_status IN (0, 2) -- Definitief
AND cnt_contract_termijnkosten IS NOT NULL
ORDER BY cnt_contract_key;
v_count NUMBER := 0;
BEGIN
FOR rec IN c
LOOP
BEGIN
UPDATE cnt_contract c
SET cnt_contract_termijnfkosten = rec.termijn_new,
cnt_contract_kosten = TO_NUMBER (12 * rec.termijn_new)
WHERE cnt_contract_key = rec.cnt_contract_key;
fac.trackaction ('CNTUPD', rec.cnt_contract_key, NULL, NULL, 'Termijnbedrag: ' || COALESCE (rec.termijn_cur, '(leeg)') || ' --> ' || rec.termijn_new);
v_count := v_count + 1;
END;
END LOOP;
DBMS_OUTPUT.PUT_LINE ('S: ' || TO_CHAR (v_count) || ' contracten gewijzigd');
END;
/
-- Standaardtarief Rent L/H/K/O/T x 1.037 (met 3,7% indexeren).
DECLARE
CURSOR c
IS
SELECT DISTINCT ok.alg_onrgoed_key
FROM alg_onrgoedkenmerk ok
WHERE ok.alg_onrgoedkenmerk_verwijder IS NULL
AND ok.alg_onrgoed_niveau = 'G'
AND ok.alg_kenmerk_key IN (1180, 1181, 1182, 1183, 1184) -- Standaardtarief Rent L/H/K/O/T
AND EXISTS (SELECT 1 FROM alg_v_aanweziggebouw WHERE alg_gebouw_key = ok.alg_onrgoed_key)
ORDER BY ok.alg_onrgoed_key;
v_count NUMBER := 0;
BEGIN
FOR rec IN c
LOOP
BEGIN
UPDATE alg_onrgoedkenmerk
SET alg_onrgoedkenmerk_waarde = ROUND (1.037 * alg_onrgoedkenmerk_waarde, 2)
WHERE alg_onrgoedkenmerk_verwijder IS NULL
AND alg_onrgoed_niveau = 'G'
AND alg_kenmerk_key IN (1180, 1181, 1182, 1183, 1184) -- Standaardtarief Rent L/H/K/O/T
AND alg_onrgoed_key = rec.alg_onrgoed_key;
fac.trackaction ('ALGGUP', rec.alg_onrgoed_key, NULL, NULL, 'Standaardtarief Rent L/H/K/O/T ge<67>ndexeerd (3,7%)');
v_count := v_count + 1;
END;
END LOOP;
DBMS_OUTPUT.PUT_LINE('S: ' || TO_CHAR (v_count) || ' Gebouw-tarieven gewijzigd');
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