-- -- $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). -- Behalve voor Sabic, daar betreffende velden x 1.03 (3% ipv. 3,7%)! SET SERVEROUTPUT ON size 1000000; DECLARE CURSOR c IS SELECT DISTINCT kc.cnt_contract_key, DECODE (c.ins_discipline_key, 2122, DECODE (c.cnt_prs_bedrijf_key, 11199, 1.03, 1.037), -- LA, dan SABIC Petrochemicals B.V.=3% en Rest=3,7% 2123, DECODE (c.cnt_prs_bedrijf_key, 11199, 1.03, 1.037), -- LA CRF, dan SABIC Petrochemicals B.V.=3% en Rest=3,7% 1.037) -- Rest=3,7% index_percentage FROM cnt_kenmerkcontract kc, cnt_v_aanwezigcontract c WHERE kc.cnt_kenmerkcontract_verwijder IS NULL AND kc.cnt_contract_key = c.cnt_contract_key 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] 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 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 (rec.index_percentage * 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; IF rec.index_percentage = 1.03 THEN fac.trackaction ('#CNTUPD', rec.cnt_contract_key, NULL, NULL, 'Contracttarieven geïndexeerd (3,0%)'); ELSE fac.trackaction ('#CNTUPD', rec.cnt_contract_key, NULL, NULL, 'Contracttarieven geïndexeerd (3,7%)'); END IF; 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_termijnkosten = 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); fac.trackaction ('#CNTUPD', rec.cnt_contract_key, NULL, NULL, 'Contracttarieven geïndexeerd (2,9%)'); 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ïndexeerd (3,7%)'); v_count := v_count + 1; END; END LOOP; DBMS_OUTPUT.PUT_LINE('S: ' || TO_CHAR (v_count) || ' Gebouw-tarieven gewijzigd'); END; / /* -- Correctie testrun ARLANXEO -factuur. SELECT fin_verkoopfactuur_n1, fin_verkoopfactuur_n2, '264,82', fin_verkoopfactuur_bedrag, fin_verkoopfactuur_btw, ROUND ((fin_verkoopfactuur_n1 * 256.36) / 12, 2) bedrag_oud, ROUND (0.21 * ROUND ((fin_verkoopfactuur_n1 * 256.36) / 12, 2), 2) btw_oud, ROUND ((fin_verkoopfactuur_n1 * 264.82) / 12, 2) bedrag_nieuw, ROUND (0.21 * ROUND ((fin_verkoopfactuur_n1 * 264.82) / 12, 2), 2) btw_nieuw FROM fin_verkoopfactuur vf WHERE TRUNC (fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE - 4) AND fin_verkoopfactuur_c1 = '1933.8' AND INSTR (fin_verkoopfactuur_omschr, 'Rent') > 0 AND fin_verkoopfactuur_n2 = '256.36'; UPDATE fin_verkoopfactuur vf SET fin_verkoopfactuur_n2 = '264.82', fin_verkoopfactuur_bedrag = ROUND ((fin_verkoopfactuur_n1 * 264.82) / 12, 2), fin_verkoopfactuur_btw = ROUND (0.21 * ROUND ((fin_verkoopfactuur_n1 * 264.82) / 12, 2), 2) WHERE TRUNC (fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE - 4) AND fin_verkoopfactuur_c1 = '1933.8' AND INSTR (fin_verkoopfactuur_omschr, 'Rent') > 0 AND fin_verkoopfactuur_n2 = '256.36'; -- Correctie testrun SABIC-facturen. SELECT fin_verkoopfactuur_n1, fin_verkoopfactuur_n2 tarief_cur, fin_verkoopfactuur_bedrag bedrag_cur, fin_verkoopfactuur_btw btw_cur, ROUND (fin_verkoopfactuur_n2 * 0.96432, 2) tarief_oud, ROUND ((fin_verkoopfactuur_n1 * ROUND (fin_verkoopfactuur_n2 * 0.96432, 2)) / 12, 2) bedrag_oud, ROUND (0.21 * ROUND ((fin_verkoopfactuur_n1 * ROUND (fin_verkoopfactuur_n2 * 0.96432, 2)) / 12, 2), 2) btw_oud FROM fin_verkoopfactuur WHERE TRUNC (fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE - 4) --AND fin_verkoopfactuur_c1 IN ('1990.x', '1992.x', '1993.x', '1994.x', '3908.x', '2161.x') AND prs_bedrijf_key = 11199 -- SABIC Petrochemicals B.V. AND INSTR (fin_verkoopfactuur_omschr, 'Rent') > 0 AND fin_verkoopfactuur_n1 > 0; UPDATE fin_verkoopfactuur SET fin_verkoopfactuur_n2 = ROUND (fin_verkoopfactuur_n2 * 0.96432, 2) WHERE TRUNC (fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE - 4) --AND fin_verkoopfactuur_c1 IN ('1990.x', '1992.x', '1993.x', '1994.x', '3908.x', '2161.x') AND prs_bedrijf_key = 11199 -- SABIC Petrochemicals B.V. AND INSTR (fin_verkoopfactuur_omschr, 'Rent') > 0 AND fin_verkoopfactuur_n1 > 0; UPDATE fin_verkoopfactuur SET fin_verkoopfactuur_bedrag = ROUND ((fin_verkoopfactuur_n1 * fin_verkoopfactuur_n2) / 12, 2), fin_verkoopfactuur_btw = ROUND (0.21 * ROUND ((fin_verkoopfactuur_n1 * fin_verkoopfactuur_n2) / 12, 2), 2) WHERE TRUNC (fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE - 4) --AND fin_verkoopfactuur_c1 IN ('1990.x', '1992.x', '1993.x', '1994.x', '3908.x', '2161.x') AND prs_bedrijf_key = 11199 -- SABIC Petrochemicals B.V. AND INSTR (fin_verkoopfactuur_omschr, 'Rent') > 0 AND fin_verkoopfactuur_n1 > 0; SELECT fin_verkoopfactuur_n1, fin_verkoopfactuur_n2 tarief_cur, fin_verkoopfactuur_bedrag bedrag_cur, fin_verkoopfactuur_btw btw_cur, ROUND (fin_verkoopfactuur_n2 * 1.03, 2) tarief_nieuw, ROUND ((fin_verkoopfactuur_n1 * ROUND (fin_verkoopfactuur_n2 * 1.03, 2)) / 12, 2) bedrag_nieuw, ROUND (0.21 * ROUND ((fin_verkoopfactuur_n1 * ROUND (fin_verkoopfactuur_n2 * 1.03, 2)) / 12, 2), 2) btw_nieuw FROM fin_verkoopfactuur WHERE TRUNC (fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE - 4) --AND fin_verkoopfactuur_c1 IN ('1990.x', '1992.x', '1993.x', '1994.x', '3908.x', '2161.x') AND prs_bedrijf_key = 11199 -- SABIC Petrochemicals B.V. AND INSTR (fin_verkoopfactuur_omschr, 'Rent') > 0 AND fin_verkoopfactuur_n1 > 0; UPDATE fin_verkoopfactuur SET fin_verkoopfactuur_n2 = ROUND (fin_verkoopfactuur_n2 * 1.03, 2) WHERE TRUNC (fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE - 4) --AND fin_verkoopfactuur_c1 IN ('1990.x', '1992.x', '1993.x', '1994.x', '3908.x', '2161.x') AND prs_bedrijf_key = 11199 -- SABIC Petrochemicals B.V. AND INSTR (fin_verkoopfactuur_omschr, 'Rent') > 0 AND fin_verkoopfactuur_n1 > 0; UPDATE fin_verkoopfactuur SET fin_verkoopfactuur_bedrag = ROUND ((fin_verkoopfactuur_n1 * fin_verkoopfactuur_n2) / 12, 2), fin_verkoopfactuur_btw = ROUND (0.21 * ROUND ((fin_verkoopfactuur_n1 * fin_verkoopfactuur_n2) / 12, 2), 2) WHERE TRUNC (fin_verkoopfactuur_aanmaak) = TRUNC (SYSDATE - 4) --AND fin_verkoopfactuur_c1 IN ('1990.x', '1992.x', '1993.x', '1994.x', '3908.x', '2161.x') AND prs_bedrijf_key = 11199 -- SABIC Petrochemicals B.V. AND INSTR (fin_verkoopfactuur_omschr, 'Rent') > 0 AND fin_verkoopfactuur_n1 > 0; */ ------ 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