--
-- $Id$
--
-- Script containing customer specific sql statements for CIZN
DEFINE thisfile = 'cizn.sql'
DEFINE dbuser = 'CIZN'
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 VIEW cizn_v_rap_export_kentekens
AS
SELECT 'extern' typebezoek,
alg_locatie_omschrijving locatie,
rrd.res_rsv_deel_van datum,
REPLACE (kw.res_kenmerkreservering_waarde, '-') kenteken,
pf.prs_perslid_naam_full naam,
TO_CHAR (rrd.res_rsv_deel_van, 'dd-mm-yyyy hh24:mi') van,
TO_CHAR (rrd.res_rsv_deel_tot, 'dd-mm-yyyy hh24:mi') tot
FROM res_rsv_deel rrd,
res_deel rd,
ins_v_deel_gegevens dg,
alg_locatie l,
res_rsv_ruimte rrr,
res_kenmerkwaarde kw,
res_kenmerk k,
res_srtkenmerk sk,
prs_v_perslid_fullnames pf
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND kw.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
AND sk.res_srtkenmerk_code = 'KENTEKEN_EXT'
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
AND rrd.res_rsv_deel_verwijder IS NULL
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_ins_deel_key = dg.ins_deel_key
AND dg.alg_locatie_key = l.alg_locatie_key
UNION ALL
SELECT 'bezoekers' typebezoek,
l.alg_locatie_omschrijving locatie,
a.bez_afspraak_datum datum,
REPLACE (bez_bezoekers_kenteken, '-') kenteken,
bez_afspraak_naam naam,
TO_CHAR (a.bez_afspraak_datum, 'dd-mm-yyyy hh24:mi') van,
TO_CHAR (a.bez_afspraak_eind, 'dd-mm-yyyy hh24:mi') tot
FROM bez_bezoekers b,
bez_afspraak a,
res_rsv_deel rrd,
res_deel rd,
ins_v_deel_gegevens dg,
alg_locatie l
WHERE b.bez_afspraak_key = a.bez_afspraak_key
AND b.bez_bezoekers_key = rrd.bez_bezoekers_key
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_ins_deel_key = dg.ins_deel_key
AND dg.alg_locatie_key = l.alg_locatie_key
AND rrd.res_rsv_deel_verwijder IS NULL;
-- View om de juiste labels te tonen in het werkplekreserveringsscherm.
CREATE OR REPLACE FORCE VIEW CIZN_V_LABEL_DEEL_RES_DATUM
(
FCLT_F_DATUM,
INS_DEEL_KEY,
RES_DEEL_OMSCHRIJVING,
WAARDE1,
WAARDE,
WAARDE3,
WAARDE_HTML,
WAARDE_HTML2
)
BEQUEATH DEFINER
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 14)
SELECT datums.datum
fclt_f_datum,--count(res.res_ins_deel_key),
isd.res_ins_deel_key
ins_deel_key,
isd.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) || 'w1'
waarde1,
DECODE (count(res.res_ins_deel_key), 0, substr(isd.res_deel_omschrijving, INSTR(isd.res_deel_omschrijving, '.') +1, 20),
CHR (10)
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || 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) || 'w3'
waarde3,
LISTAGG (
DECODE (naam,
NULL, '',
'' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || naam || ''),
'
')
WITHIN GROUP (ORDER BY res_rsv_deel_van) || 'h1'
waarde_html,
LISTAGG (DECODE (naam, NULL, '', '' || naam || ''), '
')
WITHIN GROUP (ORDER BY res_rsv_deel_van) || 'h2'
waarde_html2
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, isd.res_deel_omschrijving;
-- Thema om het vlekkenplan te tonen welke afdeling die dag de ruimte gepland heeft. Om dit in te richten moet je voor
-- deze ruimten een reservering inleggen en het veld afdeling vullen.
CREATE OR REPLACE VIEW cizn_v_thema_ruimte_dag
(
FCLT_F_DATUM,
ALG_RUIMTE_KEY,
alg_ruimte_OMSCHRIJVING,
WAARDE1,
WAARDE,
WAARDE3,
WAARDE_HTML,
WAARDE_HTML2
)
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 14)
SELECT datums.datum fclt_f_datum, --count(res.res_ins_deel_key),
r2a.alg_ruimte_key ,
r2a.alg_ruimte_key,
afdeling || 'w1' waarde1,
afdeling waarde2,
afdeling || 'w3' waarde3,
afdeling
|| 'h1' waarde_html,
afdeling
|| 'h2' waarde_html2
FROM RES_V_RSV_RUIMTE_2_ALG_RUIMTE r2a,
datums,
(SELECT datum,
res_rsv_ruimte_key,
flx.getdomeinwaarde(1, flx.getflex ('RES', 41, rrr.res_rsv_ruimte_key)) afdeling
FROM res_v_aanwezigrsv_ruimte rrr,
datums
WHERE TRUNC(datum) = TRUNC(res_rsv_ruimte_van)) res -- Bezet
WHERE r2a.res_rsv_ruimte_key = res.res_rsv_ruimte_key(+)
AND datums.datum = res.datum(+);
-- Kopie van het standaard thema waarbij de zit/sta bureaus zijn toegevoegd. Deze krijgen een andere kleur als ze beschikbaar zijn.
CREATE OR REPLACE VIEW cizn_v_thema_deel_res_datum
AS
WITH
datums
AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 42)
SELECT datum fclt_f_datum,
ins_deel_key,
MIN (res_rsv_deel_van) min_van,
MAX (res_rsv_deel_tot) max_tot,
CASE WHEN MAX (res_rsv_deel_tot) IS NULL THEN 0 ELSE 3 -- hele dag
END waarde1,
CASE
WHEN MAX (res_rsv_deel_tot) IS NULL AND zitsta IS NULL THEN 0 -- beschikbaar normaal bureau
WHEN MAX (res_rsv_deel_tot) IS NULL AND zitsta = 1 THEN 4 -- beschikbaar zitsta bureau
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- ochtend
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- middag
ELSE 3 -- hele dag
END waarde,
COUNT (res_rsv_deel_tot) -- aantal reservering deze dag
waarde3
FROM (SELECT datums.datum,
res_ins_deel_key ins_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot,
zitsta
FROM res_v_aanwezigdeel r,
ins_deel d,
(SELECT ins_deel_key, 1 zitsta
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
AND sk.ins_srtkenmerk_code = 'ZITSTA') kd,
datums,
(SELECT datum,
res_deel_key,
res_rsv_deel_van,
res_rsv_deel_tot
FROM datums, res_v_aanwezigrsv_deel rrd
WHERE res_rsv_deel_van > TRUNC (SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
AND datum + 1 >= res_rsv_deel_van
AND datum < res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
AND datums.datum = blokkerend.datum(+)
AND d.ins_deel_key = kd.ins_deel_key(+)
AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > datums.datum)
AND d.ins_deel_key = r.res_ins_deel_key)
GROUP BY datum, ins_deel_key, zitsta
ORDER BY datum, ins_deel_key;
------ 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