PNBR#29314 bestellingen; notificatie voor backoffice

svn path=/Database/trunk/; revision=22239
This commit is contained in:
Erik Groener
2014-08-01 09:21:31 +00:00
parent 24739fe082
commit b0f31003f4
6 changed files with 150 additions and 18 deletions

View File

@@ -61,6 +61,7 @@ AS
PROCEDURE setbestelopdrstatus (pbestelopdrkey IN NUMBER, pstatus IN NUMBER, puserkey IN NUMBER);
PROCEDURE updatebestellingstatus (pbestelling_key IN NUMBER, user_key IN NUMBER);
PROCEDURE updatebestelopdrstatus (pbestelopdr_key IN NUMBER, user_key IN NUMBER);
PROCEDURE notifybackoffice (pbeskey IN NUMBER);
PROCEDURE notifybesgoedkeurders (pbeskey IN NUMBER);
PROCEDURE acceptopdracht (pbestelopdr_key IN NUMBER, user_key IN NUMBER, presulttext IN VARCHAR2);
PROCEDURE rejectopdracht (pbestelopdr_key IN NUMBER, user_key IN NUMBER, presulttext IN VARCHAR2);
@@ -1366,6 +1367,95 @@ AS
END IF;
END;
-- Stuur alle mogelijke backofficemedewerkers een bericht als de
-- melding NIEUW is. Naar wie, wordt reversed opgezocht op basis van
-- toegekende autorisaties
-- (zoals bij de lijst van BO-behandelaars in suggest/persoonfilter.inc)
PROCEDURE notifybackoffice (pbeskey IN NUMBER)
AS
lloc_key mld_adres.alg_locatie_key%TYPE;
lafd_key prs_perslid.prs_afdeling_key%TYPE;
ldisc_key bes_srtgroep.ins_discipline_key%TYPE;
loms fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
bericht fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
BEGIN
BEGIN
SELECT COALESCE(ma.alg_locatie_key, -1),
p.prs_afdeling_key,
bsg.ins_discipline_key
INTO lloc_key,
lafd_key,
ldisc_key
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_srtdeel bsd,
bes_srtgroep bsg,
prs_perslid p,
mld_adres ma
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_srtdeel_key = bsd.bes_srtdeel_key
AND bsd.bes_srtgroep_key = bsg.bes_srtgroep_key
AND b.prs_perslid_key = p.prs_perslid_key
AND b.mld_adres_key_lev = ma.mld_adres_key
AND b.bes_bestelling_status = 2
AND b.bes_bestelling_key = pbeskey; -- op dit moment nog alleen voor NIEUWE bestellingen
-- 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)
INTO loms
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'BES2BO';
bericht := bes.bessprintf (loms, pbeskey); -- de variabelen invullen
FOR boer
IN (SELECT g.prs_perslid_key
FROM fac_v_webgebruiker g, fac_functie f, prs_perslid p
WHERE g.fac_functie_key = f.fac_functie_key
AND g.ins_discipline_key = ldisc_key
AND g.prs_perslid_key = p.prs_perslid_key
AND (g.fac_gebruiker_prs_level_write = -1
OR (g.fac_gebruiker_prs_level_write < 9
AND p.prs_afdeling_key IN
(SELECT prs_afdeling_key
FROM prs_v_afdeling_familie a
WHERE a.prs_afdeling_elder_key IN
(SELECT aa.prs_afdeling_elder_key
FROM prs_v_afdeling_familie aa
WHERE aa.prs_afdeling_key = lafd_key
AND aa.niveau = g.fac_gebruiker_prs_level_write))))
-- in ASP: if (params.loc_key>0)
AND (g.fac_gebruiker_alg_level_write = -1
OR (g.fac_gebruiker_alg_level_write < 9
AND lloc_key IN
(SELECT alg_locatie_key
FROM fac_v_my_locations
WHERE prs_perslid_key = p.prs_perslid_key
AND niveau = fac_gebruiker_alg_level_write)))
AND fac_functie_code = 'WEB_BESBOF')
LOOP
fac.putnotificationsrtprio (NULL,
boer.prs_perslid_key,
'BES2BO',
pbeskey,
bericht,
NULL,
NULL,
NULL,
NULL,
2,
NULL
);
END LOOP;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
RETURN;
END;
END;
-- Stuur alle mogelijke bestelling goedkeurders een bericht als de bestelling status 3 heeft.
-- Naar wie, wordt reversed opgezocht op basis van toegekende autorisaties.
PROCEDURE notifybesgoedkeurders (pbeskey IN NUMBER)
@@ -1833,24 +1923,33 @@ AS
IS
s varchar2 (2048 CHAR);
lbes_bestelling_datum bes_bestelling.bes_bestelling_datum%TYPE;
lbes_discipline bes_discipline.ins_discipline_omschrijving%TYPE;
BEGIN
s := ps;
-- We support substitution of placeholders in the messages
-- ##KEY## = bes_bestelling_key
-- ##DATUM## = bes_bestelling_datum
-- ##DISC## = ins_discipline_omschrijving
IF INSTR2 (s, '#') > 0
THEN
SELECT bes_bestelling_datum
SELECT b.bes_bestelling_datum
, bd.ins_discipline_omschrijving
INTO lbes_bestelling_datum
FROM bes_bestelling
WHERE bes_bestelling_key = pbes_bestelling_key;
s :=
REPLACE (REPLACE (s,
'##KEY##',
NUMBER_TO_CHAR (pbes_bestelling_key)
),
'##DATUM##',
DATE_TO_CHAR (lbes_bestelling_datum, 'DD-MM-YY HH24:MI')
, lbes_discipline
FROM bes_bestelling b
, bes_bestelling_item bi
, bes_srtdeel sd
, bes_srtgroep sg
, bes_discipline bd
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = bd.ins_discipline_key
AND b.bes_bestelling_key = pbes_bestelling_key;
s := REPLACE( REPLACE( REPLACE( s
, '##KEY##', NUMBER_TO_CHAR (pbes_bestelling_key) )
, '##DATUM##', DATE_TO_CHAR (lbes_bestelling_datum, 'DD-MM-YY HH24:MI') )
, '##DISC##', lbes_discipline
);
END IF;

View File

@@ -449,6 +449,8 @@ CREATE_TABLE(bes_disc_params, 0)
NUMBER(1),
bes_disc_params_noti_opdr /* 1=notificeer besteller over bestelopdracht(en) */
NUMBER(1),
bes_disc_params_bonotify /* 1=notificeer BO als er een bestelling is */
NUMBER(1),
bes_disc_params_herfiat /* 0=nooit, 1=zie criteria, 2=altijd */
NUMBER(1),
bes_disc_params_herfiatpct