GOUD#37603 Mail naar helpdesk zodra een voorziening gereserveerd wordt (RES2BO)
svn path=/Database/trunk/; revision=34040
This commit is contained in:
274
RES/RES_PAC.SRC
274
RES/RES_PAC.SRC
@@ -1858,10 +1858,10 @@ AS
|
||||
|
||||
PROCEDURE notifybackoffice (prsvkey IN NUMBER, pcode IN VARCHAR2)
|
||||
AS
|
||||
lloc_key alg_locatie.alg_locatie_key%TYPE;
|
||||
lroom_key alg_ruimte.alg_ruimte_key%TYPE;
|
||||
lafd_key prs_perslid.prs_afdeling_key%TYPE;
|
||||
ldisc_key res_disc_params.res_ins_discipline_key%TYPE;
|
||||
--lloc_key alg_locatie.alg_locatie_key%TYPE;
|
||||
--lroom_key alg_ruimte.alg_ruimte_key%TYPE;
|
||||
--lafd_key prs_perslid.prs_afdeling_key%TYPE;
|
||||
--ldisc_key res_disc_params.res_ins_discipline_key%TYPE;
|
||||
loms2bo fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
l2bomode fac_srtnotificatie.fac_srtnotificatie_mode%TYPE;
|
||||
lsrtnoticode fac_srtnotificatie.fac_srtnotificatie_code%TYPE;
|
||||
@@ -1876,75 +1876,6 @@ AS
|
||||
-- De discipline setting RES_DISC_PARAMS_BONOTIFY geeft aan of de notificatie moeten worden verstuurd.
|
||||
-- RES_DISC_PARAMS_BONOTIFY: 0=niet, 1=bof.
|
||||
--
|
||||
SELECT x.alg_locatie_key
|
||||
, x.res_discipline_key
|
||||
, x.prs_afdeling_key
|
||||
, x.alg_ruimte_key
|
||||
INTO lloc_key
|
||||
, ldisc_key
|
||||
, lafd_key
|
||||
, lroom_key
|
||||
FROM (
|
||||
SELECT rg.alg_locatie_key -- RES_RUIMTE
|
||||
, rg.res_discipline_key
|
||||
, p.prs_afdeling_key
|
||||
, rar.alg_ruimte_key
|
||||
FROM res_v_res_ruimte_gegevens rg
|
||||
, res_rsv_ruimte rr
|
||||
, prs_perslid p
|
||||
, res_alg_ruimte rar
|
||||
WHERE rg.res_ruimte_key = rar.res_ruimte_key
|
||||
AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||||
AND rg.res_ruimte_key = rar.res_ruimte_key
|
||||
AND rar.res_alg_ruimte_verwijder IS NULL
|
||||
AND TRUNC(rr.res_rsv_ruimte_van) = TRUNC(sysdate)
|
||||
AND rr.res_status_bo_key = 2
|
||||
AND rr.res_rsv_ruimte_key = prsvkey
|
||||
UNION
|
||||
SELECT g.alg_locatie_key -- RES_DEEL
|
||||
, d.res_discipline_key
|
||||
, p.prs_afdeling_key
|
||||
, rr.alg_ruimte_key
|
||||
FROM res_rsv_ruimte rr
|
||||
, res_rsv_deel rd
|
||||
, res_deel d
|
||||
, ins_deel i
|
||||
, prs_perslid p
|
||||
, alg_v_allonroerendgoed g
|
||||
WHERE i.ins_alg_ruimte_key = g.alg_ruimte_key
|
||||
AND i.ins_alg_ruimte_type = g.alg_type
|
||||
AND i.ins_deel_key = d.res_ins_deel_key
|
||||
AND rd.res_deel_key = d.res_deel_key
|
||||
AND rd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
||||
AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||||
AND TRUNC(rr.res_rsv_ruimte_van) = TRUNC(sysdate)
|
||||
AND rr.res_status_bo_key = 2
|
||||
AND rr.res_rsv_ruimte_key = prsvkey
|
||||
UNION
|
||||
SELECT rg.alg_locatie_key -- RES_ARTIKEL
|
||||
, a.res_discipline_key
|
||||
, p.prs_afdeling_key
|
||||
, rar.alg_ruimte_key
|
||||
FROM res_rsv_ruimte rr
|
||||
, res_rsv_artikel ra
|
||||
, res_artikel a
|
||||
, prs_perslid p
|
||||
, res_ruimte_opstelling ro
|
||||
, res_alg_ruimte rar
|
||||
, res_v_res_ruimte_gegevens rg
|
||||
WHERE rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
|
||||
AND ra.res_artikel_key = a.res_artikel_key
|
||||
AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||||
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||||
AND ro.res_ruimte_key = rar.res_alg_ruimte_key
|
||||
AND ro.res_ruimte_key = rg.res_ruimte_key
|
||||
AND TRUNC(rr.res_rsv_ruimte_van) = TRUNC(sysdate)
|
||||
AND rr.res_status_bo_key = 2
|
||||
AND rr.res_rsv_ruimte_key = prsvkey
|
||||
) x;
|
||||
--
|
||||
-- Als die er niet is springen we naar de exception.
|
||||
-- Als die er wel is, gaan we verder
|
||||
SELECT lcl.x('fac_srtnotificatie_oms', fac_srtnotificatie_key, fac_srtnotificatie_oms)
|
||||
, fac_srtnotificatie_mode
|
||||
INTO loms2bo
|
||||
@@ -1965,72 +1896,141 @@ AS
|
||||
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
|
||||
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 d.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND ( g.fac_gebruiker_prs_level_write = -1
|
||||
OR ( g.fac_gebruiker_prs_level_write = 0
|
||||
AND d.prs_bedrijf_key =
|
||||
(SELECT aa.prs_bedrijf_key
|
||||
FROM prs_v_afdeling aa
|
||||
WHERE aa.prs_afdeling_key = lafd_key
|
||||
)
|
||||
)
|
||||
OR ( g.fac_gebruiker_prs_level_write > 0
|
||||
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)
|
||||
-- Bij ruimte reservering wordt altijd een ruimte ingevuld die is gekoppeld aan alg_ruimte_key. Dus hier op ruimte niveau checken.
|
||||
AND (g.fac_gebruiker_alg_level_write = -1
|
||||
OR (g.fac_gebruiker_alg_level_write < 9
|
||||
AND lroom_key IN
|
||||
(SELECT alg_ruimte_key
|
||||
FROM fac_v_my_rooms
|
||||
WHERE prs_perslid_key = p.prs_perslid_key
|
||||
AND niveau = fac_gebruiker_alg_level_write)))
|
||||
AND fac_functie_code = lfunctiecode)
|
||||
FOR disc
|
||||
IN (SELECT x.alg_locatie_key
|
||||
, x.res_discipline_key
|
||||
, x.prs_afdeling_key
|
||||
, x.alg_ruimte_key
|
||||
FROM (
|
||||
SELECT rg.alg_locatie_key -- RES_RUIMTE
|
||||
, rg.res_discipline_key
|
||||
, p.prs_afdeling_key
|
||||
, ra.alg_ruimte_key
|
||||
FROM res_v_res_ruimte_gegevens rg
|
||||
, res_alg_ruimte ra
|
||||
, res_ruimte_opstelling ro
|
||||
, res_rsv_ruimte rr
|
||||
, prs_perslid p
|
||||
WHERE rg.res_ruimte_key = ro.res_ruimte_key
|
||||
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||||
AND ra.res_ruimte_key = ro.res_ruimte_key
|
||||
AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||||
AND TRUNC(rr.res_rsv_ruimte_van) = TRUNC(sysdate)
|
||||
AND rr.res_status_bo_key = 2
|
||||
AND rr.res_rsv_ruimte_key = prsvkey
|
||||
UNION
|
||||
SELECT g.alg_locatie_key -- RES_DEEL
|
||||
, d.res_discipline_key
|
||||
, p.prs_afdeling_key
|
||||
, rr.alg_ruimte_key
|
||||
FROM res_rsv_ruimte rr
|
||||
, res_rsv_deel rd
|
||||
, res_deel d
|
||||
, ins_deel i
|
||||
, prs_perslid p
|
||||
, alg_v_allonroerendgoed g
|
||||
WHERE i.ins_alg_ruimte_key = g.alg_ruimte_key
|
||||
AND i.ins_alg_ruimte_type = g.alg_type
|
||||
AND i.ins_deel_key = d.res_ins_deel_key
|
||||
AND rd.res_deel_key = d.res_deel_key
|
||||
AND rd.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
|
||||
AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||||
AND TRUNC(rr.res_rsv_ruimte_van) = TRUNC(sysdate)
|
||||
AND rd.res_status_bo_key = 2
|
||||
AND rr.res_rsv_ruimte_key = prsvkey
|
||||
UNION
|
||||
SELECT rg.alg_locatie_key -- RES_ARTIKEL
|
||||
, a.res_discipline_key
|
||||
, p.prs_afdeling_key
|
||||
, rar.alg_ruimte_key
|
||||
FROM res_rsv_ruimte rr
|
||||
, res_rsv_artikel ra
|
||||
, res_artikel a
|
||||
, prs_perslid p
|
||||
, res_ruimte_opstelling ro
|
||||
, res_alg_ruimte rar
|
||||
, res_v_res_ruimte_gegevens rg
|
||||
WHERE rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
|
||||
AND ra.res_artikel_key = a.res_artikel_key
|
||||
AND rr.res_rsv_ruimte_host_key = p.prs_perslid_key
|
||||
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||||
AND ro.res_ruimte_key = rar.res_alg_ruimte_key
|
||||
AND ro.res_ruimte_key = rg.res_ruimte_key
|
||||
AND TRUNC(rr.res_rsv_ruimte_van) = TRUNC(sysdate)
|
||||
AND ra.res_status_bo_key = 2
|
||||
AND rr.res_rsv_ruimte_key = prsvkey
|
||||
) x
|
||||
)
|
||||
LOOP
|
||||
fac.putnotificationsrtprio (NULL,
|
||||
boer.prs_perslid_key,
|
||||
lsrtnoticode,
|
||||
prsvkey,
|
||||
bericht,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
FOR boer
|
||||
IN (SELECT g.prs_perslid_key
|
||||
FROM fac_v_webgebruiker g
|
||||
, fac_functie f
|
||||
, prs_perslid p
|
||||
, prs_v_afdeling d
|
||||
WHERE g.fac_functie_key = f.fac_functie_key
|
||||
AND g.ins_discipline_key = disc.res_discipline_key
|
||||
AND g.prs_perslid_key = p.prs_perslid_key
|
||||
AND d.prs_afdeling_key = p.prs_afdeling_key
|
||||
AND ( g.fac_gebruiker_prs_level_write = -1
|
||||
OR ( g.fac_gebruiker_prs_level_write = 0
|
||||
AND d.prs_bedrijf_key =
|
||||
(SELECT aa.prs_bedrijf_key
|
||||
FROM prs_v_afdeling aa
|
||||
WHERE aa.prs_afdeling_key = disc.prs_afdeling_key
|
||||
)
|
||||
)
|
||||
OR ( g.fac_gebruiker_prs_level_write > 0
|
||||
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 = disc.prs_afdeling_key
|
||||
AND aa.niveau = g.fac_gebruiker_prs_level_write
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
-- in ASP: if (params.loc_key>0)
|
||||
-- Bij ruimte reservering wordt altijd een ruimte ingevuld die is gekoppeld aan alg_ruimte_key. Dus hier op ruimte niveau checken.
|
||||
AND (g.fac_gebruiker_alg_level_write = -1
|
||||
OR (g.fac_gebruiker_alg_level_write < 9
|
||||
AND disc.alg_ruimte_key IN
|
||||
(SELECT alg_ruimte_key
|
||||
FROM fac_v_my_rooms
|
||||
WHERE prs_perslid_key = p.prs_perslid_key
|
||||
AND niveau = fac_gebruiker_alg_level_write
|
||||
)))
|
||||
AND fac_functie_code = lfunctiecode
|
||||
)
|
||||
LOOP
|
||||
fac.putnotificationsrtprio (NULL,
|
||||
boer.prs_perslid_key,
|
||||
lsrtnoticode,
|
||||
prsvkey,
|
||||
bericht,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers1
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key; -- key van bo-er
|
||||
--
|
||||
IF lnrreceivers = 0 THEN
|
||||
lreceivers := lreceivers1;
|
||||
ELSE
|
||||
lreceivers := lreceivers||', '||lreceivers1;
|
||||
END IF;
|
||||
lnrreceivers := lnrreceivers+1;
|
||||
SELECT prs_perslid_naam_friendly
|
||||
INTO lreceivers1
|
||||
FROM prs_v_perslid_fullnames
|
||||
WHERE prs_perslid_key = boer.prs_perslid_key; -- key van bo-er
|
||||
--
|
||||
IF lnrreceivers = 0 THEN
|
||||
lreceivers := lreceivers1;
|
||||
ELSE
|
||||
lreceivers := lreceivers||', '||lreceivers1;
|
||||
END IF;
|
||||
lnrreceivers := lnrreceivers+1;
|
||||
END LOOP;
|
||||
END LOOP;
|
||||
--
|
||||
IF lnrreceivers > 0 THEN
|
||||
|
||||
Reference in New Issue
Block a user