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:
Jos Migo
2024-05-02 13:30:54 +00:00
parent 7f9bb8d64a
commit 3c08845e87

View File

@@ -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'