PNBR#29314 bestellingen; notificatie voor backoffice
svn path=/Database/trunk/; revision=22239
This commit is contained in:
119
BES/BES_PAC.SRC
119
BES/BES_PAC.SRC
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1903,6 +1903,7 @@ DEF_FAC_SRTNOT('BES2SX', 0, 'Bestelopdracht ##KEY## is niet verzonden', '',
|
||||
DEF_FAC_SRTNOT('BES2CO', 0, 'Bestelopdracht ##KEY## is bevestigd', '', '0', 'bestelopdr', 0); /* naar 4 */
|
||||
DEF_FAC_SRTNOT('BES2CA', 0, 'Bestelopdracht ##KEY## is geannuleerd', '', '0', 'bestelopdr', 0); /* naar 8 */
|
||||
DEF_FAC_SRTNOT('BES2UP', 0, 'Bestelopdracht ##KEY## is gewijzigd', '', '0', 'bestelopdr', 0);
|
||||
DEF_FAC_SRTNOT('BES2BO', 0, 'Facilitor: Er is een nieuwe bestelling ##KEY## (##DISC##)', 'bes/bes_bestelling.asp?urole=bo&bes_key=', '0', 'bestelling', 0);
|
||||
|
||||
DEF_FAC_SRTNOT('BEZMUT', 1, 'Gegevens van uw bezoek ##KEY## (##NAAM## op ##DATUM##) zijn geregistreerd', 'bez/bez_afspraak.asp?afspr_key=', '0', 'afspraak', 0);
|
||||
DEF_FAC_SRTNOT('BEZUPD', 0, 'Uw afspraak ##KEY## is gewijzigd', 'bez/bez_afspraak.asp?afspr_key=', '0', 'afspraak', 0);
|
||||
|
||||
@@ -81,6 +81,7 @@ START_FACMGT_LCL(NULL, NULL)
|
||||
FACMGT_LCL('Backoffice bestellimiet4' , 'Back office purchase order limit4', 'Innendienst Bestellungsgrenze4', 'Limit4 de commande du back-office')
|
||||
FACMGT_LCL('Backoffice bestellimiet5' , 'Back office purchase order limit5', 'Innendienst Bestellungsgrenze5', 'Limit5 de commande du back-office')
|
||||
FACMGT_LCL('Backoffice notificeren (MLD2BO)' , 'Notify back office (MLD2BO)', 'Innendienst notifizieren (MLD2BO)', 'Notifier back-office')
|
||||
FACMGT_LCL('Backoffice notificeren (BES2BO)' , 'Notify back office (BES2BO)', 'Innendienst notifizieren (BES2BO)', 'Notifier back-office')
|
||||
FACMGT_LCL('Bedrijf' , 'Company', 'Betrieb', 'Enterprise')
|
||||
FACMGT_LCL('Behandelgroep', 'Treatment group', 'Behandlungsgruppe', 'Groupe de traitement')
|
||||
FACMGT_LCL('Bestelgegevens' , 'Purchase orders data', 'Bestellungsdaten', 'Donn<6E>es de commande')
|
||||
|
||||
@@ -2787,6 +2787,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
lnotify mld_disc_params.mld_disc_params_notify%TYPE;
|
||||
lmnotify mld_stdmelding.mld_stdmelding_notify%TYPE;
|
||||
lbonotify mld_disc_params.mld_disc_params_bonotify%TYPE;
|
||||
lbonotify_bes bes_disc_params.bes_disc_params_bonotify%TYPE;
|
||||
lworkflowstep_key mld_melding.mld_workflowstep_key%TYPE;
|
||||
lstart_key mld_melding.mld_melding_start_key%TYPE;
|
||||
luitvtype mld_v_uitvoerende.TYPE%TYPE;
|
||||
@@ -3160,18 +3161,38 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
THEN
|
||||
bericht := bes.bessprintf (loms, prefkey);
|
||||
END IF;
|
||||
|
||||
SELECT prs_perslid_key, mld_adres_key_lev
|
||||
INTO lreceiver, lmld_adres_key
|
||||
FROM bes_bestelling
|
||||
WHERE bes_bestelling_key = prefkey;
|
||||
|
||||
--
|
||||
SELECT prs_perslid_key
|
||||
, mld_adres_key_lev
|
||||
, bes_disc_params_bonotify
|
||||
INTO lreceiver
|
||||
, lmld_adres_key
|
||||
, lbonotify_bes
|
||||
FROM bes_disc_params dp
|
||||
, bes_discipline d
|
||||
, bes_srtgroep sg
|
||||
, bes_srtdeel sd
|
||||
, bes_bestelling_item bi
|
||||
, bes_bestelling bb
|
||||
WHERE d.ins_discipline_key = dp.bes_ins_discipline_key
|
||||
AND d.ins_discipline_key = sg.ins_discipline_key
|
||||
AND sg.bes_srtgroep_key = sd.bes_srtgroep_key
|
||||
AND sd.bes_srtdeel_key = bi.bes_srtdeel_key
|
||||
AND bi.bes_bestelling_key = bb.bes_bestelling_key
|
||||
AND bb.bes_bestelling_key = prefkey;
|
||||
--
|
||||
-- Bij BESACP willen we *ook* de goedkeurders inlichten
|
||||
IF lcode = 'BESACP'
|
||||
THEN
|
||||
bes.notifybesgoedkeurders (prefkey);
|
||||
END IF;
|
||||
|
||||
--
|
||||
-- Laat de backoffice weten dat er een nieuwe bestelling is
|
||||
IF lcode = 'BESNEW' AND lbonotify_bes = 1
|
||||
THEN
|
||||
bes.notifybackoffice (prefkey);
|
||||
END IF;
|
||||
--
|
||||
-- Bepaal de afzender
|
||||
-- die komt van de (strikt: een) catalogus van de artikelen uit deze bestelling
|
||||
-- of anders bepaald door de locatie van het afleveradres
|
||||
@@ -3196,7 +3217,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
|
||||
INTO lsender
|
||||
FROM mld_adres ma, alg_locatie l
|
||||
WHERE lmld_adres_key = ma.mld_adres_key(+)
|
||||
AND ma.alg_locatie_key = l.alg_locatie_key(+);
|
||||
AND ma.alg_locatie_key = l.alg_locatie_key(+);
|
||||
END IF;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
|
||||
@@ -59,6 +59,14 @@ ALTER TABLE mld_opdr ADD
|
||||
NUMBER(11,2)
|
||||
);
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////// PNBR#29314
|
||||
ALTER TABLE bes_disc_params ADD bes_disc_params_bonotify NUMBER(1) DEFAULT 0;
|
||||
DEF_FAC_SRTNOT('BES2BO', 0, 'Facilitor: Er is een nieuwe bestelling ##KEY## (##DISC##)', 'bes/bes_bestelling.asp?urole=bo&bes_key=', '0', 'bestelling', 0);
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user