Files
Customer/EBNF/ebnf.sql
Sander Schepers e60f491fb0 EBNF#86179 Aanpassing vergaderzaalreserveringen en kostenverhuur voor externe partijen
svn path=/Customer/trunk/; revision=67559
2025-01-10 09:13:53 +00:00

991 lines
39 KiB
MySQL

--
-- $Id$
--
-- Script containing customer specific configuration sql statements for EBNF
DEFINE thisfile = 'EBNF.SQL'
DEFINE dbuser = '^EBNF'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PACKAGE EBNF
AS
PROCEDURE schonen_accounts;
END;
/
CREATE OR REPLACE PACKAGE BODY EBNF
AS
-- Verwijder via SCIM geinactiveerde personen!
PROCEDURE schonen_accounts
AS
c_prs_dummy_key NUMBER (10) := -1; -- DUMMY tbv overzetten verplichtingen verwijderde personen
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_del NUMBER (10);
CURSOR c1
IS
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || pf.prs_perslid_naam_full || '] '
aanduiding,
p.prs_perslid_key,
COUNT (vp.prs_perslid_key) aant
FROM prs_v_aanwezigperslid p, prs_v_verplichting_keys vp, prs_v_perslid_fullnames pf
WHERE p.prs_perslid_externid IS NOT NULL -- SCIM-populatie!
AND COAlESCE (p.prs_perslid_inactief, SYSDATE) < TRUNC (SYSDATE)
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
AND p.prs_perslid_key = pf.prs_perslid_key
GROUP BY '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || pf.prs_perslid_naam_full || '] ',
p.prs_perslid_key
ORDER BY 2;
BEGIN
v_count_del := 0;
FOR rec IN c1
LOOP
BEGIN
IF rec.aant = 0
THEN
v_errormsg := 'Fout schonen collega';
DELETE FROM prs_collega
WHERE prs_perslid_key = rec.prs_perslid_key
OR prs_perslid_key_alt = rec.prs_perslid_key;
v_errormsg := 'Fout schonen perslid';
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = rec.prs_perslid_key;
v_count_del := v_count_del + 1;
IF MOD (v_count_del, 1000) = 0
THEN
COMMIT;
END IF;
ELSE
fac.writelog ('EBNF_SCHONENACCOUNTS', 'I', rec.aanduiding || '/#Verplichtingen: ' || TO_CHAR (rec.aant), 'Persoon niet geschoond');
END IF;
EXCEPTION
WHEN OTHERS
THEN -- Kennelijk heeft persoon toch nog ernstige verplichtingen!
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('EBNF_SCHONENACCOUNTS', 'W', rec.aanduiding || v_errormsg, 'Fout schonen persoon');
END;
END LOOP;
fac.writelog ('EBNF_SCHONENACCOUNTS', 'S', 'Personen/#geschoond: ' || TO_CHAR (v_count_del), '');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('EBNF_SCHONENACCOUNTS', 'E', v_errormsg, '');
COMMIT;
END schonen_accounts;
END;
/
CREATE OR REPLACE PROCEDURE EBNF_DAILY
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
ebnf.schonen_accounts;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
END EBNF_DAILY;
/
CREATE OR REPLACE VIEW EBNF_V_NOTI_BEZOEKERS
(
SENDER,
RECEIVER,
TEXT,
CODE,
KEY,
XKEY,
XEMAIL,
XMOBILE,
ATTACHMENTS
)
AS
SELECT NULL sender,
NULL receiver,
'Welkom bij Energie Beheer Nederland' text,
'CUST01' code,
a.bez_afspraak_key key,
NULL xkey,
b.bez_bezoekers_email xemail,
NULL xmobile,
(bijl.bijlage) AS attachments
FROM bez_bezoekers b,
bez_afspraak a,
alg_locatie l,
(SELECT af.bez_afspraak_key, fac_bijlagen_key bijlage
FROM fac_v_bijlagen bij, bez_afspraak af
WHERE fac_bijlagen_module = 'ALG'
AND af.alg_locatie_key = bij.fac_bijlagen_refkey
AND bij.fac_bijlagen_kenmerk_key = 1000) bijl, --Kenmerk routebeschrijving bij locatie
(SELECT fac_notificatie_job_nextrun, fac_notificatie_job_lastrun
FROM fac_notificatie_job
WHERE fac_notificatie_job_view = 'EBNF_V_NOTI_BEZOEKERS') n
WHERE b.bez_afspraak_key = a.bez_afspraak_key
AND a.alg_locatie_key = l.alg_locatie_key
AND a.bez_afspraak_key = bijl.bez_afspraak_key(+)
AND b.bez_bezoekers_email IS NOT NULL
AND b.bez_bezoekers_aanmaak > n.fac_notificatie_job_lastrun;
CREATE OR REPLACE VIEW ebnf_v_rap_mld_qrc
(
fclt_3d_locatie_key,
fclt_3d_discipline_key,
fclt_f_discipline,
fclt_f_soortmelding,
fclt_f_locatie,
fclt_f_gebouw,
fclt_f_verdieping,
plaats,
ruimte_key,
ruimtefunctie,
fclt_f_objectdiscipline,
fclt_f_objectgroep,
objectsoort_key,
fclt_f_objectsoort,
objectsoort_code,
ins_deel_key,
ins_deel_omschrijving,
ins_deel_upper,
hide_f_bookmark_id,
url
)
AS
SELECT l.alg_locatie_key,
disc.ins_discipline_key,
disc.ins_discipline_omschrijving,
msd.mld_stdmelding_omschrijving,
l.alg_locatie_omschrijving,
o.alg_gebouw_omschrijving,
o.alg_verdieping_omschrijving,
o.alg_plaatsaanduiding plaats,
d.ins_alg_ruimte_key ruimte_key,
sr.alg_srtruimte_omschrijving,
disc.ins_discipline_omschrijving,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_key,
sd.ins_srtdeel_omschrijving,
sd.ins_srtdeel_code,
d.ins_deel_key,
d.ins_deel_omschrijving,
d.ins_deel_upper,
b.fac_bookmark_id,
'https://ebnf.facilitor.nl/?u='
|| b.fac_bookmark_id
|| CHR(38)
||'ins_key='
|| d.ins_deel_key
FROM (SELECT DECODE (
INSTR (
SUBSTR (
UPPER (fac_bookmark_query),
INSTR (UPPER (fac_bookmark_query),
'STDM_KEY=')
),
'&'
),
0,
SUBSTR (
SUBSTR (
UPPER (fac_bookmark_query),
INSTR (UPPER (fac_bookmark_query),
'STDM_KEY=')
),
10
),
SUBSTR (
SUBSTR (
UPPER (fac_bookmark_query),
INSTR (UPPER (fac_bookmark_query),
'STDM_KEY=')
),
10,
INSTR (
SUBSTR (
UPPER (fac_bookmark_query),
INSTR (UPPER (fac_bookmark_query),
'STDM_KEY=')
),
'&'
)
- 10
)
)
stdm_key,
fac_bookmark_id
FROM fac_bookmark
WHERE UPPER (fac_bookmark_path) = 'APPL/PDA/MELDING.ASP'
AND INSTR (UPPER (fac_bookmark_query), 'STDM_KEY') > 0)
b, -- stdm_key-bookmarks
(SELECT sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
si.ins_srtinstallatie_key ins_srtdeel_key
FROM mld_stdmelding sm,
mld_stdmelding_srtinst si
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
AND sm.mld_stdmelding_verwijder IS NULL
AND si.ins_srtinstallatie_niveau = 'S'
UNION ALL
SELECT sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
sd.ins_srtdeel_key
FROM mld_stdmelding sm,
mld_stdmelding_srtinst si,
ins_srtdeel sd
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
AND sm.mld_stdmelding_verwijder IS NULL
AND si.ins_srtinstallatie_niveau = 'G'
AND si.ins_srtinstallatie_key = sd.ins_srtgroep_key
UNION ALL
SELECT sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
sd.ins_srtdeel_key
FROM mld_stdmelding sm,
mld_stdmelding_srtinst si,
ins_srtgroep sg,
ins_srtdeel sd
WHERE sm.mld_stdmelding_key = si.mld_stdmelding_key
AND sm.mld_stdmelding_verwijder IS NULL
AND si.ins_srtinstallatie_niveau = 'D'
AND si.ins_srtinstallatie_key = sg.ins_discipline_key
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key) msd, -- object-meldingen
ins_v_aanwezigdeel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_discipline disc,
ins_v_alg_overzicht o,
alg_locatie l,
alg_ruimte r,
alg_srtruimte sr
WHERE fac.safe_to_number (b.stdm_key) = msd.mld_stdmelding_key
AND msd.ins_srtdeel_key = d.ins_srtdeel_key
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
AND d.ins_deel_parent_key IS NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = disc.ins_discipline_key
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
AND d.ins_alg_locatie_key = o.alg_locatie_key -- redundant?
AND o.alg_locatie_key = l.alg_locatie_key
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
AND r.alg_srtruimte_key = sr.alg_srtruimte_key(+);
CREATE OR REPLACE VIEW ebnf_v_label_deel_res_datum
(
FCLT_F_DATUM,
INS_DEEL_KEY,
RES_DEEL_OMSCHRIJVING,
WAARDE1,
WAARDE,
WAARDE3,
WAARDE_HTML,
WAARDE_HTML2,
TOOLTIP
)
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datums.datum fclt_f_datum,
isd.res_ins_deel_key ins_deel_key,
res_deel_omschrijving,
CHR (10)
|| LISTAGG (
DECODE (
naam,
NULL, '',
'[s40]'
|| naam
|| ' ('
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|| '-'
|| DECODE (
TRUNC (res_rsv_deel_tot),
TRUNC (res_rsv_deel_van), TO_CHAR (
res_rsv_deel_tot,
'HH24:MI'),
TO_CHAR (res_rsv_deel_tot, 'DD-MM-YYYY HH24:MI'))
|| ')'),
CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde1,
CHR (10)
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde2,
CHR (10)
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10))
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde3,
LISTAGG (
DECODE (naam,
NULL, '',
'<span class="body">' || naam || '</span>'),
'<br>') waarde_html,
LISTAGG (
DECODE (naam,
NULL, '',
'<span class="body">' || naam || '</span>'),
'<br>')
WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde_html2,
res.naam
FROM res_v_aanwezigdeel isd,
datums,
(SELECT datum,
res_ins_deel_key,
DECODE (p.prs_perslid_visibility,
1,
pf.prs_perslid_naam_friendly,
a.prs_afdeling_omschrijving) naam,
res_rsv_deel_van,
res_rsv_deel_tot
FROM res_v_aanwezigdeel r,
res_v_aanwezigrsv_deel rrd,
res_rsv_ruimte rrr,
prs_v_perslid_fullnames pf,
prs_perslid p,
prs_afdeling a,
datums
WHERE r.res_deel_key = rrd.res_deel_key
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot) res -- Bezet
WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+)
AND datums.datum = res.datum(+)
GROUP BY datums.datum,
isd.res_ins_deel_key,
res_deel_omschrijving,
res_deel_opmerking,
res.naam;
CREATE OR REPLACE VIEW EBNF_V_CATERINGRESER
(
RRR_KEY,
RESERVERING_KEY,
RES_RSV_RUIMTE_VOLGNR,
RES_ACTIVITEIT_KEY,
ACTIVITEIT,
RES_RUIMTE_KEY,
AANMK_DATUM,
LAST_UPD,
LAST_EXPORT,
VERW_DATUM,
RUIMTE_NR,
BESTELLER,
DATUM_VAN,
DATUM_TOT,
OMS,
AANTAL,
LOCATIE_CODE,
SOORT,
OPSTELLING,
FO_STATUS,
DIRTLEVEL
)
AS
SELECT "RRR_KEY",
"RESERVERING_KEY",
"RES_RSV_RUIMTE_VOLGNR",
"RES_ACTIVITEIT_KEY",
"RES_ACTIVITEIT_OMSCHRIJVING",
"RES_RUIMTE_KEY",
"AANMK_DATUM",
"LAST_UPD",
"LAST_EXPORT",
"VERW_DATUM",
"RUIMTE_NR",
"BESTELLER",
"DATUM_VAN",
"DATUM_TOT",
"OMS",
"AANTAL",
"LOCATIE_CODE",
"SOORT",
"OPSTELLING",
"FO_STATUS",
"DIRTLEVEL"
FROM (SELECT DISTINCT
(rrr.res_rsv_ruimte_key)
rrr_key,
rrr.res_reservering_key
reservering_key,
rrr.res_rsv_ruimte_volgnr,
ra.res_activiteit_key,
ra.res_activiteit_omschrijving,
rer.res_ruimte_key,
rrr.res_rsv_ruimte_aanmaak
aanmk_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey =
rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 117) --RESUPD
last_upd,
rrr.res_rsv_ruimte_externsyncdate
last_export,
rrr.res_rsv_ruimte_verwijder
verw_datum,
COALESCE (rer.res_ruimte_friendlyname, alg.alg_ruimte_nr)
ruimte_nr,
(SELECT prs_perslid_externid
FROM prs_perslid
WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key)
besteller,
rrr.RES_RSV_RUIMTE_VAN
datum_van,
rrr.RES_RSV_RUIMTE_TOT
datum_tot,
rrr.res_rsv_ruimte_omschrijving
oms,
rrr.res_rsv_ruimte_bezoekers
aantal,
alg.alg_locatie_code
locatie_code,
'ruimte'
soort,
ros.res_opstelling_omschrijving
opstelling,
rrr.res_status_fo_key
fo_status,
rrr.res_rsv_ruimte_dirtlevel
dirtlevel
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_activiteit ra,
res_ruimte_opstelling rop,
res_opstelling ros,
res_ruimte rer,
res_alg_ruimte rarm,
alg_v_ruimte_gegevens_all alg
WHERE rra.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key
AND ros.res_opstelling_key = rop.res_opstelling_key
AND rer.res_ruimte_key = rop.res_ruimte_key
AND rarm.res_ruimte_key = rer.res_ruimte_key
AND alg.alg_ruimte_key = rarm.alg_ruimte_key
UNION ALL
SELECT DISTINCT
(rrr.res_rsv_ruimte_key)
rrr_key,
rrr.res_reservering_key
reservering_key,
rrr.res_rsv_ruimte_volgnr,
ra.res_activiteit_key,
ra.res_activiteit_omschrijving,
NULL,
rrr.res_rsv_ruimte_aanmaak
aanmk_datum,
(SELECT MAX (fac_tracking_datum)
FROM fac_tracking
WHERE fac_tracking_refkey =
rrr.res_rsv_ruimte_key
AND fac_srtnotificatie_key = 117) --RESUPD
last_upd,
rrr.res_rsv_ruimte_externsyncdate
last_export,
rrr.res_rsv_ruimte_verwijder
verw_datum,
alg.alg_ruimte_nr
ruimte_nr,
(SELECT pa.PRS_PERSLID_EMAIL
FROM PRS_V_PERSLID_GEGEVENS pa
WHERE pa.prs_perslid_key =
rrr.res_rsv_ruimte_contact_key)
besteller,
rrr.RES_RSV_RUIMTE_VAN
datum_van,
rrr.RES_RSV_RUIMTE_TOT
datum_tot,
rrr.res_rsv_ruimte_omschrijving
oms,
rrr.res_rsv_ruimte_bezoekers
aantal,
alg.alg_locatie_code
locatie_code,
'losse-catering'
soort,
'N.V.T.'
opstelling,
rrr.res_status_fo_key
fo_status,
0
dirtlevel
FROM res_rsv_ruimte rrr,
res_rsv_artikel rra,
res_activiteit ra,
alg_v_ruimte_gegevens_all alg
WHERE rra.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY
AND alg.alg_ruimte_key = rrr.alg_ruimte_key
AND rrr.res_activiteit_key = ra.res_activiteit_key
ORDER BY reservering_key);
CREATE OR REPLACE VIEW EBNF_V_NOTI_CATERAAR
(
SENDER,
RECEIVER,
TEXT,
CODE,
KEY,
XKEY,
XEMAIL,
XMOBILE
)
AS
SELECT NULL,
NULL,
'Er is een nieuwe catering aanvraag voor '
|| TO_CHAR (datum_van, 'dd-mm-yyyy')
|| ', reservering nummer '
|| reservering_key,
'CUST02',
reservering_key,
rrr_key,
'catering@ebn.nl',
NULL
FROM EBNF_V_CATERINGRESER, fac_notificatie_job nj
WHERE nj.fac_notificatie_job_view = 'EBNF_V_NOTI_CATERAAR'
AND ( nj.fac_notificatie_job_lastrun IS NULL
OR aanmk_datum > nj.fac_notificatie_job_lastrun)
AND ( res_activiteit_key = 30 --Evenement
OR ( res_activiteit_key = 10 --Vergadering
AND res_ruimte_key IN (SELECT res_ruimte_key
FROM res_ruimte
WHERE res_discipline_key = 62) --Evenementzalen
))
AND TRUNC (aanmk_datum) = TRUNC (SYSDATE)
AND last_upd IS NULL
AND verw_datum IS NULL
UNION ALL
SELECT NULL,
NULL,
'Er is een (gewijzigde) catering aanvraag voor '
|| TO_CHAR (datum_van, 'dd-mm-yyyy')
|| ', reservering nummer '
|| reservering_key,
'CUST02',
reservering_key,
rrr_key,
'catering@ebn.nl',
NULL
FROM EBNF_V_CATERINGRESER, fac_notificatie_job nj
WHERE nj.fac_notificatie_job_view = 'EBNF_V_NOTI_CATERAAR'
AND ( nj.fac_notificatie_job_lastrun IS NULL
OR LAST_UPD > nj.fac_notificatie_job_lastrun)
AND ( res_activiteit_key = 30 --Evenement
OR ( res_activiteit_key = 10 --Vergadering
AND res_ruimte_key IN (SELECT res_ruimte_key
FROM res_ruimte
WHERE res_discipline_key = 62) --Evenementzalen
))
AND TRUNC (LAST_UPD) = TRUNC (SYSDATE)
AND last_upd > aanmk_datum
AND verw_datum IS NULL
UNION ALL
SELECT NULL,
NULL,
'Er is een annulering van een catering aanvraag op '
|| TO_CHAR (datum_van, 'dd-mm-yyyy')
|| ', reservering nummer '
|| reservering_key,
'CUST02',
reservering_key,
rrr_key,
'catering@ebn.nl',
NULL
FROM EBNF_V_CATERINGRESER, fac_notificatie_job nj
WHERE nj.fac_notificatie_job_view = 'EBNF_V_NOTI_CATERAAR'
AND ( (verw_datum > nj.fac_notificatie_job_lastrun)
OR nj.fac_notificatie_job_lastrun IS NULL)
AND ( res_activiteit_key = 30 --Evenement
OR ( res_activiteit_key = 10 --Vergadering
AND res_ruimte_key IN (SELECT res_ruimte_key
FROM res_ruimte
WHERE res_discipline_key = 62) --Evenementzalen
))
AND TRUNC (VERW_DATUM) = TRUNC (SYSDATE);
CREATE OR REPLACE VIEW EBNF_V_RAP_CATERING_WKR
(
RES_RESERVERING,
RES_RSV_RUIMTE_KEY,
RES_RUIMTE_NR,
RES_RSV_RUIMTE_OMSCHRIJVING,
RES_RSV_RUIMTE_OPMERKING,
DATUM,
TIJD,
AANTAL,
CATALOGUS,
ARTIKELGROEP,
ARTIKELOMS,
INS_DISCIPLINE_KEY,
RES_RSV_ARTIKEL_PRIJS,
RES_ARTIKEL_PRIJS,
TOTAALPRIJS,
HOST_EMAIL,
PRS_KOSTENPLAATS_NR,
AARD_MEETING,
AANTAL_BEZOEKERS,
AANTAL_EXTERNE_BEZOEKERS,
ARTIKEL_GROEP,
WKR
)
AS
SELECT rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr,
rr.res_rsv_ruimte_key,
COALESCE (r.res_ruimte_nr,
ar.alg_ruimte_nr || ar.alg_ruimte_omschrijving)
ruimte,
rr.res_rsv_ruimte_omschrijving,
rr.res_rsv_ruimte_opmerking,
TRUNC (ra.res_rsv_artikel_levering)
datum,
TO_CHAR (ra.res_rsv_artikel_levering, 'HH24:MI')
tijd,
ra.res_rsv_artikel_aantal
aantal,
d.ins_discipline_omschrijving
catalogus,
a.res_artikel_groep,
a.res_artikel_omschrijving
artikeloms,
d.ins_discipline_key,
ra.res_rsv_artikel_prijs,
a.res_artikel_prijs,
res.getartikelprijs (ra.res_rsv_artikel_key)
totaalprijs,
h.prs_perslid_email
host_email,
k.prs_kostenplaats_nr,
am.waarde
Aard_reservering,
(SELECT COUNT (*)
FROM bez_afspraak ba, bez_bezoekers bb
WHERE bb.bez_afspraak_key = ba.bez_afspraak_key
AND ba.res_rsv_ruimte_key = rr.res_rsv_ruimte_key)
aantal_bezoekers,
(SELECT COUNT (*)
FROM bez_afspraak ba, bez_bezoekers bb
WHERE bb.bez_afspraak_key = ba.bez_afspraak_key
AND ba.res_rsv_ruimte_key = rr.res_rsv_ruimte_key
AND ( LOWER (bb.bez_bezoekers_email) NOT LIKE
'%@ebn.nl%'
OR bb.bez_bezoekers_email IS NULL))
aantal_externe_bezoekers,
a.res_artikel_groep,
(CASE
WHEN am.volgnr = 1
AND a.res_artikel_groep = 'WKR'
AND (SELECT COUNT (*)
FROM bez_afspraak ba, bez_bezoekers bb
WHERE bb.bez_afspraak_key =
ba.bez_afspraak_key
AND ba.res_rsv_ruimte_key =
rr.res_rsv_ruimte_key
AND ( LOWER (bb.bez_bezoekers_email) NOT LIKE
'%@ebn.nl%'
OR bb.bez_bezoekers_email IS NULL)) =
0
THEN
'Ja'
ELSE
'Nee'
END)
wkr
FROM res_rsv_artikel ra,
res_artikel a,
res_discipline d,
res_rsv_ruimte rr,
res_ruimte_opstelling ro,
res_opstelling op,
res_ruimte r,
alg_ruimte ar,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
prs_perslid c,
prs_v_perslid_fullnames cn,
prs_kostenplaats k,
prs_kostensoort ks,
prs_perslid h,
(SELECT res_rsv_ruimte_key,
fac_usrdata_volgnr volgnr,
fac_usrdata_code waarde
FROM res_kenmerkwaarde kw, fac_usrdata ud, res_kenmerk rk
WHERE rk.res_srtkenmerk_key = 21 --Kenmerksoort Aard_meeting
AND kw.res_kenmerk_key = rk.res_kenmerk_key
AND fac.safe_to_number (res_kenmerkreservering_waarde) =
fac_usrdata_key) am
WHERE rr.res_rsv_ruimte_verwijder IS NULL
AND a.res_artikel_key = ra.res_artikel_key
AND d.ins_discipline_key = a.res_discipline_key
AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key
AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key(+)
AND ro.res_ruimte_key = r.res_ruimte_key(+)
AND ro.res_opstelling_key = op.res_opstelling_key(+)
AND rr.alg_ruimte_key = ar.alg_ruimte_key(+)
AND ar.alg_verdieping_key = v.alg_verdieping_key(+)
AND v.alg_gebouw_key = g.alg_gebouw_key(+)
AND g.alg_locatie_key = l.alg_locatie_key(+)
AND rr.res_rsv_ruimte_contact_key = c.prs_perslid_key
AND c.prs_perslid_key = cn.prs_perslid_key
AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+)
AND rr.res_rsv_ruimte_host_key = h.prs_perslid_key
AND rr.res_rsv_ruimte_dirtlevel = 0
AND rr.res_rsv_ruimte_key = am.res_rsv_ruimte_key(+);
CREATE OR REPLACE VIEW EBNF_V_RAP_RESERVERING_EXTERN
(
key,
nr,
omschrijving,
datum,
HOST,
host_email,
afdeling_key,
afdeling_naam,
afdeling_omschrijving,
ruimtenr,
opstelling,
catalogus_key,
catalogus,
bezoekers,
van,
tot,
status_fo,
status_bo,
verwijderd,
opmerking,
duur,
uurprijs,
kosten_zaal,
parkeerplaatsen,
prijs_parkeerplaats,
kosten_parkeren,
prijs_catering,
administratiekosten,
last_minute_annulering,
totaalprijs
)
AS
SELECT rrr.res_rsv_ruimte_key,
res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr
nr,
rrr.res_rsv_ruimte_omschrijving,
rrr.res_rsv_ruimte_van
datum,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key)
gastheer,
(SELECT ph.prs_perslid_email
FROM prs_perslid ph
WHERE ph.prs_perslid_key = rrr.res_rsv_ruimte_host_key)
gastheer_email,
a.prs_afdeling_key,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
r2a.ruimte_nr,
r2a.opstelling,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key)
catalogus_key,
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key)
catalogus,
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van
van,
rrr.res_rsv_ruimte_tot
tot,
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
WHERE rs.res_status_fo_key = rrr.res_status_fo_key)
status_fo,
(SELECT res_status_bo_omschrijving
FROM res_status_bo rs
WHERE rs.res_status_bo_key = rrr.res_status_bo_key)
status_bo,
rrr.res_rsv_ruimte_verwijder,
rrr.res_rsv_ruimte_opmerking,
COALESCE ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
0)
duur,
r2a.uurprijs,
( COALESCE (
(rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
0)
* r2a.uurprijs)
kosten_zaal,
(SELECT COUNT (*)
FROM res_deel rdp, res_rsv_deel rrdp
WHERE rrdp.res_deel_key = rdp.res_deel_key
AND rdp.res_discipline_key = 82 -- Parking
AND rrdp.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
parkeerplaatsen,
35
prijs_parkeerplaats,
( (SELECT COUNT (*)
FROM res_deel rdp, res_rsv_deel rrdp
WHERE rrdp.res_deel_key = rdp.res_deel_key
AND rdp.res_discipline_key = 82 -- Parking
AND rrdp.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key)
* 35)
kosten_parkeren,
COALESCE((SELECT SUM (rra.res_rsv_artikel_prijs)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_verwijder IS NULL), 0)
prijs_catering,
25
administratiekosten,
(CASE
WHEN (rrr.res_rsv_ruimte_van - rrr.res_rsv_ruimte_verwijder) <
1
THEN
'Ja'
ELSE
'Nee'
END)
Last_minute_annulering,
(CASE
WHEN (rrr.res_rsv_ruimte_van - rrr.res_rsv_ruimte_verwijder) <
1
THEN
( COALESCE (
( rrr.res_rsv_ruimte_tot
- rrr.res_rsv_ruimte_van)
* 24
* 0.5,
0)
* r2a.uurprijs)
+ 25 * 0.5
+ COALESCE((SELECT SUM (rra.res_rsv_artikel_prijs)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_verwijder IS NULL), 0)
* 0.5
+ ( (SELECT COUNT (*)
FROM res_deel rdp, res_rsv_deel rrdp
WHERE rrdp.res_deel_key = rdp.res_deel_key
AND rdp.res_discipline_key = 82 -- Parking
AND rrdp.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key)
* 35
* 0.5)
ELSE
( COALESCE (
( rrr.res_rsv_ruimte_tot
- rrr.res_rsv_ruimte_van)
* 24,
0)
* r2a.uurprijs)
+ 25
+ COALESCE((SELECT SUM (rra.res_rsv_artikel_prijs)
FROM res_rsv_artikel rra
WHERE rra.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key
AND rra.res_rsv_artikel_verwijder IS NULL), 0)
+ ( (SELECT COUNT (*)
FROM res_deel rdp, res_rsv_deel rrdp
WHERE rrdp.res_deel_key = rdp.res_deel_key
AND rdp.res_discipline_key = 82 -- Parking
AND rrdp.res_rsv_ruimte_key =
rrr.res_rsv_ruimte_key)
* 35)
END)
totaalprijs
FROM res_rsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
res_reservering res,
prs_kostenplaats k,
prs_perslid p,
prs_afdeling a,
( SELECT res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ro.res_ruimte_opstel_bezoekers) capaciteit,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr,
MAX (rr.res_ruimte_prijs) uurprijs
FROM res_rsv_ruimte r,
res_ruimte_opstelling ro,
res_opstelling o,
res_ruimte rr,
res_alg_ruimte ra
WHERE r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
AND rr.res_ruimte_key = ra.res_ruimte_key
GROUP BY res_rsv_ruimte_key) r2a
WHERE rrr.res_reservering_key = res.res_reservering_key
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2010', 'DD-MM-YYYY');
------ payload end ------
SET DEFINE OFF
BEGIN adm.systrackscriptId ('$Id$', 0); END;
/
COMMIT;
SET ECHO OFF
SPOOL OFF
SET DEFINE ON
PROMPT Logfile of this upgrade is: &fcltlogfile