267 lines
12 KiB
MySQL
267 lines
12 KiB
MySQL
--
|
|
-- $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, '',
|
|
'<span class="body">' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || naam || '</span>'),
|
|
'<br>')
|
|
WITHIN GROUP (ORDER BY res_rsv_deel_van) || 'h1'
|
|
waarde_html,
|
|
LISTAGG (DECODE (naam, NULL, '', '<span class="body">' || naam || '</span>'), '<br>')
|
|
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
|