-- -- $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