PNBR#29314 bestellingen; notificatie voor backoffice

svn path=/Database/trunk/; revision=22305
This commit is contained in:
Erik Groener
2014-08-12 13:23:08 +00:00
parent fd66d38779
commit cb512c9445
2 changed files with 32 additions and 46 deletions

View File

@@ -66,7 +66,7 @@ AS
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);
FUNCTION bestelopdr_tooltip (besopdrkey IN NUMBER) RETURN VARCHAR2;
FUNCTION bessprintf (ps IN varchar2, pbes_bestelling_key IN number)
FUNCTION bessprintf (ps IN varchar2, pbes_bestelling_key IN number, pbes_discipline IN VARCHAR2)
RETURN varchar2;
FUNCTION opdrsprintf (ps IN varchar2, pbes_bestelopdr_key IN number)
RETURN varchar2;
@@ -1377,28 +1377,32 @@ 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;
ldisc_oms bes_discipline.ins_discipline_omschrijving%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
bsg.ins_discipline_key,
bd.ins_discipline_omschrijving
INTO lloc_key,
lafd_key,
ldisc_key
ldisc_key,
ldisc_oms
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_srtdeel bsd,
bes_srtgroep bsg,
bes_discipline bd,
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 bsg.ins_discipline_key = bd.ins_discipline_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
@@ -1408,7 +1412,7 @@ AS
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'BES2BO';
bericht := bes.bessprintf (loms, pbeskey); -- de variabelen invullen
bericht := bes.bessprintf (loms, pbeskey, ldisc_oms); -- de variabelen invullen
FOR boer
IN (SELECT g.prs_perslid_key
@@ -1471,6 +1475,7 @@ AS
lbestellimiet3 bes_disc_params.bes_disc_params_bestellimiet3%TYPE;
lbestellimiet4 bes_disc_params.bes_disc_params_bestellimiet4%TYPE;
lbestellimiet5 bes_disc_params.bes_disc_params_bestellimiet5%TYPE;
lbonotify bes_disc_params.bes_disc_params_bonotify%TYPE;
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
@@ -1485,7 +1490,8 @@ AS
COALESCE (bdp.bes_disc_params_bestellimiet2, 0),
COALESCE (bdp.bes_disc_params_bestellimiet3, 0),
COALESCE (bdp.bes_disc_params_bestellimiet4, 0),
COALESCE (bdp.bes_disc_params_bestellimiet5, 0)
COALESCE (bdp.bes_disc_params_bestellimiet5, 0),
bdp.bes_disc_params_bonotify
INTO lloc_key,
lafd_key,
ldisc_key,
@@ -1495,7 +1501,8 @@ AS
lbestellimiet2,
lbestellimiet3,
lbestellimiet4,
lbestellimiet5
lbestellimiet5,
lbonotify
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_srtdeel bsd,
@@ -1520,10 +1527,15 @@ AS
bdp.bes_disc_params_bestellimiet2,
bdp.bes_disc_params_bestellimiet3,
bdp.bes_disc_params_bestellimiet4,
bdp.bes_disc_params_bestellimiet5;
bdp.bes_disc_params_bestellimiet5,
bdp.bes_disc_params_bonotify;
IF lbes_kosten <= lbestellimiet -- Dit eerst testen i.v.m. Acceptering. Verder moet sowieso geaccepteerd worden.
THEN
IF lbonotify = 1
THEN -- Er hoeft niet gefiatteerd te worden,
bes.notifybackoffice(pbeskey); -- dus stuur de backoffice een bericht dat er een nieuwe bestelling is.
END IF;
RETURN; -- Het bedrag is lager als de eerste limiet. De bestelling hoeft niet goed gekeurd te worden, dus een lege fiatteurs array teruggeven.
ELSIF (((fac.getsetting ('bes_approval_all') = 0 AND lbes_kosten >= lbestellimiet) OR
(fac.getsetting ('bes_approval_all') = 1 AND lbes_kosten <= lbestellimiet2)) AND
@@ -1547,7 +1559,11 @@ AS
THEN
lfunctiecode := 'WEB_BESGO5';
ELSE
RETURN; -- Het goedgekeurde bedrag zit al boven de vijfde limiet. Geen approval meer nodig.
IF lbonotify = 1
THEN -- De laatste fiatteur heeft de bestelling goedgekeurd,
bes.notifybackoffice(pbeskey); -- dus nu mag de backoffice het bericht krijgen dat er een nieuwe bestelling is.
END IF;
RETURN; -- Het goedgekeurde bedrag zit al boven de limiet. Geen approval meer nodig.
END IF;
-- These notifications are now sent on behalf of the system, what might be the local FM organisation
@@ -1575,7 +1591,7 @@ AS
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'BESAP1';
bericht := bes.bessprintf (loms, pbeskey); -- de variabelen invullen
bericht := bes.bessprintf (loms, pbeskey, ''); -- de variabelen invullen
FOR boer
IN (SELECT g.prs_perslid_key
@@ -1918,12 +1934,11 @@ AS
RETURN lret;
END;
FUNCTION bessprintf (ps IN varchar2, pbes_bestelling_key IN number)
FUNCTION bessprintf (ps IN varchar2, pbes_bestelling_key IN number, pbes_discipline IN VARCHAR2)
RETURN varchar2
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
@@ -1933,23 +1948,13 @@ AS
IF INSTR2 (s, '#') > 0
THEN
SELECT b.bes_bestelling_datum
, bd.ins_discipline_omschrijving
INTO lbes_bestelling_datum
, 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;
WHERE 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
, '##DISC##', pbes_discipline
);
END IF;

View File

@@ -2854,7 +2854,6 @@ 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;
@@ -3229,7 +3228,7 @@ CREATE OR REPLACE PACKAGE BODY fac AS
THEN
IF ptracking_oms IS NULL
THEN
bericht := bes.bessprintf (loms, prefkey);
bericht := bes.bessprintf (loms, prefkey, '');
END IF;
--
SELECT CASE WHEN fac.getsetting ('progress_notification_for') = 'true'
@@ -3237,22 +3236,10 @@ CREATE OR REPLACE PACKAGE BODY fac AS
ELSE prs_perslid_key
END receiver
, 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;
FROM bes_bestelling bb
WHERE bb.bes_bestelling_key = prefkey;
--
-- Bij BESACP willen we *ook* de goedkeurders inlichten
IF lcode = 'BESACP'
@@ -3260,12 +3247,6 @@ CREATE OR REPLACE PACKAGE BODY fac AS
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