diff --git a/FAC/FAC_PAC.SRC b/FAC/FAC_PAC.SRC index 35c9a2f0..bded7d19 100644 --- a/FAC/FAC_PAC.SRC +++ b/FAC/FAC_PAC.SRC @@ -2863,6 +2863,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS lmldbehandelaar mld_melding.mld_melding_behandelaar_key%TYPE; lafs_key bez_afspraak.bez_afspraak_key%TYPE; lins_deel_ley ins_deel.ins_deel_key%TYPE; + lpoolnotified NUMBER; BEGIN -- Het gaat om een notificatie bij een entiteit prefkey, -- waarvan het type alleen nog moet worden bepaald via @@ -2884,6 +2885,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS lrefkey := prefkey; -- dan kunnen we bij reservering nog wijzigen bericht := ptracking_oms; -- als die leeg is zoeken we zelf + lpoolnotified := 0; -- welk type? SELECT fac_srtnotificatie_xmlnode, @@ -3447,11 +3449,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS IF lcode = 'BEZDON' THEN lcode2 := 'BEZDO2'; - res.notifypool(prefkey, lcode2); - ELSIF lcode = 'BEZDO2' - THEN - res.notifypool(prefkey, lcode); - lcode := 'BEZDO2'; -- Ook undo-checkin behandelen als checkin. + lpoolnotified := res.notifypool(prefkey, lcode2); ELSIF lcode = 'BEZUNI' THEN lcode2 := 'BEZDO2'; @@ -3649,7 +3647,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS IF lcode2 IS NOT NULL AND lreceiver2 IS NOT NULL THEN - IF NOT(lcode = 'BEZDON' AND lcode2 = 'BEZDO2') THEN + IF lpoolnotified = 0 THEN fac.putnotificationsrtprio (pperslid_key, lreceiver2, lcode2, diff --git a/RES/RES_PAC.SRC b/RES/RES_PAC.SRC index 61c21c3b..b3d74648 100644 --- a/RES/RES_PAC.SRC +++ b/RES/RES_PAC.SRC @@ -32,7 +32,7 @@ CREATE OR REPLACE PACKAGE res AS FUNCTION getartikelprijs (pres_rsv_artikel_key IN NUMBER) RETURN NUMBER; FUNCTION getdeelresprijs (pres_rsv_ruimte_key IN NUMBER) RETURN NUMBER; FUNCTION sprintf (ps IN VARCHAR2 , pres_rsv_ruimte_key IN NUMBER) RETURN VARCHAR2; - PROCEDURE notifypool (pbez_bezoeker_key IN NUMBER, pcode IN VARCHAR2); + FUNCTION notifypool (pbez_bezoeker_key IN NUMBER, pcode IN VARCHAR2) RETURN NUMBER; END res; / @@ -1701,7 +1701,8 @@ AS s := REPLACE (s, ' ()', ''); RETURN s; END; - PROCEDURE notifypool (pbez_bezoeker_key IN NUMBER, pcode IN VARCHAR2) AS + FUNCTION notifypool (pbez_bezoeker_key IN NUMBER, pcode IN VARCHAR2) + RETURN NUMBER IS lnrreceivers NUMBER; lcode fac_srtnotificatie.fac_srtnotificatie_code%TYPE; lreceivers fac_srtnotificatie.fac_srtnotificatie_oms%TYPE; @@ -1710,7 +1711,9 @@ AS lbezoeker bez_bezoekers.bez_afspraak_naam%TYPE; lmailfrom alg_locatie.alg_locatie_email%TYPE; ltracking VARCHAR2(4000); -- moet tijdelijk groter dan fac_srtnotificatie.fac_srtnotificatie_oms%TYPE kunnen zijn + s NUMBER; BEGIN + s := 0; IF (pcode = 'BEZDO2' OR pcode = 'BEZUNI') THEN SELECT bez_afspraak_naam INTO lbezoeker @@ -1729,6 +1732,15 @@ AS lnrreceivers := 0; lreceivers := ''; + SELECT l.alg_locatie_email + INTO lmailfrom + FROM bez_bezoekers b + , bez_afspraak a + , alg_locatie l + WHERE b.bez_afspraak_key = a.bez_afspraak_key + AND a.alg_locatie_key = l.alg_locatie_key + AND b.bez_bezoekers_key = pbez_bezoeker_key; + FOR hosts IN (SELECT DISTINCT k.res_rsv_ruimte_host_key FROM res_rsv_ruimte k WHERE k.res_reservering_key = @@ -1746,15 +1758,6 @@ AS AND k.res_rsv_ruimte_verwijder IS NULL ) LOOP - SELECT l.alg_locatie_email - INTO lmailfrom - FROM bez_bezoekers b - , bez_afspraak a - , alg_locatie l - WHERE b.bez_afspraak_key = a.bez_afspraak_key - AND a.alg_locatie_key = l.alg_locatie_key - AND b.bez_bezoekers_key = pbez_bezoeker_key; - fac.putnotificationsrtprio (NULL, hosts.res_rsv_ruimte_host_key, lcode, @@ -1778,6 +1781,7 @@ AS lreceivers := lreceivers||', '||lreceivers1; END IF; lnrreceivers := lnrreceivers+1; + s := 1; END LOOP; IF lnrreceivers > 0 THEN @@ -1790,6 +1794,7 @@ AS fac.trackaction ('#BEZDO2', pbez_bezoeker_key, NULL, NULL, SUBSTR(ltracking,1,2048)); -- maxlengte van fac_srtnotificatie_oms END IF; END IF; + RETURN s; END; END res;