BAMG#83299 Wens tot veranderen einddatum - automatisch verlengen

svn path=/Database/trunk/; revision=64753
This commit is contained in:
Erik Groener
2024-05-21 14:23:49 +00:00
parent a206332b47
commit 7a0557f3cc
5 changed files with 66 additions and 6 deletions

View File

@@ -11,6 +11,7 @@ CREATE OR REPLACE PACKAGE cnt AS
FUNCTION cnt_getOpzegdatum (pcnt_contract_key IN NUMBER) RETURN DATE;
FUNCTION cnt_getRappeldatum (pcnt_contract_key IN NUMBER) RETURN DATE;
FUNCTION cnt_contract_status (van IN DATE, rappel IN DATE, opzeg IN DATE, tot IN DATE) RETURN NUMBER;
PROCEDURE autoverleng_contract;
PROCEDURE splitscontract (p_key IN NUMBER, p_datum IN DATE, p_user IN NUMBER, p_amount NUMBER);
PROCEDURE generatefactuurschema (pcontractkey IN NUMBER,ptermijnbedrag IN NUMBER DEFAULT NULL);
@@ -233,6 +234,46 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
RETURN 4;
END;
PROCEDURE autoverleng_contract
IS
CURSOR c_verleng IS
SELECT c.cnt_contract_key
, c.ins_discipline_key
, c.cnt_contract_nummer_intern
, c.cnt_contract_omschrijving
, c.cnt_contract_looptijd_tot
, o.cnt_termijn_omschrijving opzegtermijn
, cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_opzegtermijn, -1) dtopzeggen
, v.cnt_termijn_omschrijving verlengtermijn
, cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_verleng_termijn, 1) dtnieuw
FROM cnt_contract c
, cnt_disc_params p
, cnt_termijn o
, cnt_termijn v
WHERE c.ins_discipline_key = p.cnt_ins_discipline_key
AND c.cnt_contract_opzegtermijn = o.cnt_termijn_key
AND c.cnt_contract_verleng_termijn = v.cnt_termijn_key
AND c.cnt_contract_verwijder IS NULL
AND BITAND(p.cnt_disc_params_opties,1) = 1 -- Dit contracttype mag automatisch verlengd worden
AND BITAND(c.cnt_contract_verlenging,4) = 4 -- Dit contract mag automatisch verlengd worden
AND TRUNC(SYSDATE) > cnt.cnt_getTermijndatum (c.cnt_contract_looptijd_tot, c.cnt_contract_opzegtermijn, -1);
tracking VARCHAR2(4000);
BEGIN
FOR cnt_verloopt IN c_verleng
LOOP
UPDATE cnt_contract
SET cnt_contract_looptijd_tot = cnt_verloopt.dtnieuw
WHERE cnt_contract_key = cnt_verloopt.cnt_contract_key;
tracking := REPLACE(REPLACE(lcl.l('lcl_cnt_prolongation_tracking')
, '{0}', cnt_verloopt.verlengtermijn
)
, '{1}', TO_CHAR(cnt_verloopt.dtnieuw,'dd-mm-yyyy')
);
fac.trackaction ('CNTUPD', cnt_verloopt.cnt_contract_key, NULL, NULL, tracking);
END LOOP;
END;
PROCEDURE splitscontract (p_key IN NUMBER, p_datum IN DATE, p_user IN NUMBER, p_amount NUMBER)
IS
begin1 DATE;

View File

@@ -82,6 +82,10 @@ CREATE_TABLE(cnt_disc_params, 0)
DEFAULT 0
NOT NULL,
cnt_disc_params_huurder /* indien Bedrijf: Huurders? */
NUMBER(1)
DEFAULT 0
NOT NULL,
cnt_disc_params_opties
NUMBER(1)
DEFAULT 0
NOT NULL
@@ -184,7 +188,10 @@ CREATE_TABLE(cnt_contract,0)
, cnt_contract_verlenging /* 00=vragen nee (0), 01=vragen ja (1), 10=vast nee (2), 11=vast ja (3) */
NUMBER(1)
DEFAULT 2
CONSTRAINT cnt_r_cnt_contract_verlenging CHECK(cnt_contract_verlenging IN (0,1,2,3))
CONSTRAINT cnt_r_cnt_contract_verlenging CHECK(cnt_contract_verlenging IN (0,1,2,3,4,5,6,7))
, cnt_contract_verleng_termijn
NUMBER(10)
CONSTRAINT cnt_r_cnt_termijn_key5 REFERENCES cnt_termijn(cnt_termijn_key)
, cnt_contract_approved
NUMBER(11,2)
, cnt_contract_teverzenden