272 lines
13 KiB
SQL
272 lines
13 KiB
SQL
--
|
||
-- $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<67>ndexeerd (3,0%)');
|
||
ELSE
|
||
fac.trackaction ('#CNTUPD', rec.cnt_contract_key, NULL, NULL, 'Contracttarieven ge<67>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<67>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<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;
|
||
/
|
||
/*
|
||
-- 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
|