TAYL#83067 -- Werkplekreserveringen en via ruimte_reserveringen en kleuren-thema werkplekken visueel blokken voor bepaalde afdelingen
svn path=/Customer/trunk/; revision=64491
This commit is contained in:
277
TAYL/tayl.sql
277
TAYL/tayl.sql
@@ -83,155 +83,140 @@ AS
|
||||
--- AUTOCAD-THEMA'S en LABELS ----------
|
||||
----------------------------------------
|
||||
|
||||
-- Cust-label tekst bij werkplekreserveringen
|
||||
--- Op basis van cad_v_label_deel_reservering aangevuld met hulpview tayl_v_label_werkplek_info om de objecten in tekening (wel/niet reserveerbaar) aan te vullen met informatie uit object-kenmerken (vast plek van... en werkplek voor alleen laptops)
|
||||
|
||||
-- hulpview...
|
||||
CREATE OR REPLACE VIEW tayl_v_label_werkplek_info
|
||||
(
|
||||
INS_DEEL_KEY,
|
||||
INS_DEEL_UPPER,
|
||||
RESERVEERBAAR,
|
||||
WAARDE
|
||||
)
|
||||
AS
|
||||
SELECT isd.ins_deel_key,
|
||||
isd.ins_deel_upper,
|
||||
DECODE(kw.reserveerbaar, NULL, 'nee', 'ja')
|
||||
reserveerbaar,
|
||||
CASE WHEN isd.ins_srtdeel_key = 81 THEN '' -- leeg bureau...
|
||||
WHEN isd.ins_srtdeel_key = 41 AND kw.reserveerbaar IS NULL AND kw.vaste_werkplek_van IS NOT NULL THEN kw.vaste_werkplek_van -- vast plek van...
|
||||
WHEN isd.ins_srtdeel_key = 41 AND kw.reserveerbaar IS NOT NULL AND kw.laptop_werkplek = 62 THEN 'laptop-plek' -- reserveerbare plek voor alleen laptop (key = 62)
|
||||
ELSE NULL
|
||||
END
|
||||
waarde
|
||||
FROM ins_v_aanwezigdeel isd,
|
||||
(SELECT d.ins_deel_key,
|
||||
FLX.getdomeinwaarde (61,FLX.getflex('INS', 63, d.ins_deel_key))
|
||||
vaste_werkplek_van,
|
||||
FLX.getflex('INS', 62, d.ins_deel_key) -- key 62 is laptop-werkplek
|
||||
laptop_werkplek,
|
||||
FLX.getflex('INS', 64, d.ins_deel_key)
|
||||
werkplek_info,
|
||||
(SELECT max(rd.res_deel_key) FROM res_deel rd WHERE rd.res_ins_deel_key = d.ins_deel_key AND rd.res_deel_verwijder IS NULL AND rd.res_discipline_key = 101 )
|
||||
reserveerbaar
|
||||
FROM ins_deel d) kw
|
||||
WHERE isd.ins_discipline_key IN (81) -- werkplekken
|
||||
AND isd.ins_deel_key = kw.ins_deel_key;
|
||||
|
||||
-- View om de juiste labels te tonen in het werkplekreserveringsscherm.
|
||||
CREATE OR REPLACE VIEW tayl_v_label_deel_res_datum
|
||||
(
|
||||
fclt_f_datum,
|
||||
ins_deel_key,
|
||||
res_deel_omschrijving,
|
||||
waarde1,
|
||||
waarde,
|
||||
waarde3,
|
||||
waarde_html,
|
||||
waarde_html2
|
||||
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 'Ruimte reservering tbv blokken wp's' vullen.
|
||||
CREATE OR REPLACE VIEW tayl_v_thema_ruimte_dag
|
||||
(
|
||||
FCLT_F_DATUM,
|
||||
ALG_RUIMTE_KEY,
|
||||
ALG_RES_RUIMTE_KEY,
|
||||
RESERVERINGSNR,
|
||||
WAARDE1,
|
||||
WAARDE,
|
||||
WAARDE3,
|
||||
WAARDE_HTML,
|
||||
WAARDE_HTML2
|
||||
)
|
||||
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,
|
||||
DECODE (naam, NULL, v.waarde, '') ||
|
||||
CHR (10)
|
||||
|| LISTAGG (
|
||||
DECODE (
|
||||
naam,
|
||||
NULL, '',
|
||||
'[s75]'
|
||||
|| 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,
|
||||
DECODE (naam, NULL, v.waarde, '') ||
|
||||
CHR (10)
|
||||
|| LISTAGG (
|
||||
DECODE (naam,
|
||||
NULL, '',
|
||||
'[s75]' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || naam),
|
||||
CHR (10))
|
||||
WITHIN GROUP (ORDER BY res_rsv_deel_van)
|
||||
waarde2,
|
||||
DECODE (naam, NULL, v.waarde, '') ||
|
||||
CHR (10)
|
||||
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10))
|
||||
WITHIN GROUP (ORDER BY res_rsv_deel_van)
|
||||
waarde3,
|
||||
LISTAGG (
|
||||
DECODE (
|
||||
naam,
|
||||
NULL, v.waarde,
|
||||
'<span class="body">'
|
||||
|| v.waarde || ' '
|
||||
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|
||||
|| ' '
|
||||
|| naam
|
||||
|| '</span>'),
|
||||
'<br>')
|
||||
WITHIN GROUP (ORDER BY res_rsv_deel_van)
|
||||
waarde_html,
|
||||
LISTAGG (DECODE (naam, NULL, v.waarde, '<span class="body">' || naam || '</span>'), '<br>')
|
||||
WITHIN GROUP (ORDER BY res_rsv_deel_van)
|
||||
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
|
||||
tayl_v_label_werkplek_info v
|
||||
WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+) AND datums.datum = res.datum(+)
|
||||
AND isd.res_ins_deel_key = v.ins_deel_key
|
||||
GROUP BY datums.datum, isd.res_ins_deel_key, res_deel_omschrijving, v.waarde, naam
|
||||
UNION -- Voor alle NIET-reserveerbare objecten in de tekening de extra info erbij halen
|
||||
SELECT datums.datum
|
||||
fclt_f_datum,
|
||||
v.ins_deel_key,
|
||||
v.ins_deel_upper,
|
||||
v.waarde waarde1,
|
||||
v.waarde waarde,
|
||||
v.waarde waarde3,
|
||||
v.waarde waarde_html,
|
||||
v.waarde waarde_html2
|
||||
FROM tayl_v_label_werkplek_info v, datums
|
||||
WHERE v.reserveerbaar = 'nee'
|
||||
GROUP BY datums.datum, v.ins_deel_key, v.ins_deel_upper, v.waarde
|
||||
;
|
||||
WITH
|
||||
datums
|
||||
AS
|
||||
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
||||
FROM DUAL
|
||||
CONNECT BY LEVEL <= 30)
|
||||
SELECT datums.datum fclt_f_datum, --count(res.res_ins_deel_key),
|
||||
r2a.alg_ruimte_key ,
|
||||
r2a.res_ruimte_key,
|
||||
r2a.reserveringsnr,
|
||||
afdeling || 'w1' waarde1,
|
||||
afdeling waarde2,
|
||||
afdeling || 'w3' waarde3,
|
||||
afdeling
|
||||
|| 'h1' waarde_html,
|
||||
afdeling
|
||||
|| 'h2' waarde_html2
|
||||
FROM (SELECT ra.*, rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reserveringsnr
|
||||
FROM res_v_rsv_ruimte_2_alg_ruimte ra,
|
||||
res_rsv_ruimte rrr
|
||||
WHERE ra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||||
AND ra.res_alg_ruimte_verwijder IS NULL
|
||||
AND ra.res_rsv_ruimte_dirtlevel = 0
|
||||
) r2a,
|
||||
datums,
|
||||
(SELECT datum,
|
||||
res_rsv_ruimte_key,
|
||||
flx.getdomeinwaarde(221, flx.getflex ('RES', 141, 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(+) ;
|
||||
|
||||
CREATE OR REPLACE VIEW tayl_v_thema_vloersoort
|
||||
(
|
||||
@@ -901,7 +886,7 @@ AS
|
||||
DECODE(voorz.dirtlevel, 0, NULL, 'Ongeldig')
|
||||
dirtlevel_cv,
|
||||
voorz.vervaldatum,
|
||||
CASE WHEN voorz.vervaldatum IS NOT NULL THEN
|
||||
CASE WHEN voorz.vervaldatum IS NOT NULL AND TRUNC(rrr.res_rsv_ruimte_van) >= TRUNC(voorz.vervaldatum) THEN
|
||||
'Ongeldig - wp vervallen'
|
||||
WHEN voorz.dirtlevel > 0 THEN
|
||||
'Ongeldig - wp al bezet'
|
||||
|
||||
Reference in New Issue
Block a user