CIZN#81269 -- Implementatie CIZ
svn path=/Customer/trunk/; revision=63963
This commit is contained in:
266
CIZN/cizn.sql
Normal file
266
CIZN/cizn.sql
Normal file
@@ -0,0 +1,266 @@
|
||||
--
|
||||
-- $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 = 0 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
|
||||
Reference in New Issue
Block a user