FMHN#89949 Rapport uitbreiden met gegevens uit meldingen en reserveringen

svn path=/Customer/trunk/; revision=71151
This commit is contained in:
Sander Schepers
2025-12-04 15:32:47 +00:00
parent df825c71c7
commit 5fe12c58d1

View File

@@ -23998,14 +23998,10 @@ AS
CREATE OR REPLACE VIEW FMHN_V_AANVRAAG_RES CREATE OR REPLACE VIEW FMHN_V_AANVRAAG_RES
( (
KEY, KEY,
RES_RSV_RUIMTE_KEY,
LOCATIE_AANVRAAG, LOCATIE_AANVRAAG,
LOCATIE,
GEBOUW,
GEBOUW_CODE,
VERDIEPING,
RUIMTE_NR, RUIMTE_NR,
RESNR, RESNR,
AANVRAAG_DATUM,
DATUM, DATUM,
VAN, VAN,
DATUM_TOT, DATUM_TOT,
@@ -24016,250 +24012,178 @@ CREATE OR REPLACE VIEW FMHN_V_AANVRAAG_RES
VOORZIENINGEN, VOORZIENINGEN,
BESTEMD_VOOR, BESTEMD_VOOR,
AANVRAGER, AANVRAGER,
AANVRAGER_TELEFOONNR,
AANVRAGER_MOBIEL,
PRS_KOSTENPLAATS_NR, PRS_KOSTENPLAATS_NR,
PRS_KOSTENPLAATS_OMSCHRIJVING, PRS_KOSTENPLAATS_OMSCHRIJVING,
ACTIVITEIT, ACTIVITEIT,
REFERENTIE, REFERENTIE,
TELEFOONNR_CONTACTPERSOON, TELEFOONNR_CONTACTPERSOON,
TOELICHTING, TOELICHTING,
TOTALE_KOSTEN,
BEHANDELAAR, BEHANDELAAR,
SOORT_EVENEMENT, SOORT_EVENEMENT,
RES_GEANNULEERD, RES_GEANNULEERD,
START_MELDING,
AANVRAAG_AANVRAGER, AANVRAAG_AANVRAGER,
AANVRAAG_OPDRACHTGEVER, AANVRAAG_OPDRACHTGEVER,
AANVRAAG_STATUS, AANVRAAG_STATUS,
AANVRAAG_TOELICHTING, AANVRAAG_TOELICHTING,
PC_NR_ZAAL,
PC_NR_VOORZIENINGEN,
AANVRAAG_AFGEWEZEN_DOOR AANVRAAG_AFGEWEZEN_DOOR
) )
AS AS
SELECT m.mld_melding_key WITH
AS key, -- r2a: ruimte_nr + opstelling + alg_ruimte_key (1 rij per res_rsv_ruimte_key)
rrr.res_rsv_ruimte_key r2a AS (
AS res_rsv_ruimte_key, SELECT res_rsv_ruimte_key,
(SELECT alg_locatie_omschrijving MAX(o.res_opstelling_omschrijving) AS opstelling,
FROM alg_locatie l MAX(ra.alg_ruimte_key) AS alg_ruimte_key,
WHERE l.alg_locatie_key = m.mld_alg_locatie_key) MAX(rr.res_ruimte_nr) AS ruimte_nr
AS locatie_aanvraag, FROM res_rsv_ruimte r
(SELECT alg_locatie_omschrijving JOIN res_ruimte_opstelling ro ON r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
FROM alg_locatie l, JOIN res_opstelling o ON ro.res_opstelling_key = o.res_opstelling_key
alg_gebouw g, JOIN res_ruimte rr ON ro.res_ruimte_key = rr.res_ruimte_key
alg_verdieping v, JOIN res_alg_ruimte ra ON rr.res_ruimte_key = ra.res_ruimte_key
alg_ruimte r WHERE r.res_rsv_ruimte_verwijder IS NULL
WHERE l.alg_locatie_key = g.alg_locatie_key GROUP BY res_rsv_ruimte_key
AND g.alg_gebouw_key = v.alg_gebouw_key UNION ALL
AND v.alg_verdieping_key = r.alg_verdieping_key SELECT rrr.res_rsv_ruimte_key,
AND r.alg_ruimte_key = r2a.alg_ruimte_key) '' AS opstelling,
AS locatie, rrr.alg_ruimte_key AS alg_ruimte_key,
(SELECT alg_locatie_plaats r.alg_ruimte_nr AS ruimte_nr
FROM alg_locatie l, FROM res_rsv_ruimte rrr
alg_gebouw g, JOIN alg_ruimte r ON r.alg_ruimte_key = rrr.alg_ruimte_key
alg_verdieping v, WHERE rrr.alg_ruimte_key IS NOT NULL
alg_ruimte r ),
WHERE l.alg_locatie_key = g.alg_locatie_key -- locatie_aanvraag: alg_locatie_omschrijving op basis van alg_ruimte_key (1 rij per alg_ruimte_key)
AND g.alg_gebouw_key = v.alg_gebouw_key loc AS (
AND v.alg_verdieping_key = r.alg_verdieping_key SELECT r.alg_ruimte_key,
AND r.alg_ruimte_key = r2a.alg_ruimte_key) MAX(l.alg_locatie_omschrijving) AS locatie_aanvraag
AS gebouw, FROM alg_ruimte r
(SELECT alg_gebouw_code JOIN alg_verdieping v ON v.alg_verdieping_key = r.alg_verdieping_key
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r JOIN alg_gebouw g ON g.alg_gebouw_key = v.alg_gebouw_key
WHERE g.alg_gebouw_key = v.alg_gebouw_key JOIN alg_locatie l ON l.alg_locatie_key = g.alg_locatie_key
AND v.alg_verdieping_key = r.alg_verdieping_key GROUP BY r.alg_ruimte_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key) ),
AS gebouw_code, -- voorzieningen: geaggregeerde tekst (1 rij per res_rsv_ruimte_key)
(SELECT alg_verdieping_code voorzieningen AS (
FROM alg_verdieping v, alg_ruimte r SELECT rra.res_rsv_ruimte_key,
WHERE v.alg_verdieping_key = r.alg_verdieping_key LISTAGG(
AND r.alg_ruimte_key = r2a.alg_ruimte_key) rra.res_rsv_artikel_aantal || ' ' || ra.res_artikel_omschrijving || ', ' || CHR(10)
AS verdieping, ) WITHIN GROUP (ORDER BY rra.res_rsv_artikel_aantal) AS voorzieningen
r2a.ruimte_nr, FROM res_rsv_artikel rra
NVL2 (res.res_reservering_key, JOIN res_artikel ra
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr, ON ra.res_artikel_key = rra.res_artikel_key
NULL) WHERE rra.res_rsv_artikel_verwijder IS NULL
AS resnr, GROUP BY rra.res_rsv_ruimte_key
TRUNC (rrr.res_rsv_ruimte_van) ),
AS datum, -- totale kosten: som(aantal * stuksprijs) (1 rij per res_rsv_ruimte_key)
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI') kosten AS (
AS van, SELECT rra.res_rsv_ruimte_key,
TRUNC (rrr.res_rsv_ruimte_tot) SUM(NVL(rra.res_rsv_artikel_aantal, 0) * NVL(ra.res_artikel_prijs, 0)) AS totale_kosten
AS datum_tot, FROM res_rsv_artikel rra
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') JOIN res_artikel ra
AS tot, ON ra.res_artikel_key = rra.res_artikel_key
rrr.res_rsv_ruimte_omschrijving WHERE rra.res_rsv_artikel_verwijder IS NULL
AS omschrijving, GROUP BY rra.res_rsv_ruimte_key
rrr.res_rsv_ruimte_bezoekers )
AS aantal, SELECT
r2a.opstelling, m.mld_melding_key AS key,
-- Artikelen l2.locatie_aanvraag AS locatie_aanvraag,
( SELECT LISTAGG ( r2a.ruimte_nr,
rra.res_rsv_artikel_aantal NVL2(res.res_reservering_key,
|| ' ' res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
|| ra.res_artikel_omschrijving NULL) AS resnr,
|| ', ' TRUNC(m.mld_melding_datum) AS aanvraag_datum,
|| CHR (10)) TRUNC(rrr.res_rsv_ruimte_van) AS datum,
WITHIN GROUP (ORDER BY rra.res_rsv_artikel_aantal) TO_CHAR(rrr.res_rsv_ruimte_van, 'HH24:MI') AS van,
FROM res_rsv_artikel rra TRUNC(rrr.res_rsv_ruimte_tot) AS datum_tot,
JOIN res_artikel ra TO_CHAR(rrr.res_rsv_ruimte_tot, 'HH24:MI') AS tot,
ON ra.res_artikel_key = rra.res_artikel_key rrr.res_rsv_ruimte_omschrijving AS omschrijving,
WHERE rra.res_rsv_artikel_verwijder IS NULL rrr.res_rsv_ruimte_bezoekers AS aantal,
AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key r2a.opstelling,
GROUP BY rra.res_rsv_ruimte_key) vz.voorzieningen,
AS voorzieningen, (SELECT pf.prs_perslid_naam_full
-- Persoonsgegevens FROM prs_v_perslid_fullnames_all pf
(SELECT pf.prs_perslid_naam_full WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
FROM prs_v_perslid_fullnames_all pf ) AS bestemd_voor,
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key) (SELECT pf.prs_perslid_naam_full
AS bestemd_voor, FROM prs_v_perslid_fullnames_all pf
(SELECT pf.prs_perslid_naam_full WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key
FROM prs_v_perslid_fullnames_all pf ) AS aanvrager,
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) k.prs_kostenplaats_nr,
AS aanvrager, k.prs_kostenplaats_omschrijving,
(SELECT pc.prs_perslid_telefoonnr act.res_activiteit_omschrijving AS activiteit,
FROM prs_perslid pc (SELECT MAX(kmw.res_kenmerkreservering_waarde)
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) FROM res_v_aanwezigkenmerkwaarde kmw
AS aanvrager_telefoonnr, JOIN res_kenmerk km ON km.res_kenmerk_key = kmw.res_kenmerk_key
(SELECT pc.prs_perslid_mobiel WHERE km.res_srtkenmerk_key = 21
FROM prs_perslid pc AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) ) AS referentie,
AS aanvrager_mobiel, (SELECT MAX(kmw.res_kenmerkreservering_waarde)
k.prs_kostenplaats_nr, FROM res_v_aanwezigkenmerkwaarde kmw
k.prs_kostenplaats_omschrijving, JOIN res_kenmerk km ON km.res_kenmerk_key = kmw.res_kenmerk_key
ra.res_activiteit_omschrijving WHERE km.res_srtkenmerk_key = 41
AS activiteit, AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
-- Kenmerken ) AS telefoonnr_contactpersoon,
(SELECT MAX (kmw.res_kenmerkreservering_waarde) (SELECT MAX(kmw.res_kenmerkreservering_waarde)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw FROM res_v_aanwezigkenmerkwaarde kmw
JOIN res_kenmerk km JOIN res_kenmerk km ON km.res_kenmerk_key = kmw.res_kenmerk_key
ON km.res_kenmerk_key = kmw.res_kenmerk_key WHERE km.res_srtkenmerk_key = 1
WHERE km.RES_SRTKENMERK_KEY = 21 AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) ) AS toelichting,
AS referentie, NVL(ko.totale_kosten, 0) AS totale_kosten,
(SELECT MAX (kmw.res_kenmerkreservering_waarde) (SELECT MAX(p.prs_dep_afd)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw FROM res_v_aanwezigkenmerkwaarde kmw
JOIN res_kenmerk km JOIN res_kenmerk km ON km.res_kenmerk_key = kmw.res_kenmerk_key
ON km.res_kenmerk_key = kmw.res_kenmerk_key JOIN fmhn_v_idm_medewerker p
WHERE km.RES_SRTKENMERK_KEY = 41 ON fac.safe_to_number(kmw.res_kenmerkreservering_waarde) = p.prs_perslid_key
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) WHERE km.res_srtkenmerk_key = 162
AS telefoonnr_contactpersoon, AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
(SELECT MAX (kmw.res_kenmerkreservering_waarde) ) AS behandelaar,
FROM RES_V_AANWEZIGKENMERKWAARDE kmw (SELECT MAX(ud.fac_usrdata_omschr)
JOIN res_kenmerk km FROM res_v_aanwezigkenmerkwaarde kmw
ON km.res_kenmerk_key = kmw.res_kenmerk_key JOIN res_kenmerk km ON km.res_kenmerk_key = kmw.res_kenmerk_key
WHERE km.RES_SRTKENMERK_KEY = 1 JOIN fac_usrdata ud
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) ON fac.safe_to_number(kmw.res_kenmerkreservering_waarde) = ud.fac_usrdata_key
AS toelichting, WHERE km.res_srtkenmerk_key = 181
(SELECT MAX (p.PRS_DEP_AFD) AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
FROM RES_V_AANWEZIGKENMERKWAARDE kmw ) AS soort_evenement,
JOIN res_kenmerk km rrr.res_rsv_ruimte_verwijder AS res_geannuleerd,
ON km.res_kenmerk_key = kmw.res_kenmerk_key aanvr.prs_dep_afd AS aanvraag_aanvrager,
JOIN FMHN_V_IDM_MEDEWERKER p opd.prs_dep_afd AS aanvraag_opdrachtgever,
ON fac.safe_to_number ( ms.mld_statuses_omschrijving AS aanvraag_status,
kmw.res_kenmerkreservering_waarde) = m.mld_melding_opmerking AS aanvraag_toelichting,
p.PRS_PERSLID_KEY (SELECT MAX(p.prs_dep_afd)
WHERE km.RES_SRTKENMERK_KEY = 162 FROM fac_tracking t
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) JOIN fmhn_v_idm_medewerker p
AS behandelaar, ON t.prs_perslid_key = p.prs_perslid_key
(SELECT MAX (ud.fac_usrdata_omschr) WHERE t.fac_srtnotificatie_key = 52
FROM RES_V_AANWEZIGKENMERKWAARDE kmw AND t.fac_tracking_refkey = m.mld_melding_key
JOIN res_kenmerk km ) AS aanvraag_afgewezen_door
ON km.res_kenmerk_key = kmw.res_kenmerk_key FROM mld_melding m
JOIN fac_usrdata ud LEFT JOIN res_rsv_ruimte rrr
ON fac.safe_to_number ( ON m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
kmw.res_kenmerkreservering_waarde) = LEFT JOIN res_reservering res
ud.fac_usrdata_key ON rrr.res_reservering_key = res.res_reservering_key
WHERE km.RES_SRTKENMERK_KEY = 181 LEFT JOIN res_activiteit act
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) ON rrr.res_activiteit_key = act.res_activiteit_key
AS soort_evenement, LEFT JOIN prs_kostenplaats k
rrr.res_rsv_ruimte_verwijder ON rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
AS res_geannuleerd, LEFT JOIN mld_statuses ms
-- Meldingsinfo (altijd beschikbaar) ON m.mld_melding_status = ms.mld_statuses_key
m.mld_melding_datum, LEFT JOIN fmhn_v_idm_medewerker aanvr
aanvr.prs_dep_afd ON aanvr.prs_perslid_key = m.prs_perslid_key
AS aanvraag_aanvrager, LEFT JOIN fmhn_v_idm_medewerker opd
opd.prs_dep_afd ON opd.prs_perslid_key = m.prs_perslid_key_voor
AS aanvraag_opdrachtgever, LEFT JOIN r2a
ms.mld_statuses_omschrijving ON r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AS aanvraag_status, LEFT JOIN loc l2
m.mld_melding_opmerking ON l2.alg_ruimte_key = r2a.alg_ruimte_key
AS aanvraag_toelichting, LEFT JOIN voorzieningen vz
-- PC_nr_zaal ON vz.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
(SELECT MAX (kmw.res_kenmerkreservering_waarde) LEFT JOIN kosten ko
FROM RES_V_AANWEZIGKENMERKWAARDE kmw ON ko.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
JOIN res_kenmerk km WHERE m.mld_stdmelding_key = 25
ON km.res_kenmerk_key = kmw.res_kenmerk_key AND m.mld_melding_datum >= DATE '2010-01-01';
WHERE km.RES_SRTKENMERK_KEY = 61
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key)
AS pc_nr_zaal,
-- PC_nr_voorzieningen
(SELECT MAX (kmw.res_kenmerkreservering_waarde)
FROM RES_V_AANWEZIGKENMERKWAARDE kmw
JOIN res_kenmerk km
ON km.res_kenmerk_key = kmw.res_kenmerk_key
WHERE km.RES_SRTKENMERK_KEY = 62
AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key)
AS pc_nr_voorzieningen,
(SELECT MAX (p.prs_dep_afd)
FROM fac_tracking t
JOIN FMHN_V_IDM_MEDEWERKER p
ON t.prs_perslid_key = p.prs_perslid_key
WHERE t.fac_srtnotificatie_key = 52
AND t.fac_tracking_refkey = m.mld_melding_key)
AS aanvraag_afgewezen_door
FROM mld_melding m
LEFT JOIN res_reservering res
ON res.mld_melding_key = m.mld_melding_key
LEFT JOIN res_rsv_ruimte rrr
ON rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_verwijder IS NULL
LEFT JOIN res_activiteit ra
ON rrr.res_activiteit_key = ra.res_activiteit_key
LEFT JOIN res_srtactiviteit rsa
ON ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
LEFT JOIN prs_kostenplaats k
ON rrr.prs_kostenplaats_key = k.prs_kostenplaats_key
LEFT JOIN prs_perslid p
ON rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
LEFT JOIN mld_statuses ms
ON m.mld_melding_status = ms.mld_statuses_key
LEFT JOIN FMHN_V_IDM_MEDEWERKER aanvr
ON aanvr.prs_perslid_key = m.prs_perslid_key
LEFT JOIN FMHN_V_IDM_MEDEWERKER opd
ON opd.prs_perslid_key = m.prs_perslid_key_voor
LEFT JOIN
( SELECT r.res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) AS opstelling,
MAX (ro.res_ruimte_opstel_bezoekers) AS capaciteit,
MAX (ra.alg_ruimte_key) AS alg_ruimte_key,
MAX (rr.res_ruimte_nr) AS ruimte_nr
FROM res_rsv_ruimte r
JOIN res_ruimte_opstelling ro
ON r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
JOIN res_opstelling o
ON ro.res_opstelling_key = o.res_opstelling_key
JOIN res_ruimte rr
ON ro.res_ruimte_key = rr.res_ruimte_key
JOIN res_alg_ruimte ra
ON rr.res_ruimte_key = ra.res_ruimte_key
WHERE r.res_rsv_ruimte_verwijder IS NULL
GROUP BY r.res_rsv_ruimte_key
UNION ALL
SELECT rrr.res_rsv_ruimte_key,
'' AS opstelling,
NULL AS capaciteit,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr
JOIN alg_ruimte r ON r.alg_ruimte_key = rrr.alg_ruimte_key
WHERE rrr.alg_ruimte_key IS NOT NULL) r2a
ON r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
-- Alleen meldingen van na 2010
WHERE m.mld_stdmelding_key = 25 -- Standaardmelding Aanvraag Evenement
AND m.mld_alg_locatie_key = 18 -- Alleen Rijnstraat 8
AND m.mld_melding_datum >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
CREATE OR REPLACE VIEW FMHN_V_NOTI_KLANTVERZOEK CREATE OR REPLACE VIEW FMHN_V_NOTI_KLANTVERZOEK
( (