UWVA#65182 Bewaartermijnen/automatische schoning in core
svn path=/Database/trunk/; revision=49806
This commit is contained in:
@@ -71,7 +71,8 @@ AS
|
||||
RETURN varchar2;
|
||||
FUNCTION opdrsprintf (ps IN varchar2, pbes_bestelopdr_key IN number)
|
||||
RETURN varchar2;
|
||||
PROCEDURE remove(p_bes_opdr_key IN NUMBER, p_module IN VARCHAR2 DEFAULT 'BES');
|
||||
PROCEDURE remove(p_bes_bestelling_key IN NUMBER);
|
||||
PROCEDURE remove_opdr(p_bes_opdr_key IN NUMBER);
|
||||
END bes;
|
||||
/
|
||||
|
||||
@@ -2155,7 +2156,7 @@ AS
|
||||
RETURN s;
|
||||
END;
|
||||
|
||||
PROCEDURE remove(p_bes_opdr_key IN NUMBER, p_module IN VARCHAR2 DEFAULT 'BES')
|
||||
PROCEDURE remove(p_bes_bestelling_key IN NUMBER)
|
||||
IS
|
||||
CURSOR c_bestelling(p_bestelling_key IN NUMBER) IS
|
||||
SELECT bes_bestelling_key
|
||||
@@ -2163,22 +2164,50 @@ AS
|
||||
WHERE bes_bestelling_retourvan_key = p_bestelling_key
|
||||
OR bes_bestelling_parentkey = p_bestelling_key;
|
||||
|
||||
CURSOR c_factuur(p_bestelopdracht_key IN NUMBER) IS
|
||||
SELECT fin_factuur_key
|
||||
FROM fin_factuur
|
||||
WHERE bes_bestelopdr_key = p_bestelopdracht_key;
|
||||
CURSOR c_bijlagen(p_refkey IN NUMBER) IS
|
||||
SELECT b.fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, bes_bestelling r
|
||||
, (SELECT k.bes_kenmerk_key kenmerk_key
|
||||
FROM bes_kenmerk k
|
||||
, bes_srtkenmerk s
|
||||
WHERE k.bes_srtkenmerk_key = s.bes_srtkenmerk_key
|
||||
AND k.bes_kenmerk_type = 'B'
|
||||
AND s.bes_srtkenmerk_kenmerktype IN ('F', 'M', 'E', 'X')
|
||||
) k
|
||||
WHERE b.fac_bijlagen_refkey = r.bes_bestelling_key
|
||||
AND b.fac_bijlagen_kenmerk_key = k.kenmerk_key
|
||||
AND b.fac_bijlagen_module = 'BES'
|
||||
AND r.bes_bestelling_key = p_refkey
|
||||
UNION
|
||||
SELECT b.fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, bes_bestelling_item r
|
||||
, (SELECT k.bes_kenmerk_key kenmerk_key
|
||||
FROM bes_kenmerk k
|
||||
, bes_srtkenmerk s
|
||||
WHERE k.bes_srtkenmerk_key = s.bes_srtkenmerk_key
|
||||
AND k.bes_kenmerk_type = 'B'
|
||||
AND s.bes_srtkenmerk_kenmerktype IN ('F', 'M', 'E', 'X')
|
||||
) k
|
||||
WHERE b.fac_bijlagen_refkey = r.bes_bestelling_item_key
|
||||
AND b.fac_bijlagen_kenmerk_key = k.kenmerk_key
|
||||
AND b.fac_bijlagen_module = 'BES'
|
||||
AND r.bes_bestelling_key = p_refkey;
|
||||
|
||||
BEGIN
|
||||
IF (p_module = 'BES')
|
||||
THEN
|
||||
-- Verwijderen bestelling
|
||||
FOR ref_bestelling IN c_bestelling(p_bes_opdr_key)
|
||||
-- Als een bestelling verwijderd wordt kunnen ook de eventuele retour- en child-bestellingen verwijderd worden.
|
||||
FOR ref_bestelling IN c_bestelling(p_bes_bestelling_key)
|
||||
LOOP
|
||||
bes.remove(ref_bestelling.bes_bestelling_key, 'BES');
|
||||
-- Van alle bestellingen en bestelitems die worden verwijderd moeten ook de bijlagen verwijderd worden.
|
||||
FOR ref_bijlagen IN c_bijlagen(ref_bestelling.bes_bestelling_key)
|
||||
LOOP
|
||||
flx.deleteflexbijlage (ref_bijlagen.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
|
||||
DELETE FROM bes_bestelling
|
||||
WHERE bes_bestelling_key = p_bes_opdr_key;
|
||||
WHERE bes_bestelling_key = ref_bestelling.bes_bestelling_key;
|
||||
|
||||
-- Van de volgende tabellen worden de records die naar deze p_bestelling_key
|
||||
-- verwijzen met ON DELETE CASCADE ook verwijderd:
|
||||
@@ -2187,8 +2216,18 @@ AS
|
||||
-- Hierdoor worden de afhankelijkheden in de volgende tabel ook verwijderd:
|
||||
-- bes_kenmerkbesteli
|
||||
|
||||
fac.remove_tracking('bestelling', p_bes_opdr_key);
|
||||
ElSE
|
||||
fac.remove_tracking('bestelling', ref_bestelling.bes_bestelling_key);
|
||||
END LOOP;
|
||||
END;
|
||||
|
||||
|
||||
PROCEDURE remove_opdr(p_bes_opdr_key IN NUMBER)
|
||||
IS
|
||||
CURSOR c_factuur(p_bestelopdracht_key IN NUMBER) IS
|
||||
SELECT fin_factuur_key
|
||||
FROM fin_factuur
|
||||
WHERE bes_bestelopdr_key = p_bestelopdracht_key;
|
||||
BEGIN
|
||||
-- Verwijderen bestelopdracht
|
||||
FOR ref_factuur IN c_factuur(p_bes_opdr_key)
|
||||
LOOP
|
||||
@@ -2203,7 +2242,6 @@ AS
|
||||
-- bes_bestelopdr_item
|
||||
|
||||
fac.remove_tracking('bestelopdr', p_bes_opdr_key);
|
||||
END IF;
|
||||
END;
|
||||
|
||||
END bes;
|
||||
|
||||
@@ -527,9 +527,24 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
|
||||
SELECT fin_factuur_key
|
||||
FROM fin_factuur
|
||||
WHERE cnt_contract_key = p_contract_key;
|
||||
|
||||
CURSOR c_bijlagen(p_refkey IN NUMBER) IS
|
||||
SELECT fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, cnt_contract r
|
||||
WHERE b.fac_bijlagen_refkey = r.cnt_contract_key
|
||||
AND b.fac_bijlagen_module = 'CNT'
|
||||
AND b.fac_bijlagen_refkey = p_refkey;
|
||||
|
||||
BEGIN
|
||||
-- Verwijder alle subcontracten van dit contract.
|
||||
FOR ref_contract IN c_contract
|
||||
LOOP
|
||||
FOR ref_bijlagen IN c_bijlagen(ref_contract.cnt_contract_key)
|
||||
LOOP
|
||||
flx.deleteflexbijlage (ref_bijlagen.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
|
||||
cnt.remove(ref_contract.cnt_contract_key);
|
||||
END LOOP;
|
||||
|
||||
@@ -538,6 +553,11 @@ CREATE OR REPLACE PACKAGE BODY cnt AS
|
||||
fin.remove(ref_factuur.fin_factuur_key);
|
||||
END LOOP;
|
||||
|
||||
FOR ref_bijlagen IN c_bijlagen(p_contract_key)
|
||||
LOOP
|
||||
flx.deleteflexbijlage (ref_bijlagen.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
|
||||
DELETE FROM cnt_contract
|
||||
WHERE cnt_contract_key = p_contract_key;
|
||||
|
||||
|
||||
@@ -1055,8 +1055,19 @@ AS
|
||||
|
||||
PROCEDURE remove(p_factuur_key IN NUMBER)
|
||||
IS
|
||||
-- **
|
||||
CURSOR c_bijlagen(p_refkey IN NUMBER) IS
|
||||
SELECT fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, fin_factuur r
|
||||
WHERE b.fac_bijlagen_refkey = r.fin_factuur_key
|
||||
AND b.fac_bijlagen_module = 'FIN'
|
||||
AND b.fac_bijlagen_refkey = p_refkey;
|
||||
BEGIN
|
||||
FOR ref_bijlagen IN c_bijlagen(p_factuur_key)
|
||||
LOOP
|
||||
flx.deleteflexbijlage (ref_bijlagen.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
|
||||
DELETE FROM fin_factuur
|
||||
WHERE fin_factuur_key = p_factuur_key;
|
||||
|
||||
|
||||
103
MLD/MLD_PAC.SRC
103
MLD/MLD_PAC.SRC
@@ -70,7 +70,8 @@ CREATE OR REPLACE PACKAGE mld AS
|
||||
p_opdr_key IN NUMBER,
|
||||
p_waarde IN VARCHAR2);
|
||||
FUNCTION mldflexsummary (pmelding_key IN NUMBER) RETURN VARCHAR2;
|
||||
PROCEDURE remove(p_mld_opdr_key IN NUMBER, p_module IN VARCHAR2 DEFAULT 'MLD');
|
||||
PROCEDURE remove(p_melding_key IN NUMBER);
|
||||
PROCEDURE remove_opdr(p_mld_opdr_key IN NUMBER);
|
||||
END mld;
|
||||
/
|
||||
CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
@@ -2930,7 +2931,7 @@ BEGIN
|
||||
RETURN builder;
|
||||
END;
|
||||
|
||||
PROCEDURE remove(p_mld_opdr_key IN NUMBER, p_module IN VARCHAR2 DEFAULT 'MLD')
|
||||
PROCEDURE remove(p_melding_key IN NUMBER)
|
||||
IS
|
||||
CURSOR c_melding(p_melding_key IN NUMBER) IS
|
||||
SELECT mld_melding_key
|
||||
@@ -2943,20 +2944,89 @@ IS
|
||||
FROM mld_opdr
|
||||
WHERE mld_melding_key = p_melding_key;
|
||||
|
||||
CURSOR c_bijlagen(p_refkey IN NUMBER) IS
|
||||
SELECT fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, mld_melding r
|
||||
, (SELECT k.mld_kenmerk_key kenmerk_key
|
||||
FROM mld_kenmerk k
|
||||
, mld_srtkenmerk s
|
||||
WHERE k.mld_srtkenmerk_key = s.mld_srtkenmerk_key
|
||||
AND k.mld_kenmerk_niveau NOT IN ('O', 'P')
|
||||
AND s.mld_srtkenmerk_kenmerktype IN ('F', 'M', 'E', 'X')
|
||||
) k
|
||||
WHERE b.fac_bijlagen_refkey = r.mld_melding_key
|
||||
AND b.fac_bijlagen_module = 'MLD'
|
||||
AND b.fac_bijlagen_refey = p_refkey;
|
||||
|
||||
BEGIN
|
||||
-- Ook alle child meldingen verwijderen.
|
||||
FOR ref_melding IN c_melding(p_melding_key)
|
||||
LOOP
|
||||
mld.remove(ref_melding.mld_melding_key, 'MLD');
|
||||
END LOOP;
|
||||
|
||||
-- Alle opdrachten onder de melding verwijderen.
|
||||
FOR ref_opdracht IN c_opdracht(p_melding_key)
|
||||
LOOP
|
||||
mld.remove(ref_opdracht.mld_opdr_key, 'ORD');
|
||||
END LOOP;
|
||||
|
||||
FOR ref_bijlagen IN c_bijlagen(p_melding_key);
|
||||
LOOP
|
||||
flx.deleteflexbijlage (ref_bijlagen.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
|
||||
DELETE FROM mld_melding
|
||||
WHERE mld_melding_key = p_melding_key;
|
||||
|
||||
-- Van de volgende tabellen worden de records die naar deze p_melding_key
|
||||
-- verwijzen met ON DELETE CASCADE ook verwijderd:
|
||||
-- mld_melding_note
|
||||
-- mld_kenmerkmelding
|
||||
-- mld_melding_object
|
||||
-- prj_scenario
|
||||
-- In de volgende tabel wordt mld_melding_key leeg gemaakt bij het verwijderen van p_melding_key:
|
||||
-- bes_bestelling
|
||||
|
||||
fac.remove_tracking('melding', p_melding_key);
|
||||
END;
|
||||
|
||||
PROCEDURE remove_opdr(p_mld_opdr_key IN NUMBER)
|
||||
CURSOR c_factuur(p_opdracht_key IN NUMBER) IS
|
||||
SELECT fin_factuur_key
|
||||
FROM fin_factuur
|
||||
WHERE mld_opdr_key = p_opdracht_key;
|
||||
|
||||
CURSOR c_bijlagen(p_refkey IN NUMBER) IS
|
||||
SELECT fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, mld_opdr r
|
||||
, (SELECT k.mld_kenmerk_key kenmerk_key
|
||||
FROM mld_kenmerk k
|
||||
, mld_srtkenmerk s
|
||||
WHERE k.mld_srtkenmerk_key = s.mld_srtkenmerk_key
|
||||
AND k.mld_kenmerk_niveau IN ('O', 'P')
|
||||
AND s.mld_srtkenmerk_kenmerktype IN ('F', 'M', 'E', 'X')
|
||||
) k
|
||||
WHERE b.fac_bijlagen_refkey = r.mld_opdr_key
|
||||
AND b.fac_bijlagen_module = 'MLD'
|
||||
AND b.fac_bijlagen_refkey = p_refkey;
|
||||
|
||||
BEGIN
|
||||
IF (p_module = 'ORD')
|
||||
THEN
|
||||
FOR ref_factuur IN c_factuur(p_mld_opdr_key)
|
||||
LOOP
|
||||
fin.remove(ref_factuur.fin_factuur_key);
|
||||
END LOOP;
|
||||
|
||||
FOR ref_bijlagen IN c_bijlagen(p_mld_opdr_key);
|
||||
LOOP
|
||||
flx.deleteflexbijlage (ref_bijlagen.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
|
||||
DELETE FROM mld_opdr
|
||||
WHERE mld_opdr_key = p_mld_opdr_key;
|
||||
|
||||
-- Van de volgende tabellen worden de records die naar deze mld_opdr_key
|
||||
-- verwijzen met ON DELETE CASCADE ook verwijderd:
|
||||
-- mld_opdr_note
|
||||
@@ -2968,31 +3038,6 @@ BEGIN
|
||||
-- mld_opdruren_kosten
|
||||
|
||||
fac.remove_tracking('opdracht', p_mld_opdr_key);
|
||||
ELSE
|
||||
FOR ref_melding IN c_melding(p_mld_opdr_key)
|
||||
LOOP
|
||||
mld.remove(ref_melding.mld_melding_key, 'MLD');
|
||||
END LOOP;
|
||||
|
||||
FOR ref_opdracht IN c_opdracht(p_mld_opdr_key)
|
||||
LOOP
|
||||
mld.remove(ref_opdracht.mld_opdr_key, 'ORD');
|
||||
END LOOP;
|
||||
|
||||
DELETE FROM mld_melding
|
||||
WHERE mld_melding_key = p_mld_opdr_key;
|
||||
|
||||
-- Van de volgende tabellen worden de records die naar deze p_melding_key
|
||||
-- verwijzen met ON DELETE CASCADE ook verwijderd:
|
||||
-- mld_melding_note
|
||||
-- mld_kenmerkmelding
|
||||
-- mld_melding_object
|
||||
-- prj_scenario
|
||||
-- In de volgende tabel wordt mld_melding_key leeg gemaakt bij het verwijderen van p_melding_key:
|
||||
-- bes_bestelling
|
||||
|
||||
fac.remove_tracking('melding', p_mld_opdr_key);
|
||||
END IF;
|
||||
END;
|
||||
|
||||
END mld;
|
||||
|
||||
@@ -36,7 +36,7 @@ CREATE OR REPLACE PACKAGE res AS
|
||||
FUNCTION sprintf (ps IN VARCHAR2 , pres_rsv_ruimte_key IN NUMBER) RETURN VARCHAR2;
|
||||
FUNCTION notifypool (pbez_bezoeker_key IN NUMBER, pcode IN VARCHAR2) RETURN NUMBER;
|
||||
PROCEDURE notifybackoffice (prsvkey IN NUMBER, pcode IN VARCHAR2, ptype IN VARCHAR2 DEFAULT NULL, pkey IN NUMBER DEFAULT NULL);
|
||||
PROCEDURE remove(p_reservering_key IN NUMBER);
|
||||
PROCEDURE remove(p_rsv_ruimte_key IN NUMBER);
|
||||
END res;
|
||||
/
|
||||
|
||||
@@ -2277,21 +2277,34 @@ AS
|
||||
END;
|
||||
END;
|
||||
|
||||
PROCEDURE remove(p_reservering_key IN NUMBER)
|
||||
PROCEDURE remove(p_rsv_ruimte_key IN NUMBER)
|
||||
IS
|
||||
CURSOR c_reservering IS
|
||||
SELECT res_rsv_ruimte_key
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_reservering_key = p_reservering_key;
|
||||
CURSOR c_bijlagen(p_refkey IN NUMBER) IS
|
||||
SELECT fac_bijlagen_key
|
||||
FROM fac_bijlagen b
|
||||
, res_rsv_ruimte r
|
||||
WHERE b.fac_bijlagen_refkey = r.res_rsv_ruimte_key
|
||||
AND b.fac_bijlagen_module = 'RES'
|
||||
AND b.fac_bijlagen_refkey = p_refkey;
|
||||
|
||||
res_key res_reservering.res_reservering_key%TYPE;
|
||||
BEGIN
|
||||
FOR ref_rsv_ruimte IN c_reservering
|
||||
fac.remove_tracking('reservering', p_rsv_ruimte_key);
|
||||
fac.remove_tracking('xreservering', p_rsv_ruimte_key);
|
||||
|
||||
SELECT res_reservering_key
|
||||
INTO res_key
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_rsv_ruimte_key = p_rsv_ruimte_key;
|
||||
|
||||
FOR ref_bijlagen IN c_bijlagen(p_rsv_ruimte_key)
|
||||
LOOP
|
||||
fac.remove_tracking('reservering', ref_rsv_ruimte.res_rsv_ruimte_key);
|
||||
fac.remove_tracking('xreservering', ref_rsv_ruimte.res_rsv_ruimte_key);
|
||||
flx.deleteflexbijlage (ref_bijlagen.fac_bijlagen_key);
|
||||
END LOOP;
|
||||
|
||||
DELETE FROM res_rsv_ruimte
|
||||
WHERE res_reservering_key = p_reservering_key;
|
||||
WHERE res_rsv_ruimte_key = p_rsv_ruimte_key;
|
||||
|
||||
-- Van de volgende tabellen worden de records die naar deze res_rsv_ruimte_key
|
||||
-- verwijzen met ON DELETE CASCADE ook verwijderd:
|
||||
-- res_kenmerkwaarde
|
||||
@@ -2301,8 +2314,13 @@ AS
|
||||
-- bez_afspraak
|
||||
-- mld_melding
|
||||
|
||||
-- Als dit de laatste deelreservering in de reservering is mag de reservering ook weg.
|
||||
DELETE FROM res_reservering
|
||||
WHERE res_reservering_key = p_reservering_key;
|
||||
WHERE NOT EXISTS (SELECT 1
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_reservering_key = res_key
|
||||
)
|
||||
AND res_reservering_key = res_key;
|
||||
|
||||
-- Geen tracking op res_reservering.
|
||||
END;
|
||||
|
||||
Reference in New Issue
Block a user