FSN#35107 tracken van 2bo-achtige notificaties
svn path=/Database/trunk/; revision=27829
This commit is contained in:
@@ -1381,6 +1381,10 @@ AS
|
||||
ldisc_oms bes_discipline.ins_discipline_omschrijving%TYPE;
|
||||
loms fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
bericht fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
lnrreceivers NUMBER;
|
||||
lreceivers fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
lreceivers1 fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
ltracking VARCHAR2(4000); -- moet tijdelijk groter dan fac_srtnotificatie.fac_srtnotificatie_oms%TYPE kunnen zijn
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT DISTINCT
|
||||
@@ -1416,6 +1420,8 @@ AS
|
||||
|
||||
bericht := bes.bessprintf (loms, pbeskey, ldisc_oms); -- de variabelen invullen
|
||||
|
||||
lnrreceivers := 0;
|
||||
lreceivers := '';
|
||||
FOR boer
|
||||
IN (SELECT g.prs_perslid_key
|
||||
FROM fac_v_webgebruiker g, fac_functie f, prs_perslid p, prs_v_afdeling d
|
||||
@@ -1459,7 +1465,29 @@ AS
|
||||
2,
|
||||
NULL
|
||||
);
|
||||
IF lnrreceivers = 0 THEN
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
ELSE
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers1
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
lreceivers := lreceivers||', '||lreceivers1;
|
||||
END IF;
|
||||
lnrreceivers := lnrreceivers+1;
|
||||
END LOOP;
|
||||
IF lnrreceivers > 0 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(lnrreceivers);
|
||||
ltracking := lcl.l ('lcl_bes_notification_sent_to');
|
||||
--ltracking := 'Notitificatie ''{0}'' verstuurd aan {1}';
|
||||
ltracking := REPLACE (ltracking, '{0}', bericht);
|
||||
ltracking := REPLACE (ltracking, '{1}', lreceivers);
|
||||
DBMS_OUTPUT.PUT_LINE(ltracking);
|
||||
fac.trackaction ('#BESMAI', pbeskey, NULL, NULL, SUBSTR(ltracking,1,2048)); -- maxlengte van fac_srtnotificatie_oms
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
@@ -1486,6 +1514,10 @@ AS
|
||||
lfunctiecode fac_functie.fac_functie_code%TYPE;
|
||||
lsender mld_discipline.ins_discipline_email%TYPE;
|
||||
bericht fac_srtnotificatie.fac_srtnotificatie_oms%TYPE; -- kan te kort zijn na substitutie
|
||||
lnrreceivers NUMBER;
|
||||
lreceivers fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
lreceivers1 fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
ltracking VARCHAR2(4000); -- moet tijdelijk groter dan fac_srtnotificatie.fac_srtnotificatie_oms%TYPE kunnen zijn
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT COALESCE(ma.alg_locatie_key, -1),
|
||||
@@ -1600,6 +1632,8 @@ AS
|
||||
|
||||
bericht := bes.bessprintf (loms, pbeskey, ''); -- de variabelen invullen
|
||||
|
||||
lnrreceivers := 0;
|
||||
lreceivers := '';
|
||||
FOR boer
|
||||
IN (SELECT g.prs_perslid_key
|
||||
FROM fac_v_webgebruiker g, fac_functie f, prs_perslid p
|
||||
@@ -1638,7 +1672,30 @@ AS
|
||||
2,
|
||||
lsender
|
||||
);
|
||||
IF lnrreceivers = 0 THEN
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
ELSE
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers1
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
lreceivers := lreceivers||', '||lreceivers1;
|
||||
END IF;
|
||||
lnrreceivers := lnrreceivers+1;
|
||||
END LOOP;
|
||||
IF lnrreceivers > 0 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(lnrreceivers);
|
||||
ltracking := lcl.l ('lcl_ord_notification_sent_to');
|
||||
--ltracking := 'Notitificatie ''{0}'' verstuurd aan {1}';
|
||||
DBMS_OUTPUT.PUT_LINE(ltracking);
|
||||
ltracking := REPLACE (ltracking, '{0}', bericht);
|
||||
ltracking := REPLACE (ltracking, '{1}', lreceivers);
|
||||
DBMS_OUTPUT.PUT_LINE(ltracking);
|
||||
fac.trackaction ('#BES2MA', pbeskey, NULL, NULL, SUBSTR(ltracking,1,2048)); -- maxlengte van fac_srtnotificatie_oms
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
|
||||
@@ -517,6 +517,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
lsrtnoticode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
|
||||
lstatus mld_melding.mld_melding_status%TYPE;
|
||||
bericht fac_srtnotificatie.fac_srtnotificatie_oms%TYPE; -- kan te kort zijn na substitutie
|
||||
lnrreceivers NUMBER;
|
||||
lreceivers fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
lreceivers1 fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
ltracking VARCHAR2(4000); -- moet tijdelijk groter dan fac_srtnotificatie.fac_srtnotificatie_oms%TYPE kunnen zijn
|
||||
BEGIN
|
||||
BEGIN
|
||||
-- De vakgroep (discipline) setting MLD_DISC_PARAMS_BONOTIFY geeft aan of de notificatie moeten worden verstuurd.
|
||||
@@ -605,6 +609,8 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
lnrreceivers := 0;
|
||||
lreceivers := '';
|
||||
FOR boer
|
||||
IN (SELECT g.prs_perslid_key
|
||||
FROM fac_v_webgebruiker g, fac_functie f, prs_perslid p, prs_v_afdeling d
|
||||
@@ -648,14 +654,37 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
lspoed, -- 1,2,3,4
|
||||
NULL
|
||||
);
|
||||
IF lnrreceivers = 0 THEN
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
ELSE
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers1
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
lreceivers := lreceivers||', '||lreceivers1;
|
||||
END IF;
|
||||
lnrreceivers := lnrreceivers+1;
|
||||
END LOOP;
|
||||
|
||||
IF lnrreceivers > 0 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(lnrreceivers);
|
||||
ltracking := lcl.l ('lcl_mld_notification_sent_to');
|
||||
--ltracking := 'Notitificatie ''{0}'' verstuurd aan {1}';
|
||||
DBMS_OUTPUT.PUT_LINE(ltracking);
|
||||
ltracking := REPLACE (ltracking, '{0}', bericht);
|
||||
ltracking := REPLACE (ltracking, '{1}', lreceivers);
|
||||
DBMS_OUTPUT.PUT_LINE(ltracking);
|
||||
fac.trackaction ('#MLDMAI', pmeldingkey, NULL, NULL, SUBSTR(ltracking,1,2048)); -- maxlengte van fac_srtnotificatie_oms
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
RETURN;
|
||||
END;
|
||||
END;
|
||||
|
||||
-- Stuur alle mogelijke opdracht goedkeurders een bericht als de opdracht status 10 heeft.
|
||||
-- Naar wie, wordt reversed opgezocht op basis van toegekende autorisaties.
|
||||
-- Lijkt heel erg sterk op bovenstaande notifybackoffice
|
||||
@@ -677,6 +706,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
lfunctiecode fac_functie.fac_functie_code%TYPE;
|
||||
lsender mld_discipline.ins_discipline_email%TYPE;
|
||||
bericht fac_srtnotificatie.fac_srtnotificatie_oms%TYPE; -- kan te kort zijn na substitutie
|
||||
lnrreceivers NUMBER;
|
||||
lreceivers fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
lreceivers1 fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
ltracking VARCHAR2(4000); -- moet tijdelijk groter dan fac_srtnotificatie.fac_srtnotificatie_oms%TYPE kunnen zijn
|
||||
BEGIN
|
||||
BEGIN
|
||||
SELECT m.mld_alg_locatie_key, p.prs_afdeling_key, stdm.mld_ins_discipline_key, m.mld_melding_spoed,
|
||||
@@ -698,7 +731,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
AND o.mld_statusopdr_key = 10
|
||||
AND m.mld_melding_key = o.mld_melding_key
|
||||
AND o.mld_opdr_key = popdrkey;
|
||||
|
||||
IF lopdr_kosten <= lbestellimiet -- Dit eerst testen i.v.m. Ter goedkeuring. Verder moet sowieso goedgekeurd worden.
|
||||
THEN
|
||||
RETURN; -- Het bedrag is lager als de eerste limiet. De opdracht hoeft niet goed gekeurd te worden, dus een lege fiatteurs array teruggeven.
|
||||
@@ -727,7 +759,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
ELSE
|
||||
RETURN; -- Het goedgekeurde bedrag zit al boven de vijfde limiet. Geen approval meer nodig.
|
||||
END IF;
|
||||
|
||||
-- These notifications are now sent on behalf of the system, what might be the local FM organisation
|
||||
SELECT MAX (COALESCE(cd.ins_discipline_email, l.alg_locatie_email)) email
|
||||
INTO lsender
|
||||
@@ -741,7 +772,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
AND sm.mld_ins_discipline_key = cd.ins_discipline_key
|
||||
AND m.mld_alg_locatie_key = l.alg_locatie_key
|
||||
AND o.mld_opdr_key = popdrkey;
|
||||
|
||||
-- Als die er niet is sprongen we al naar de exception
|
||||
-- Als die er wel is, gaan we verder
|
||||
SELECT lcl.x('fac_srtnotificatie_oms', fac_srtnotificatie_key, fac_srtnotificatie_oms)
|
||||
@@ -752,7 +782,6 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
-- Die laatste conditie is optimalisatie. Met code 0 is de notificatie feitelijk uitgeschakeld en
|
||||
-- hoef ik dus ook niet duur te bepalen naar wie een notificatie niet gestuurd hoeft
|
||||
-- Als deze niets oplevert gaan we dus ook weer naar de exception
|
||||
|
||||
-- Vertaal melding-spoed (1-4) naar email-spoed (1-3), 3=normaal
|
||||
IF lspoed < 3
|
||||
THEN
|
||||
@@ -763,9 +792,10 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
ELSE
|
||||
lspoed := 2;
|
||||
END IF;
|
||||
|
||||
bericht := mld.opdrsprintf (loms, popdrkey); -- de variabelen invullen
|
||||
|
||||
lnrreceivers := 0;
|
||||
lreceivers := '';
|
||||
FOR boer
|
||||
IN (SELECT g.prs_perslid_key
|
||||
FROM fac_v_webgebruiker g, fac_functie f, prs_perslid p, prs_v_afdeling d
|
||||
@@ -808,7 +838,30 @@ CREATE OR REPLACE PACKAGE BODY mld AS
|
||||
lspoed, -- 1,2,3,4
|
||||
lsender
|
||||
);
|
||||
IF lnrreceivers = 0 THEN
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
ELSE
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers1
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key;
|
||||
lreceivers := lreceivers||', '||lreceivers1;
|
||||
END IF;
|
||||
lnrreceivers := lnrreceivers+1;
|
||||
END LOOP;
|
||||
IF lnrreceivers > 0 THEN
|
||||
DBMS_OUTPUT.PUT_LINE(lnrreceivers);
|
||||
ltracking := lcl.l ('lcl_ord_notification_sent_to');
|
||||
--ltracking := 'Notitificatie ''{0}'' verstuurd aan {1}';
|
||||
DBMS_OUTPUT.PUT_LINE(ltracking);
|
||||
ltracking := REPLACE (ltracking, '{0}', bericht);
|
||||
ltracking := REPLACE (ltracking, '{1}', lreceivers);
|
||||
DBMS_OUTPUT.PUT_LINE(ltracking);
|
||||
fac.trackaction ('#ORDMAI', popdrkey, NULL, NULL, SUBSTR(ltracking,1,2048)); -- maxlengte van fac_srtnotificatie_oms
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
|
||||
Reference in New Issue
Block a user