BLST#70136 Ook fiatteur notificeren met RESFIA -indien nodig- bij herhaling-reserveringen
svn path=/Database/trunk/; revision=54241
This commit is contained in:
110
RES/RES_PAC.SRC
110
RES/RES_PAC.SRC
@@ -15,6 +15,7 @@ CREATE OR REPLACE PACKAGE res AS
|
||||
newvolgnr NUMBER DEFAULT NULL) RETURN NUMBER;
|
||||
PROCEDURE res_sync_deelres (prsv_ruimte_key_from IN NUMBER, prsv_ruimte_key_to IN NUMBER, flags IN NUMBER, pres_copy_to_bez IN NUMBER);
|
||||
PROCEDURE set_catalogus_approve(prsv_ruimte_key IN NUMBER, puserkey IN NUMBER);
|
||||
PROCEDURE send_need_approval_notification (prsv_ruimte_key IN NUMBER, puserkey IN NUMBER);
|
||||
PROCEDURE set_ruimte_dirty (prsv_ruimte_key IN NUMBER);
|
||||
PROCEDURE set_ruimtes_clean (checkdate IN DATE);
|
||||
PROCEDURE set_delen_dirty (prsv_ruimte_key IN NUMBER);
|
||||
@@ -557,10 +558,115 @@ AS
|
||||
WHERE res_rsv_ruimte_key = prsv_ruimte_key;
|
||||
IF hastoapprove = 1
|
||||
THEN
|
||||
-- Notificatie en tracking: Reservering ##KEY## (##DESC##) is ter fiattering aangeboden aan ##FIATTEUR##.
|
||||
fac.trackaction ('RESFIA', prsv_ruimte_key, puserkey, NULL, NULL);
|
||||
res.send_need_approval_notification(prsv_ruimte_key, puserkey);
|
||||
END IF;
|
||||
END;
|
||||
|
||||
-- Kopie van res.sendNeedApprovalNotification()
|
||||
PROCEDURE send_need_approval_notification (prsv_ruimte_key IN NUMBER, puserkey IN NUMBER)
|
||||
AS
|
||||
lapprover_key prs_kostenplaats.prs_perslid_key%TYPE;
|
||||
lres_ruimte_opstel_key res_ruimte_opstelling.res_ruimte_opstel_key%TYPE;
|
||||
lres_reservering_key res_reservering.res_reservering_key%TYPE;
|
||||
lalg_ruimte_key alg_ruimte.alg_ruimte_key%TYPE;
|
||||
lsender alg_locatie.alg_locatie_email%TYPE;
|
||||
lomsfia fac_srtnotificatie.fac_srtnotificatie_oms%TYPE;
|
||||
lreceiver VARCHAR2(1000);
|
||||
ltracking VARCHAR2(4000); -- moet tijdelijk groter dan fac_srtnotificatie.fac_srtnotificatie_oms%TYPE kunnen zijn
|
||||
BEGIN
|
||||
|
||||
BEGIN
|
||||
SELECT k.prs_perslid_key
|
||||
INTO lapprover_key
|
||||
FROM res_rsv_ruimte rr,
|
||||
prs_kostenplaats k
|
||||
WHERE rr.prs_kostenplaats_key = k.prs_kostenplaats_key
|
||||
AND rr.res_rsv_ruimte_key = prsv_ruimte_key;
|
||||
EXCEPTION
|
||||
WHEN NO_DATA_FOUND
|
||||
THEN
|
||||
-- Er is geen fiatteur
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
IF lapprover_key < 0 OR prsv_ruimte_key < 0
|
||||
THEN
|
||||
RETURN;
|
||||
END IF;
|
||||
|
||||
SELECT res_ruimte_opstel_key,
|
||||
res_reservering_key,
|
||||
alg_ruimte_key
|
||||
INTO lres_ruimte_opstel_key,
|
||||
lres_reservering_key,
|
||||
lalg_ruimte_key
|
||||
FROM res_rsv_ruimte
|
||||
WHERE res_rsv_ruimte_key = prsv_ruimte_key;
|
||||
|
||||
IF lres_ruimte_opstel_key IS NOT NULL AND lres_ruimte_opstel_key > 0
|
||||
THEN
|
||||
SELECT MAX(l.alg_locatie_email)
|
||||
INTO lsender
|
||||
FROM res_ruimte_opstelling ro
|
||||
, res_ruimte rr
|
||||
, res_alg_ruimte rag
|
||||
, alg_ruimte r
|
||||
, alg_verdieping v
|
||||
, alg_gebouw g
|
||||
, alg_locatie l
|
||||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND r.alg_ruimte_key = rag.alg_ruimte_key
|
||||
AND rag.res_ruimte_key = rr.res_ruimte_key
|
||||
AND rr.res_ruimte_key = ro.res_ruimte_key
|
||||
AND ro.res_ruimte_opstel_key = lres_ruimte_opstel_key;
|
||||
ELSIF lalg_ruimte_key IS NOT NULL AND lalg_ruimte_key > 0
|
||||
THEN
|
||||
SELECT MAX(l.alg_locatie_email)
|
||||
INTO lsender
|
||||
FROM alg_ruimte r
|
||||
, alg_verdieping v
|
||||
, alg_gebouw g
|
||||
, alg_locatie l
|
||||
WHERE l.alg_locatie_key = g.alg_locatie_key
|
||||
AND g.alg_gebouw_key = v.alg_gebouw_key
|
||||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||||
AND r.alg_ruimte_key = lalg_ruimte_key;
|
||||
END IF;
|
||||
|
||||
SELECT lcl.x('fac_srtnotificatie_oms', fac_srtnotificatie_key, fac_srtnotificatie_oms)
|
||||
INTO lomsfia
|
||||
FROM fac_srtnotificatie
|
||||
WHERE fac_srtnotificatie_code = 'RESFIA';
|
||||
|
||||
-- Notificatie en tracking: Reservering ##KEY## (##DESC##) is ter fiattering aangeboden aan ##FIATTEUR##.
|
||||
fac.putnotificationsrtprio (NULL,
|
||||
lapprover_key,
|
||||
'RESFIA',
|
||||
lres_reservering_key,
|
||||
res.sprintf(lomsfia, prsv_ruimte_key),
|
||||
NULL,
|
||||
NULL,
|
||||
NULL,
|
||||
prsv_ruimte_key,
|
||||
2,
|
||||
lsender
|
||||
);
|
||||
|
||||
SELECT prs_perslid_naam_full
|
||||
INTO lreceiver
|
||||
FROM prs_v_perslid_fullnames_all
|
||||
WHERE prs_perslid_key = lapprover_key;
|
||||
|
||||
-- ltracking := 'Notitificatie ''{0}'' verstuurd aan {1}';
|
||||
ltracking := lcl.l('lcl_res_notification_sent_to');
|
||||
ltracking := REPLACE (ltracking, '{0}', 'RESFIA');
|
||||
ltracking := REPLACE (ltracking, '{1}', lreceiver);
|
||||
|
||||
fac.trackaction ('RESFIA', prsv_ruimte_key, puserkey, NULL, SUBSTR(ltracking, 1, 2048)); -- maxlengte van fac_srtnotificatie_oms
|
||||
END;
|
||||
|
||||
-- Moeten wijzelf misschien dirty worden (door overlap met anderen)
|
||||
-- of schoon worden
|
||||
PROCEDURE set_ruimte_dirty (prsv_ruimte_key IN NUMBER)
|
||||
|
||||
Reference in New Issue
Block a user