FCLT#85890 Orderqueue en notificatiequeue savepoint

svn path=/Database/trunk/; revision=67045
This commit is contained in:
Jos Groot Lipman
2024-11-14 16:05:17 +00:00
parent 86b25c07ec
commit 709892b347
8 changed files with 326 additions and 148 deletions

View File

@@ -20,11 +20,10 @@ CREATE OR REPLACE PACKAGE mld AS
PROCEDURE notifybehandelaar (pto IN NUMBER, pcode IN VARCHAR2, pmeldingkey IN NUMBER);
PROCEDURE notifyprio (pmeldingkey IN NUMBER, prio IN NUMBER, pperslid_key IN NUMBER, pdisc_level IN NUMBER DEFAULT 1);
PROCEDURE notifyopdrgoedkeurders (popdrkey IN NUMBER);
PROCEDURE notifyopdrbedrijven (psrtnotificatiekey NUMBER,
popdrkey NUMBER,
pperslid_key NUMBER,
ptracking_oms VARCHAR2,
ptrackingkey NUMBER DEFAULT NULL);
PROCEDURE notifyopdrbedrijven (popdrkey NUMBER,
ptrackingkey NUMBER);
PROCEDURE notifymeldingbedrijven (pmldkey NUMBER,
ptrackingkey NUMBER);
FUNCTION getinstemmer (pmldkey IN NUMBER) RETURN NUMBER;
PROCEDURE notifyinstemmer (pmldkey IN NUMBER);
FUNCTION mld_besteed_budget_pgb (p_prs_key IN NUMBER, p_disc_key IN NUMBER)
@@ -1393,11 +1392,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
-- Stuur notificatie psrtnotificatiekey naar diverse bedrijven
-- in het bijzonder de uitvoerende maar het mag ook een
-- ander 'subscribed' bedrijf zijn (bedrijfadres_type 'OG').
PROCEDURE notifyopdrbedrijven (psrtnotificatiekey NUMBER,
popdrkey NUMBER,
pperslid_key NUMBER,
ptracking_oms VARCHAR2,
ptrackingkey NUMBER DEFAULT NULL)
PROCEDURE notifyopdrbedrijven (popdrkey NUMBER,
ptrackingkey NUMBER)
AS
BEGIN
FOR bedrijfrec
@@ -1430,17 +1426,52 @@ CREATE OR REPLACE PACKAGE BODY mld AS
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = m.prs_perslid_key)
LOOP
-- Roep daarmee (en de eigen parameters) fac.notifybedrijf aan
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
psrtnotificatie_key => psrtnotificatiekey,
pperslid_key => pperslid_key,
ptracking_oms => ptracking_oms,
prefkey => popdrkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.reference,
ptypeopdr_key => bedrijfrec.mld_typeopdr_key,
plocatie_key => bedrijfrec.alg_locatie_key,
ptrackingkey => ptrackingkey);
teverzenden_datum => bedrijfrec.mld_opdr_teverzenden_datum);
END LOOP;
END;
PROCEDURE notifymeldingbedrijven (pmldkey NUMBER,
ptrackingkey NUMBER)
AS
BEGIN
FOR bedrijfrec
IN (SELECT b.prs_bedrijf_key,
'MG' bedrijfadres_type, -- Meldingen generiek
COALESCE (l1.alg_locatie_key, l2.alg_locatie_key) alg_locatie_key,
COALESCE (l1.alg_locatie_email, l2.alg_locatie_email) alg_locatie_email,
m.mld_melding_key reference,
d.prs_bedrijf_key persoon_bedrijf_key -- van de melder, niet de uitvoerende
FROM mld_melding m,
mld_adres ma,
alg_locatie l1,
alg_locatie l2,
prs_perslid p,
prs_v_afdeling d,
prs_bedrijf b
WHERE m.mld_melding_key = pmldkey
AND EXISTS
(SELECT 1
FROM prs_bedrijfadres ba
WHERE ba.prs_bedrijf_key = b.prs_bedrijf_key AND ba.prs_bedrijfadres_type = 'MG')
AND m.mld_adres_key = ma.mld_adres_key(+)
AND ma.alg_locatie_key = l1.alg_locatie_key(+)
AND m.mld_alg_locatie_key = l2.alg_locatie_key(+)
AND d.prs_afdeling_key = p.prs_afdeling_key
AND p.prs_perslid_key = m.prs_perslid_key)
LOOP
fac.notifybedrijf (pbedrijf_key => bedrijfrec.prs_bedrijf_key,
pbedrijfadres_type => bedrijfrec.bedrijfadres_type,
prefkey => pmldkey,
ptrackingkey => ptrackingkey,
preference => bedrijfrec.reference,
plocatie_key => bedrijfrec.alg_locatie_key);
END LOOP;
END;