SGGR#80463 Indexwerk 2024

svn path=/Customer/trunk/; revision=62893
This commit is contained in:
Maarten van der Heide
2023-12-07 15:14:53 +00:00
parent 29908963f1
commit 5cc19ae0a5

View File

@@ -589,15 +589,17 @@ AS
AND COALESCE (li.laatste_indexdatum, SYSDATE) < p_splitsindexdatum
ORDER BY TO_NUMBER (x.cnt_contract_nummer_intern);
c_splitsindexdatum DATE := TO_DATE ('01012024', 'ddmmyyyy'); -- Per 01-01-2024!
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_new_contract_key NUMBER;
termijnkorting cnt_kenmerkcontract.cnt_kenmerkcontract_waarde%TYPE;
oldtermijnkosten cnt_contract.cnt_contract_termijnkosten%TYPE;
newtermijnkosten cnt_contract.cnt_contract_termijnkosten%TYPE;
c_splitsindexdatum DATE := TO_DATE ('01012024', 'ddmmyyyy'); -- Per 01-01-2024!
v_errorhint VARCHAR2 (1000);
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
v_new_contract_key NUMBER;
v_kenmerkcontract_key NUMBER;
termijnkorting cnt_kenmerkcontract.cnt_kenmerkcontract_waarde%TYPE;
oldtermijnkosten cnt_contract.cnt_contract_termijnkosten%TYPE;
newtermijnkosten cnt_contract.cnt_contract_termijnkosten%TYPE;
PROCEDURE upsert_cntkenmerk (p_contract_key IN NUMBER,
p_srtkenmerk_key IN NUMBER,
@@ -673,7 +675,6 @@ BEGIN
c_splitsindexdatum,
NULL,
NULL);
COMMIT;
-- Na splitsen wordt de nieuwe versie ge<67>ndexeerd.
v_errorhint := 'Fout bij bepalen nieuwe versie.';
@@ -699,13 +700,29 @@ BEGIN
upsert_cntkenmerk (v_new_contract_key,
301, -- Laatste index-datum
TO_CHAR (c_splitsindexdatum, 'ddmmyyyy'));
COMMIT;
v_errorhint := 'Fout bij toevoegen laatste indexpercentage.';
upsert_cntkenmerk (v_new_contract_key,
302, -- Laatste index-percentage
rc.indexpct);
COMMIT;
-- LET OP: Hier geen upsert_cntkenmerk() gebruiken, want >1 kenmerken
-- van dezelfde soort (index-percentage)!
-- Bepaal bestaan/aanwezigheid huidige kenmerkwaarde?
SELECT COUNT (*), MAX (cnt_kenmerkcontract_key)
INTO v_count, v_kenmerkcontract_key
FROM cnt_kenmerkcontract
WHERE cnt_kenmerkcontract_verwijder IS NULL
AND cnt_kenmerk_key IN (402, 404, 428, 563) -- Laatste index-percentage (kenmerk-keys)
AND cnt_contract_key = v_new_contract_key;
IF v_count = 0
THEN
v_errorhint := 'Fout bij toevoegen laatste indexpercentage.';
INSERT INTO cnt_kenmerkcontract (cnt_contract_key, cnt_kenmerk_key, cnt_kenmerkcontract_waarde)
VALUES (v_new_contract_key, DECODE (rc.ins_discipline_key, 481, 402, 482, 404, 501, 428, 661, 563, -1), TO_CHAR (rc.indexpct));
ELSE
v_errorhint := 'Fout bij bijwerken laatste indexpercentage.';
UPDATE cnt_kenmerkcontract
SET cnt_kenmerkcontract_waarde = TO_CHAR (rc.indexpct),
cnt_kenmerkcontract_wijzig = SYSDATE
WHERE cnt_kenmerkcontract_key = v_kenmerkcontract_key;
END IF;
FOR rkc
IN ( SELECT kc.cnt_kenmerkcontract_key,
@@ -737,7 +754,6 @@ BEGIN
SET cnt_kenmerkcontract_waarde = TO_CHAR (rkc.new_waarde, '999999D99')
WHERE cnt_kenmerkcontract_key = rkc.cnt_kenmerkcontract_key;
END LOOP;
COMMIT;
-- Aanpassen van de totalen. Let op dat een evt kortingsbedrag (cnt_srtkenmerk_key=85)
-- niet meegeindexeerd wordt, dus kun je niet zomaar het totaal indexeren
@@ -823,7 +839,6 @@ BEGIN
|| TO_CHAR (oldtermijnkosten)
|| ' naar <20>'
|| TO_CHAR (newtermijnkosten));
COMMIT;
EXCEPTION
WHEN OTHERS
THEN