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

@@ -71,6 +71,7 @@ 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');
END bes;
/
@@ -2154,6 +2155,57 @@ AS
RETURN s;
END;
PROCEDURE remove(p_bes_opdr_key IN NUMBER, p_module IN VARCHAR2 DEFAULT 'BES')
IS
CURSOR c_bestelling(p_bestelling_key IN NUMBER) IS
SELECT bes_bestelling_key
FROM bes_bestelling
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;
BEGIN
IF (p_module = 'BES')
THEN
-- Verwijderen bestelling
FOR ref_bestelling IN c_bestelling(p_bes_opdr_key)
LOOP
bes.remove(ref_bestelling.bes_bestelling_key, 'BES');
END LOOP;
DELETE FROM bes_bestelling
WHERE bes_bestelling_key = p_bes_opdr_key;
-- Van de volgende tabellen worden de records die naar deze p_bestelling_key
-- verwijzen met ON DELETE CASCADE ook verwijderd:
-- bes_kenmerkbestell
-- bes_bestelling_item
-- Hierdoor worden de afhankelijkheden in de volgende tabel ook verwijderd:
-- bes_kenmerkbesteli
fac.remove_tracking('bestelling', p_bes_opdr_key);
ElSE
-- Verwijderen bestelopdracht
FOR ref_factuur IN c_factuur(p_bes_opdr_key)
LOOP
fin.remove(ref_factuur.fin_factuur_key);
END LOOP;
DELETE FROM bes_bestelopdr
WHERE bes_bestelopdr_key = p_bes_opdr_key;
-- Van de volgende tabellen worden de records die naar deze p_bestelling_key
-- verwijzen met ON DELETE CASCADE ook verwijderd:
-- bes_bestelopdr_item
fac.remove_tracking('bestelopdr', p_bes_opdr_key);
END IF;
END;
END bes;
/