BLST#70136 Ook fiatteur notificeren met RESFIA -indien nodig- bij herhaling-reserveringen

svn path=/Database/trunk/; revision=54241
This commit is contained in:
2021-12-21 12:09:00 +00:00
parent 464a7a43ca
commit 56d0d69adc

View File

@@ -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)