BAMG#85636 Uitbreiding BAMG#83299 met diverse verlengingstermijnen
Na laatste termijn in verlengschema verlengtermijn in contract leeg maken. svn path=/Database/trunk/; revision=68673
This commit is contained in:
@@ -269,6 +269,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
|
|||||||
, c.cnt_contract_nummer_intern
|
, c.cnt_contract_nummer_intern
|
||||||
, c.cnt_contract_omschrijving
|
, c.cnt_contract_omschrijving
|
||||||
, c.cnt_contract_looptijd_tot
|
, c.cnt_contract_looptijd_tot
|
||||||
|
, c.cnt_contract_verleng_termijn
|
||||||
, o.cnt_termijn_omschrijving opzegtermijn
|
, o.cnt_termijn_omschrijving opzegtermijn
|
||||||
, cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_opzegtermijn, -1) dtopzeggen
|
, cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_opzegtermijn, -1) dtopzeggen
|
||||||
, v.cnt_termijn_omschrijving verlengtermijn
|
, v.cnt_termijn_omschrijving verlengtermijn
|
||||||
@@ -294,8 +295,10 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
|
|||||||
);
|
);
|
||||||
|
|
||||||
tracking VARCHAR2(4000);
|
tracking VARCHAR2(4000);
|
||||||
verlengschema_key cnt_verlengschema.cnt_verlengschema_key%TYPE;
|
this_verlengschema_key cnt_verlengschema.cnt_verlengschema_key%TYPE;
|
||||||
|
next_verlengschema_key cnt_verlengschema.cnt_verlengschema_key%TYPE;
|
||||||
next_termijn cnt_termijn.cnt_termijn_key%TYPE;
|
next_termijn cnt_termijn.cnt_termijn_key%TYPE;
|
||||||
|
infinite_prolongate NUMBER(1) := 0;
|
||||||
BEGIN
|
BEGIN
|
||||||
FOR cnt_verloopt IN c_verleng
|
FOR cnt_verloopt IN c_verleng
|
||||||
LOOP
|
LOOP
|
||||||
@@ -310,21 +313,39 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
|
|||||||
fac.trackaction ('CNTUPD', cnt_verloopt.cnt_contract_key, NULL, NULL, tracking);
|
fac.trackaction ('CNTUPD', cnt_verloopt.cnt_contract_key, NULL, NULL, tracking);
|
||||||
-- Heeft dit automatisch verlengbaar contract een verlengschema?
|
-- Heeft dit automatisch verlengbaar contract een verlengschema?
|
||||||
BEGIN
|
BEGIN
|
||||||
SELECT MIN(cnt_verlengschema_key)
|
SELECT this_schema_key
|
||||||
INTO verlengschema_key
|
, next_schema_key
|
||||||
|
INTO this_verlengschema_key
|
||||||
|
, next_verlengschema_key
|
||||||
|
FROM ( SELECT cnt_verlengschema_key AS this_schema_key
|
||||||
|
, LEAD(cnt_verlengschema_key) OVER(ORDER BY cnt_verlengschema_volgnr) AS next_schema_key
|
||||||
FROM cnt_verlengschema
|
FROM cnt_verlengschema
|
||||||
WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key;
|
WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key
|
||||||
-- Dan eerstvolgende verlengtermijn uit verlengschema naar het veld verlengtermijn in contract kopieren...
|
|
||||||
UPDATE cnt_contract
|
|
||||||
SET cnt_contract_verleng_termijn = (SELECT cnt_verlengschema_verlengtermijn
|
|
||||||
FROM cnt_verlengschema
|
|
||||||
WHERE cnt_verlengschema_key = verlengschema_key
|
|
||||||
)
|
)
|
||||||
|
WHERE rownum = 1;
|
||||||
|
-- Dan eerstvolgende verlengtermijn uit verlengschema naar het veld verlengtermijn in contract kopieren...
|
||||||
|
IF next_verlengschema_key IS NOT NULL
|
||||||
|
THEN
|
||||||
|
SELECT cnt_verlengschema_verlengtermijn
|
||||||
|
INTO next_termijn
|
||||||
|
FROM cnt_verlengschema
|
||||||
|
WHERE cnt_verlengschema_key = next_verlengschema_key;
|
||||||
|
ELSE
|
||||||
|
IF infinite_prolongate = 1
|
||||||
|
THEN
|
||||||
|
next_termijn := cnt_verloopt.cnt_contract_verleng_termijn;
|
||||||
|
ELSE
|
||||||
|
next_termijn := NULL;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
UPDATE cnt_contract
|
||||||
|
SET cnt_contract_verleng_termijn = next_termijn
|
||||||
WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key;
|
WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key;
|
||||||
|
|
||||||
-- ...en deze verlengtermijn uit het verlengschema verwijderen.
|
-- ...en deze verlengtermijn uit het verlengschema verwijderen.
|
||||||
DELETE
|
DELETE
|
||||||
FROM cnt_verlengschema
|
FROM cnt_verlengschema
|
||||||
WHERE cnt_verlengschema_key = verlengschema_key;
|
WHERE cnt_verlengschema_key = this_verlengschema_key;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN NO_DATA_FOUND THEN NULL;
|
WHEN NO_DATA_FOUND THEN NULL;
|
||||||
-- Laat laatste verlengtermijn staan als er geen volgende in het schema gevonden kan worden.
|
-- Laat laatste verlengtermijn staan als er geen volgende in het schema gevonden kan worden.
|
||||||
|
|||||||
Reference in New Issue
Block a user