UWVA#65182 Bewaartermijnen/automatische schoning in core

svn path=/Database/trunk/; revision=52224
This commit is contained in:
Erik Groener
2021-07-06 10:04:59 +00:00
parent b3f56c6a94
commit fb8a7caae1

View File

@@ -2168,6 +2168,11 @@ AS
WHERE bes_bestelling_retourvan_key = p_bestelling_key
OR bes_bestelling_parentkey = p_bestelling_key;
CURSOR c_opdracht(p_bestelling_key IN NUMBER) IS
SELECT bes_bestelopdr_key
FROM bes_bestelopdr
WHERE TO_NUMBER(SUBSTR(bes_bestelopdr_id, 1, INSTR(bes_bestelopdr_id, '/', 1)-1)) = p_bestelling_key;
CURSOR c_bijlagen(p_refkey IN NUMBER) IS
SELECT b.fac_bijlagen_key
FROM fac_bijlagen b
@@ -2200,30 +2205,37 @@ AS
AND r.bes_bestelling_key = p_refkey;
BEGIN
-- Verwijderen bestelling
-- Als een bestelling verwijderd wordt kunnen ook de eventuele retour- en child-bestellingen verwijderd worden.
-- Ook alle child/retour bestellingen verwijderen.
FOR ref_bestelling IN c_bestelling(p_bes_bestelling_key)
LOOP
-- 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 = 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:
-- bes_kenmerkbestell
-- bes_bestelling_item
-- Hierdoor worden de afhankelijkheden in de volgende tabel ook verwijderd:
-- bes_kenmerkbesteli
fac.remove_tracking('bestelling', ref_bestelling.bes_bestelling_key);
bes.remove(ref_bestelling.bes_bestelling_key);
END LOOP;
END;
-- Alle bestelopdrachten onder de bestelling verwijderen.
FOR ref_opdracht IN c_opdracht(p_bes_bestelling_key)
LOOP
bes.remove_opdr(ref_opdracht.bes_bestelopdr_key);
END LOOP;
-- Van alle bestellingen en bestelitems die worden verwijderd moeten ook de bijlagen verwijderd worden.
FOR ref_bijlagen IN c_bijlagen(p_bes_bestelling_key)
LOOP
flx.deleteflexbijlage (ref_bijlagen.fac_bijlagen_key);
END LOOP;
-- Verwijderen bestelling
DELETE FROM bes_bestelling
WHERE bes_bestelling_key = p_bes_bestelling_key;
-- Van de volgende tabellen worden de records die naar deze p_bes_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_bestelling_key);
END;
PROCEDURE remove_opdr(p_bes_opdr_key IN NUMBER)
IS