diff --git a/FMHN/fmhn.sql b/FMHN/fmhn.sql index d4ab3dcbe..b5f0c8d3a 100644 --- a/FMHN/fmhn.sql +++ b/FMHN/fmhn.sql @@ -23998,14 +23998,10 @@ AS CREATE OR REPLACE VIEW FMHN_V_AANVRAAG_RES ( KEY, - RES_RSV_RUIMTE_KEY, LOCATIE_AANVRAAG, - LOCATIE, - GEBOUW, - GEBOUW_CODE, - VERDIEPING, RUIMTE_NR, RESNR, + AANVRAAG_DATUM, DATUM, VAN, DATUM_TOT, @@ -24016,250 +24012,178 @@ CREATE OR REPLACE VIEW FMHN_V_AANVRAAG_RES VOORZIENINGEN, BESTEMD_VOOR, AANVRAGER, - AANVRAGER_TELEFOONNR, - AANVRAGER_MOBIEL, PRS_KOSTENPLAATS_NR, PRS_KOSTENPLAATS_OMSCHRIJVING, ACTIVITEIT, REFERENTIE, TELEFOONNR_CONTACTPERSOON, TOELICHTING, + TOTALE_KOSTEN, BEHANDELAAR, SOORT_EVENEMENT, RES_GEANNULEERD, - START_MELDING, AANVRAAG_AANVRAGER, AANVRAAG_OPDRACHTGEVER, AANVRAAG_STATUS, AANVRAAG_TOELICHTING, - PC_NR_ZAAL, - PC_NR_VOORZIENINGEN, AANVRAAG_AFGEWEZEN_DOOR ) AS - SELECT m.mld_melding_key - AS key, - rrr.res_rsv_ruimte_key - AS res_rsv_ruimte_key, - (SELECT alg_locatie_omschrijving - FROM alg_locatie l - WHERE l.alg_locatie_key = m.mld_alg_locatie_key) - AS locatie_aanvraag, - (SELECT alg_locatie_omschrijving - FROM alg_locatie l, - alg_gebouw g, - alg_verdieping v, - alg_ruimte r - WHERE l.alg_locatie_key = g.alg_locatie_key - AND g.alg_gebouw_key = v.alg_gebouw_key - AND v.alg_verdieping_key = r.alg_verdieping_key - AND r.alg_ruimte_key = r2a.alg_ruimte_key) - AS locatie, - (SELECT alg_locatie_plaats - FROM alg_locatie l, - alg_gebouw g, - alg_verdieping v, - alg_ruimte r - WHERE l.alg_locatie_key = g.alg_locatie_key - AND g.alg_gebouw_key = v.alg_gebouw_key - AND v.alg_verdieping_key = r.alg_verdieping_key - AND r.alg_ruimte_key = r2a.alg_ruimte_key) - AS gebouw, - (SELECT alg_gebouw_code - FROM alg_gebouw g, alg_verdieping v, alg_ruimte r - WHERE g.alg_gebouw_key = v.alg_gebouw_key - AND v.alg_verdieping_key = r.alg_verdieping_key - AND r.alg_ruimte_key = r2a.alg_ruimte_key) - AS gebouw_code, - (SELECT alg_verdieping_code - FROM alg_verdieping v, alg_ruimte r - WHERE v.alg_verdieping_key = r.alg_verdieping_key - AND r.alg_ruimte_key = r2a.alg_ruimte_key) - AS verdieping, - r2a.ruimte_nr, - NVL2 (res.res_reservering_key, - res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr, - NULL) - AS resnr, - TRUNC (rrr.res_rsv_ruimte_van) - AS datum, - TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI') - AS van, - TRUNC (rrr.res_rsv_ruimte_tot) - AS datum_tot, - TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') - AS tot, - rrr.res_rsv_ruimte_omschrijving - AS omschrijving, - rrr.res_rsv_ruimte_bezoekers - AS aantal, - r2a.opstelling, - -- Artikelen - ( SELECT LISTAGG ( - rra.res_rsv_artikel_aantal - || ' ' - || ra.res_artikel_omschrijving - || ', ' - || CHR (10)) - WITHIN GROUP (ORDER BY rra.res_rsv_artikel_aantal) - FROM res_rsv_artikel rra - JOIN res_artikel ra - ON ra.res_artikel_key = rra.res_artikel_key - WHERE rra.res_rsv_artikel_verwijder IS NULL - AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key - GROUP BY rra.res_rsv_ruimte_key) - AS voorzieningen, - -- Persoonsgegevens - (SELECT pf.prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key) - AS bestemd_voor, - (SELECT pf.prs_perslid_naam_full - FROM prs_v_perslid_fullnames_all pf - WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) - AS aanvrager, - (SELECT pc.prs_perslid_telefoonnr - FROM prs_perslid pc - WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) - AS aanvrager_telefoonnr, - (SELECT pc.prs_perslid_mobiel - FROM prs_perslid pc - WHERE pc.prs_perslid_key = rrr.res_rsv_ruimte_contact_key) - AS aanvrager_mobiel, - k.prs_kostenplaats_nr, - k.prs_kostenplaats_omschrijving, - ra.res_activiteit_omschrijving - AS activiteit, - -- Kenmerken - (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 = 21 - AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) - AS referentie, - (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 = 41 - AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) - AS telefoonnr_contactpersoon, - (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 = 1 - AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) - AS toelichting, - (SELECT MAX (p.PRS_DEP_AFD) - FROM RES_V_AANWEZIGKENMERKWAARDE kmw - JOIN res_kenmerk km - ON km.res_kenmerk_key = kmw.res_kenmerk_key - JOIN FMHN_V_IDM_MEDEWERKER p - ON fac.safe_to_number ( - kmw.res_kenmerkreservering_waarde) = - p.PRS_PERSLID_KEY - WHERE km.RES_SRTKENMERK_KEY = 162 - AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) - AS behandelaar, - (SELECT MAX (ud.fac_usrdata_omschr) - FROM RES_V_AANWEZIGKENMERKWAARDE kmw - JOIN res_kenmerk km - ON km.res_kenmerk_key = kmw.res_kenmerk_key - JOIN fac_usrdata ud - ON fac.safe_to_number ( - kmw.res_kenmerkreservering_waarde) = - ud.fac_usrdata_key - WHERE km.RES_SRTKENMERK_KEY = 181 - AND kmw.RES_RSV_RUIMTE_KEY = rrr.res_rsv_ruimte_key) - AS soort_evenement, - rrr.res_rsv_ruimte_verwijder - AS res_geannuleerd, - -- Meldingsinfo (altijd beschikbaar) - m.mld_melding_datum, - aanvr.prs_dep_afd - AS aanvraag_aanvrager, - opd.prs_dep_afd - AS aanvraag_opdrachtgever, - ms.mld_statuses_omschrijving - AS aanvraag_status, - m.mld_melding_opmerking - AS aanvraag_toelichting, - -- PC_nr_zaal - (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 = 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'); +WITH +-- r2a: ruimte_nr + opstelling + alg_ruimte_key (1 rij per res_rsv_ruimte_key) +r2a AS ( + SELECT res_rsv_ruimte_key, + MAX(o.res_opstelling_omschrijving) AS opstelling, + 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 res_rsv_ruimte_key + UNION ALL + SELECT rrr.res_rsv_ruimte_key, + '' AS opstelling, + rrr.alg_ruimte_key AS alg_ruimte_key, + r.alg_ruimte_nr AS 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 +), +-- locatie_aanvraag: alg_locatie_omschrijving op basis van alg_ruimte_key (1 rij per alg_ruimte_key) +loc AS ( + SELECT r.alg_ruimte_key, + MAX(l.alg_locatie_omschrijving) AS locatie_aanvraag + FROM alg_ruimte r + JOIN alg_verdieping v ON v.alg_verdieping_key = r.alg_verdieping_key + JOIN alg_gebouw g ON g.alg_gebouw_key = v.alg_gebouw_key + JOIN alg_locatie l ON l.alg_locatie_key = g.alg_locatie_key + GROUP BY r.alg_ruimte_key +), +-- voorzieningen: geaggregeerde tekst (1 rij per res_rsv_ruimte_key) +voorzieningen AS ( + SELECT rra.res_rsv_ruimte_key, + LISTAGG( + rra.res_rsv_artikel_aantal || ' ' || ra.res_artikel_omschrijving || ', ' || CHR(10) + ) WITHIN GROUP (ORDER BY rra.res_rsv_artikel_aantal) AS voorzieningen + FROM res_rsv_artikel rra + JOIN res_artikel ra + ON ra.res_artikel_key = rra.res_artikel_key + WHERE rra.res_rsv_artikel_verwijder IS NULL + GROUP BY rra.res_rsv_ruimte_key +), +-- totale kosten: som(aantal * stuksprijs) (1 rij per res_rsv_ruimte_key) +kosten AS ( + SELECT rra.res_rsv_ruimte_key, + SUM(NVL(rra.res_rsv_artikel_aantal, 0) * NVL(ra.res_artikel_prijs, 0)) AS totale_kosten + FROM res_rsv_artikel rra + JOIN res_artikel ra + ON ra.res_artikel_key = rra.res_artikel_key + WHERE rra.res_rsv_artikel_verwijder IS NULL + GROUP BY rra.res_rsv_ruimte_key +) +SELECT + m.mld_melding_key AS key, + l2.locatie_aanvraag AS locatie_aanvraag, + r2a.ruimte_nr, + NVL2(res.res_reservering_key, + res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr, + NULL) AS resnr, + TRUNC(m.mld_melding_datum) AS aanvraag_datum, + TRUNC(rrr.res_rsv_ruimte_van) AS datum, + TO_CHAR(rrr.res_rsv_ruimte_van, 'HH24:MI') AS van, + TRUNC(rrr.res_rsv_ruimte_tot) AS datum_tot, + TO_CHAR(rrr.res_rsv_ruimte_tot, 'HH24:MI') AS tot, + rrr.res_rsv_ruimte_omschrijving AS omschrijving, + rrr.res_rsv_ruimte_bezoekers AS aantal, + r2a.opstelling, + vz.voorzieningen, + (SELECT pf.prs_perslid_naam_full + FROM prs_v_perslid_fullnames_all pf + WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key + ) AS bestemd_voor, + (SELECT pf.prs_perslid_naam_full + FROM prs_v_perslid_fullnames_all pf + WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key + ) AS aanvrager, + k.prs_kostenplaats_nr, + k.prs_kostenplaats_omschrijving, + act.res_activiteit_omschrijving AS activiteit, + (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 = 21 + AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key + ) AS referentie, + (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 = 41 + AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key + ) AS telefoonnr_contactpersoon, + (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 = 1 + AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key + ) AS toelichting, + NVL(ko.totale_kosten, 0) AS totale_kosten, + (SELECT MAX(p.prs_dep_afd) + FROM res_v_aanwezigkenmerkwaarde kmw + JOIN res_kenmerk km ON km.res_kenmerk_key = kmw.res_kenmerk_key + JOIN fmhn_v_idm_medewerker p + ON fac.safe_to_number(kmw.res_kenmerkreservering_waarde) = p.prs_perslid_key + WHERE km.res_srtkenmerk_key = 162 + AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key + ) AS behandelaar, + (SELECT MAX(ud.fac_usrdata_omschr) + FROM res_v_aanwezigkenmerkwaarde kmw + JOIN res_kenmerk km ON km.res_kenmerk_key = kmw.res_kenmerk_key + JOIN fac_usrdata ud + ON fac.safe_to_number(kmw.res_kenmerkreservering_waarde) = ud.fac_usrdata_key + WHERE km.res_srtkenmerk_key = 181 + AND kmw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key + ) AS soort_evenement, + rrr.res_rsv_ruimte_verwijder AS res_geannuleerd, + aanvr.prs_dep_afd AS aanvraag_aanvrager, + opd.prs_dep_afd AS aanvraag_opdrachtgever, + ms.mld_statuses_omschrijving AS aanvraag_status, + m.mld_melding_opmerking AS aanvraag_toelichting, + (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_rsv_ruimte rrr + ON m.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key +LEFT JOIN res_reservering res + ON rrr.res_reservering_key = res.res_reservering_key +LEFT JOIN res_activiteit act + ON rrr.res_activiteit_key = act.res_activiteit_key +LEFT JOIN prs_kostenplaats k + ON rrr.prs_kostenplaats_key = k.prs_kostenplaats_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 r2a + ON r2a.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key +LEFT JOIN loc l2 + ON l2.alg_ruimte_key = r2a.alg_ruimte_key +LEFT JOIN voorzieningen vz + ON vz.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key +LEFT JOIN kosten ko + ON ko.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key +WHERE m.mld_stdmelding_key = 25 + AND m.mld_melding_datum >= DATE '2010-01-01'; + CREATE OR REPLACE VIEW FMHN_V_NOTI_KLANTVERZOEK (