UWVA#65182 Bewaartermijnen/automatische schoning in core

svn path=/Database/trunk/; revision=49209
This commit is contained in:
Erik Groener
2020-12-16 13:48:27 +00:00
parent 01def0f8f2
commit f9c944b6e9
14 changed files with 323 additions and 18 deletions

View File

@@ -17,6 +17,7 @@ CREATE OR REPLACE PACKAGE cnt AS
FUNCTION getnieuwsteversiekey(p_key IN NUMBER) RETURN NUMBER;
FUNCTION sprintf (ps IN VARCHAR2 , p_contract_key IN NUMBER) RETURN VARCHAR2;
PROCEDURE remove(p_contract_key IN NUMBER);
PRAGMA RESTRICT_REFERENCES (cnt_contract_status, WNDS, WNPS);
END cnt;
@@ -231,7 +232,7 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
RETURN 4;
END;
PROCEDURE splitscontract (p_key IN NUMBER, p_datum IN DATE, p_user IN NUMBER, p_amount NUMBER)
IS
begin1 DATE;
@@ -515,6 +516,48 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
RETURN s;
END;
PROCEDURE remove(p_contract_key IN NUMBER)
IS
CURSOR c_contract IS
SELECT cnt_contract_key
FROM cnt_contract
WHERE cnt_contract_mantel_key = p_contract_key;
CURSOR c_factuur IS
SELECT fin_factuur_key
FROM fin_factuur
WHERE cnt_contract_key = p_contract_key;
BEGIN
FOR ref_contract IN c_contract
LOOP
cnt.remove(ref_contract.cnt_contract_key);
END LOOP;
FOR ref_factuur IN c_factuur
LOOP
fin.remove(ref_factuur.fin_factuur_key);
END LOOP;
DELETE FROM cnt_contract
WHERE cnt_contract_key = p_contract_key;
-- Van de volgende tabellen worden de records die naar deze p_contact_key
-- verwijzen met ON DELETE CASCADE ook verwijderd:
-- cnt_contract_note
-- cnt_contract_object
-- cnt_contract_plaats
-- cnt_contract_dienst
-- cnt_factuurschema
-- cnt_kenmerkcontract
-- In de volgende tabel wordt cnt_contract_key leeg gemaakt bij het verwijderen van p_contract_key:
-- mld_opdr
fac.remove_tracking('contract', p_contract_key);
-- NB:
-- Tabel bes_bestelopdr heeft ook een cnt_contract key, maar deze heeft geen referential integrity constraint.
-- In geen enkele omgeving is cnt_contract_key in deze tabel ingevuld.
END;
END cnt;
/

View File

@@ -205,7 +205,7 @@ CREATE_TABLE(cnt_contract_object,0)
CONSTRAINT cnt_k_cnt_contract_object_key PRIMARY KEY
, cnt_contract_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_key_object REFERENCES cnt_contract(cnt_contract_key)
CONSTRAINT cnt_r_cnt_contract_key_object REFERENCES cnt_contract(cnt_contract_key) ON DELETE CASCADE
, cnt_ins_srtdeel_key
NUMBER(10)
CONSTRAINT cnt_r_ins_srtdeel_key REFERENCES ins_srtdeel(ins_srtdeel_key)
@@ -226,7 +226,7 @@ CREATE_TABLE(cnt_contract_plaats,0)
CONSTRAINT cnt_k_cnt_contract_plaats PRIMARY KEY
, cnt_contract_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_key_plaats REFERENCES cnt_contract(cnt_contract_key)
CONSTRAINT cnt_r_cnt_contract_key_plaats REFERENCES cnt_contract(cnt_contract_key) ON DELETE CASCADE
, cnt_alg_plaats_key
NUMBER(10)
, cnt_alg_plaats_code
@@ -247,7 +247,7 @@ CREATE_TABLE (CNT_CONTRACT_DIENST,0)
PRIMARY KEY,
cnt_contract_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_dienst REFERENCES cnt_contract(cnt_contract_key),
CONSTRAINT cnt_r_cnt_contract_dienst REFERENCES cnt_contract(cnt_contract_key) ON DELETE CASCADE,
mld_stdmelding_key
NUMBER(10)
CONSTRAINT cnt_r_cnt_contract_stdmld REFERENCES mld_stdmelding(mld_stdmelding_key),
@@ -269,7 +269,7 @@ ALTER TABLE mld_opdr ADD
(
cnt_contract_key
NUMBER(10)
CONSTRAINT mld_r_cnt_contract_key REFERENCES cnt_contract(cnt_contract_key)
CONSTRAINT mld_r_cnt_contract_key REFERENCES cnt_contract(cnt_contract_key) ON DELETE SET NULL
);
ALTER TABLE mld_opdr ADD
@@ -418,7 +418,7 @@ CREATE_TABLE(cnt_factuurschema , 0)
cnt_contract_key
NUMBER(10)
NOT NULL
CONSTRAINT cnt_r_cnt_factuurschema1 REFERENCES cnt_contract(cnt_contract_key),
CONSTRAINT cnt_r_cnt_factuurschema1 REFERENCES cnt_contract(cnt_contract_key) ON DELETE CASCADE,
cnt_factuurschema_boekmaand /* format YYYY-MM */
VARCHAR2(7),
cnt_factuurschema_bedrag