IVET#69716 Notijob/CUST07-notificatie naar bezitter om PBM om te wisselen

svn path=/Customer/trunk/; revision=54523
This commit is contained in:
Maarten van der Heide
2022-01-13 15:34:11 +00:00
parent 9aaaff65cd
commit d3ad876b0b

View File

@@ -3965,53 +3965,52 @@ AS
LEFT JOIN mld_v_aanwezigkenmerkmelding geb -- Locatie / gebouw (Soort 20286)
ON x.mld_melding_key = geb.mld_melding_key
AND geb.mld_kenmerk_key = 20286
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN (20421, 20322, 20323, 20324)
GROUP BY mld_melding_key) hfd1_sv -- Start vereisten
ON x.mld_melding_key = hfd1_sv.mld_melding_key
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN
(20326, 20327, 20341, 20361, 25941)
WHERE mld_kenmerk_key IN (20326, 20327, 20341, 20361, 25941)
GROUP BY mld_melding_key) hfd2_on -- Orde / Netheid
ON x.mld_melding_key = hfd2_on.mld_melding_key
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN (20328, 20330, 20343, 20481, 24206, 24201, 24202, 24203, 24204, 24205)
GROUP BY mld_melding_key) hfd3_wz -- Werkzaamheden
ON x.mld_melding_key = hfd3_wz.mld_melding_key
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN (24241, 24242, 24243)
GROUP BY mld_melding_key) hfd4_np -- Noodprocedures
ON x.mld_melding_key = hfd4_np.mld_melding_key
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN (24262, 24263, 25961)
GROUP BY mld_melding_key) hfd5_bp -- Brand Preventie
ON x.mld_melding_key = hfd5_bp.mld_melding_key
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN (24264, 24265, 24266, 24267)
GROUP BY mld_melding_key) hfd6_gs -- Opslag gevaarlijke stoffen
ON x.mld_melding_key = hfd6_gs.mld_melding_key
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN (24321, 24322)
GROUP BY mld_melding_key) hfd7_pbm -- PBMs
ON x.mld_melding_key = hfd7_pbm.mld_melding_key
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN (24341, 24361, 24363, 24364, 24365)
GROUP BY mld_melding_key) hfd8_mg -- Materieel / Gereedschap
ON x.mld_melding_key = hfd8_mg.mld_melding_key
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN (24382, 24383, 24384, 24385, 24386, 24387, 24388, 24389)
GROUP BY mld_melding_key) hfd9_hr -- Hoog Risico werk
ON x.mld_melding_key = hfd9_hr.mld_melding_key
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '9262', 1, 0)) neg
LEFT JOIN ( SELECT mld_melding_key, COUNT ( * ) cnt, SUM (DECODE (mld_kenmerkmelding_waarde, '1', 1, '9261', 1, 0)) pos, SUM (DECODE (mld_kenmerkmelding_waarde, '2', 1, '9262', 1, 0)) neg
FROM mld_v_aanwezigkenmerkmelding
WHERE mld_kenmerk_key IN (24391)
GROUP BY mld_melding_key) hfd10_m -- Milieu
@@ -4294,6 +4293,176 @@ AS
prs_afdeling_verwijder
FROM prs_afdeling;
-- IVET#68372: Bezettingspercentage (WP-reserveringen uit catalogi 4201 en 4321)!
CREATE OR REPLACE VIEW ivet_v_rap_res_wp_bzg
(
fclt_3d_locatie_key,
maand,
catalogus,
locatie,
wp_aant_nl,
wp_aant_loc,
wp_bzg_nl,
wp_bzg_loc
)
AS
WITH rescatl -- Per catalogus/locatie de reserveringen van WP-objecten op tot-tijd!
AS ( SELECT resbes.mnd,
rd.ins_discipline_omschrijving catalogus,
l.alg_locatie_key,
l.alg_locatie_omschrijving locatie_oms,
SUM (resbez.aant) aantal_reserveringen,
SUM (ROUND (resbes.uren, 2)) bes_uren,
SUM (ROUND (resbez.uren, 2)) bez_uren
FROM (SELECT TO_CHAR (p.mnd, 'yyyy-mm') mnd, -- DISTINCT per definitie!
rd.res_discipline_key,
rd.res_deel_key resource_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
fac.count_work_days (p.mnd - 1, ADD_MONTHS (p.mnd, 1) - 1) * 9 -- = 17-8
uren
FROM res_deel rd, ins_deel d,
(SELECT ADD_MONTHS (TRUNC (SYSDATE, 'mm'), LEVEL - 26) mnd FROM DUAL CONNECT BY LEVEL <= 25) p
WHERE rd.res_discipline_key IN (4201, 4321) -- Flex/hybride werkplekken+Flex/Hybryde WP PD001-3
AND rd.res_ins_deel_key = d.ins_deel_key
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
AND rd.res_deel_aanmaak < ADD_MONTHS (p.mnd, 1)
AND (rd.res_deel_verwijder IS NULL OR rd.res_deel_verwijder >= p.mnd)) resbes,
( SELECT TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-mm') mnd,
rd.res_discipline_key,
rd.res_deel_key resource_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
COUNT ( * ) aant,
SUM (LEAST ((rrd.res_rsv_deel_tot - TRUNC (rrd.res_rsv_deel_tot)) * 24, 17)
- GREATEST ((rrd.res_rsv_deel_van - TRUNC (rrd.res_rsv_deel_van)) * 24, 8))
uren
FROM res_rsv_deel rrd, res_rsv_ruimte rrr, res_deel rd, ins_deel d
WHERE rrd.res_rsv_deel_verwijder IS NULL
AND rrd.res_rsv_deel_dirtlevel = 0
AND TRUNC (rrd.res_rsv_deel_van) = TRUNC (rrd.res_rsv_deel_tot) -- Eendaags!
AND rrd.res_rsv_deel_tot BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25) AND TRUNC (SYSDATE, 'mm')
AND TO_CHAR (rrd.res_rsv_deel_tot, 'd') BETWEEN '2' AND '6'
AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (rrd.res_rsv_deel_tot))
--AND TO_CHAR (rrd.res_rsv_deel_van, 'hh24') < '17'
--AND TO_CHAR (rrd.res_rsv_deel_tot, 'hh24') > '08'
--AND rrd.bez_bezoekers_key IS NULL -- Geen parkeerplaatsen!
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND rrr.res_status_fo_key(+) IN (1, 2) -- Optie/Definitief
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key IN (4201, 4321) -- Flex/hybride werkplekken+Flex/Hybryde WP PD001-3
AND rd.res_ins_deel_key = d.ins_deel_key
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
GROUP BY TO_CHAR (rrd.res_rsv_deel_tot, 'yyyy-mm'),
rd.res_discipline_key,
rd.res_deel_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)
UNION ALL -- Meerdaagse voorzieningen?
SELECT TO_CHAR (p.dag, 'yyyy-mm') mnd,
rd.res_discipline_key,
rd.res_deel_key resource_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) alg_ruimte_key,
COUNT ( * ) aant,
SUM (DECODE (p.dag,
TRUNC (rrd.res_rsv_deel_van), 17 - GREATEST ((rrd.res_rsv_deel_van - TRUNC (rrd.res_rsv_deel_van)) * 24, 8),
TRUNC (rrd.res_rsv_deel_tot), LEAST ((rrd.res_rsv_deel_tot - TRUNC (rrd.res_rsv_deel_tot)) * 24, 17) - 8,
9)) -- = 17-8
uren
FROM res_rsv_deel rrd, res_rsv_ruimte rrr, res_deel rd, ins_deel d,
(SELECT TRUNC (SYSDATE, 'mm') - LEVEL dag FROM DUAL CONNECT BY LEVEL <= TRUNC (SYSDATE, 'mm') - ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25)) p
WHERE rrd.res_rsv_deel_verwijder IS NULL
AND rrd.res_rsv_deel_dirtlevel = 0
AND TRUNC (rrd.res_rsv_deel_van) != TRUNC (rrd.res_rsv_deel_tot) -- Meerdaags!
AND rrd.res_rsv_deel_tot BETWEEN ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -25) AND TRUNC (SYSDATE, 'mm')
--AND TO_CHAR (rrd.res_rsv_deel_van, 'hh24') < '17'
--AND TO_CHAR (rrd.res_rsv_deel_tot, 'hh24') > '08'
--AND rrd.bez_bezoekers_key IS NULL -- Geen parkeerplaatsen!
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key(+)
AND rrr.res_status_fo_key(+) IN (1, 2) -- Optie/Definitief
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_discipline_key IN (4201, 4321) -- Flex/hybride werkplekken+Flex/Hybryde WP PD001-3
AND rd.res_ins_deel_key = d.ins_deel_key
AND COALESCE (d.ins_alg_ruimte_type_org, d.ins_alg_ruimte_type) = 'R' -- Noodzakelijk?
AND p.dag BETWEEN TRUNC (rrd.res_rsv_deel_van) AND TRUNC (rrd.res_rsv_deel_tot)
AND TO_CHAR (p.dag, 'd') BETWEEN '2' AND '6'
AND NOT EXISTS (SELECT 1 FROM mld_vrije_dagen WHERE TRUNC (mld_vrije_dagen_datum) = TRUNC (p.dag))
GROUP BY TO_CHAR (p.dag, 'yyyy-mm'),
rd.res_discipline_key,
rd.res_deel_key,
COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key)) resbez,
res_discipline rd, -- Ook verwijderde catalogi!
alg_v_onrgoed_boom aob, -- Ook verwijderde ruimten!
alg_locatie l -- Ook verwijderde locaties!
WHERE resbes.mnd = resbez.mnd(+)
AND resbes.res_discipline_key = resbez.res_discipline_key(+)
AND resbes.resource_key = resbez.resource_key(+)
AND resbes.alg_ruimte_key = resbez.alg_ruimte_key(+)
AND resbes.res_discipline_key = rd.ins_discipline_key(+)
AND resbes.alg_ruimte_key = aob.alg_ruimte_key
AND aob.alg_locatie_key = l.alg_locatie_key
AND resbes.uren > 0 -- Soms 0 of zelfs negatief bij vreemde/gelijke begin- en eindtijden (van reserveerbare ruimte = res_ruimte)!
AND COALESCE (resbez.uren, 1) > 0 -- Soms 0 of zelfs negatief bij vreemde/gelijke begin- en eindtijden (van res_rsv_ruimte/deel)!
GROUP BY l.alg_locatie_key,
resbes.mnd,
rd.ins_discipline_omschrijving,
l.alg_locatie_omschrijving)
SELECT loc.alg_locatie_key, nl.mnd, nl.catalogus,
loc.locatie_oms,
TO_CHAR (nl.ant_nl, '999990'),
TO_CHAR (loc.ant_loc, '999990'),
TO_CHAR (100 * nl.bzg_nl, '990') || '%',
TO_CHAR (100 * loc.bzg_loc, '990') || '%'
FROM ( SELECT mnd, catalogus, SUM (aantal_reserveringen) ant_nl, SUM (COALESCE (bez_uren, 0)) / SUM (bes_uren) bzg_nl
FROM rescatl
GROUP BY mnd, catalogus) nl
LEFT JOIN (SELECT mnd, catalogus, alg_locatie_key, locatie_oms, aantal_reserveringen ant_loc, COALESCE (bez_uren, 0) / bes_uren bzg_loc
FROM rescatl) loc
ON nl.mnd = loc.mnd AND nl.catalogus = loc.catalogus;
-- IVET#69716: CUST07-notificatie naar bezitter om PBM om te wisselen.
-- Wekelijks totdat geretourneerd?
--Ja dit is wenselijk voor ons. Het betreft dus de discipline Persoonsgebonden PBM.
--Een mailnotificatie voor de beeldschermbril=3501 en correctiebril=3521 na 3 jaar vervangen,
--de oordoppen=3561 (otoplastieken) na 4 jaar vervangen
--en de steunzolen=3541 (orthopedie) na 18 maanden een mailnotificatie.
--Staat al in productieomgeving.
--Er is nog 1 object bij gekomen bij de PBM , een insert=3581 op sterkte (ook na 3 jaar vervangen)
CREATE OR REPLACE VIEW IVET_V_NOTI_PBM
(
code,
sender,
receiver,
text,
key,
xkey,
xemail,
xmobile
)
AS
SELECT sn.fac_srtnotificatie_code,
NULL,
d.ins_alg_ruimte_key,
REPLACE (sn.fac_srtnotificatie_oms, '##OBJSRT##', sd.ins_srtdeel_key_omschrijving),
d.ins_deel_key,
NULL,
NULL,
NULL
FROM ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_v_aanwezigkenmerkdeel kd,
ins_kenmerk k,
fac_srtnotificatie sn
WHERE d.ins_srtdeel_key IN (3501, 3521, 3541, 3561, 3581) -- Beeldschermbril/Correctiebril/Oordop/Steunzool/Insert
AND d.ins_discipline_key = 4541 -- Persoonsgebonden PBM
--AND d.ins_alg_ruimte_key_org IS NOT NULL -- Uitgeleend
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = 342 -- Datum object vervangen
--AND fac.safe_to_date (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') - 7 < SYSDATE
--AND MOD (fac.safe_to_date (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') - TRUNC (SYSDATE), 7) = 0 -- Wekelijks totdat geretourneerd?
AND ADD_MONTHS (fac.safe_to_date (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy'), -2) = TRUNC (SYSDATE)
AND sn.fac_srtnotificatie_code = 'CUST07';
------ payload end ------
SET DEFINE OFF