TAYL#78713 -- Implementatie Facilitor bij Taylor en Wessing - diverse views en labels o.a. tbv graphics werkplekken reserveren
svn path=/Customer/trunk/; revision=61868
This commit is contained in:
315
TAYL/tayl.sql
315
TAYL/tayl.sql
@@ -48,9 +48,190 @@ AS
|
||||
ORDER BY prs_bedrijf_naam
|
||||
;
|
||||
|
||||
------------------------------
|
||||
--- AUTOCAD-THEMA'S ----------
|
||||
------------------------------
|
||||
|
||||
-- Lijst van Locatieleiders (tbv domeinview)
|
||||
CREATE OR REPLACE VIEW tayl_v_medewerkers
|
||||
(
|
||||
PRS_PERSLID_KEY,
|
||||
NAAM,
|
||||
AFDELING
|
||||
)
|
||||
AS
|
||||
SELECT
|
||||
p.prs_perslid_key,
|
||||
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
||||
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam -- || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam -- || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
END
|
||||
naam,
|
||||
a.prs_afdeling_naam2
|
||||
FROM
|
||||
prs_perslid p,
|
||||
prs_srtperslid sp,
|
||||
prs_v_afdeling a,
|
||||
prs_bedrijf b
|
||||
WHERE
|
||||
p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND b.prs_bedrijf_key = 6 -- bedrijfs_key TAYL
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
ORDER BY p.prs_perslid_naam
|
||||
;
|
||||
|
||||
----------------------------------------
|
||||
--- 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;
|
||||
|
||||
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
|
||||
)
|
||||
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
|
||||
;
|
||||
|
||||
CREATE OR REPLACE VIEW tayl_v_thema_vloersoort
|
||||
(
|
||||
@@ -160,6 +341,134 @@ AS -- Op rappel-datum naar de Beheerder/Administrateur sturen
|
||||
--- RAPPORTAGES ---------------
|
||||
-------------------------------
|
||||
|
||||
CREATE OR REPLACE VIEW tayl_v_medewerkers_werktijden
|
||||
(
|
||||
PRS_PERSLID_KEY,
|
||||
PRS_PERSLID_NAAM,
|
||||
PRS_PERSLID_AFDELING,
|
||||
MAANDAG,
|
||||
MAANDAG_LOCATIE,
|
||||
DINSDAG,
|
||||
DINSDAG_LOCATIE,
|
||||
WOENSDAG,
|
||||
WOENSDAG_LOCATIE,
|
||||
DONDERDAG,
|
||||
DONDERDAG_LOCATIE,
|
||||
VRIJDAG,
|
||||
VRIJDAG_LOCATIE,
|
||||
WERKWEEK_TOELICHTING
|
||||
)
|
||||
AS
|
||||
SELECT
|
||||
p.prs_perslid_key,
|
||||
CASE WHEN p.prs_perslid_tussenvoegsel IS NULL
|
||||
THEN p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
ELSE p.prs_perslid_voornaam || ' ' || p.prs_perslid_tussenvoegsel || ' ' || p.prs_perslid_naam || ' (' || sp.prs_srtperslid_omschrijving || ')'
|
||||
END
|
||||
naam,
|
||||
a.prs_afdeling_naam2,
|
||||
CASE WHEN kw.ma_ochtend IS NULL and kw.ma_middag IS NULL THEN NULL
|
||||
WHEN kw.ma_ochtend IS NOT NULL and kw.ma_middag IS NULL THEN 'ochtend'
|
||||
WHEN kw.ma_ochtend IS NULL and kw.ma_middag IS NOT NULL THEN 'middag'
|
||||
WHEN kw.ma_ochtend IS NOT NULL and kw.ma_middag IS NOT NULL THEN 'hele dag'
|
||||
ELSE NULL
|
||||
END
|
||||
maandag,
|
||||
CASE WHEN kw.ma_ochtend IS NOT NULL OR kw.ma_middag IS NOT NULL THEN kw.ma_locatie
|
||||
ELSE NULL
|
||||
END
|
||||
maandag_locatie,
|
||||
CASE WHEN kw.di_ochtend IS NULL and kw.di_middag IS NULL THEN NULL
|
||||
WHEN kw.di_ochtend IS NOT NULL and kw.di_middag IS NULL THEN 'ochtend'
|
||||
WHEN kw.di_ochtend IS NULL and kw.di_middag IS NOT NULL THEN 'middag'
|
||||
WHEN kw.di_ochtend IS NOT NULL and kw.di_middag IS NOT NULL THEN 'hele dag'
|
||||
ELSE NULL
|
||||
END
|
||||
dinsdag,
|
||||
CASE WHEN kw.di_ochtend IS NOT NULL OR kw.di_middag IS NOT NULL THEN kw.di_locatie
|
||||
ELSE NULL
|
||||
END
|
||||
dinsdag_locatie,
|
||||
CASE WHEN kw.wo_ochtend IS NULL and kw.wo_middag IS NULL THEN NULL
|
||||
WHEN kw.wo_ochtend IS NOT NULL and kw.wo_middag IS NULL THEN 'ochtend'
|
||||
WHEN kw.wo_ochtend IS NULL and kw.wo_middag IS NOT NULL THEN 'middag'
|
||||
WHEN kw.wo_ochtend IS NOT NULL and kw.wo_middag IS NOT NULL THEN 'hele dag'
|
||||
ELSE NULL
|
||||
END
|
||||
woensdag,
|
||||
CASE WHEN kw.wo_ochtend IS NOT NULL OR kw.wo_middag IS NOT NULL THEN kw.wo_locatie
|
||||
ELSE NULL
|
||||
END
|
||||
woensdag_locatie,
|
||||
CASE WHEN kw.do_ochtend IS NULL and kw.do_middag IS NULL THEN NULL
|
||||
WHEN kw.do_ochtend IS NOT NULL and kw.do_middag IS NULL THEN 'ochtend'
|
||||
WHEN kw.do_ochtend IS NULL and kw.do_middag IS NOT NULL THEN 'middag'
|
||||
WHEN kw.do_ochtend IS NOT NULL and kw.do_middag IS NOT NULL THEN 'hele dag'
|
||||
ELSE NULL
|
||||
END
|
||||
donderdag,
|
||||
CASE WHEN kw.do_ochtend IS NOT NULL OR kw.do_middag IS NOT NULL THEN kw.do_locatie
|
||||
ELSE NULL
|
||||
END
|
||||
donderdag_locatie,
|
||||
CASE WHEN kw.vr_ochtend IS NULL and kw.vr_middag IS NULL THEN NULL
|
||||
WHEN kw.vr_ochtend IS NOT NULL and kw.vr_middag IS NULL THEN 'ochtend'
|
||||
WHEN kw.vr_ochtend IS NULL and kw.vr_middag IS NOT NULL THEN 'middag'
|
||||
WHEN kw.vr_ochtend IS NOT NULL and kw.vr_middag IS NOT NULL THEN 'hele dag'
|
||||
ELSE NULL
|
||||
END
|
||||
vrijdag,
|
||||
CASE WHEN kw.vr_ochtend IS NOT NULL OR kw.vr_middag IS NOT NULL THEN kw.vr_locatie
|
||||
ELSE NULL
|
||||
END
|
||||
vrijdag_locatie,
|
||||
kw.werkweek_toelichting
|
||||
FROM
|
||||
prs_perslid p,
|
||||
prs_v_afdeling a,
|
||||
prs_bedrijf b,
|
||||
prs_srtperslid sp,
|
||||
(SELECT p.prs_perslid_key,
|
||||
FLX.getflex('PRS',1000, p.prs_perslid_key, 'P')
|
||||
werkweek_toelichting,
|
||||
FLX.getflex('PRS',1041, p.prs_perslid_key, 'P')
|
||||
ma_ochtend,
|
||||
FLX.getflex('PRS',1051, p.prs_perslid_key, 'P')
|
||||
ma_middag,
|
||||
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1056, p.prs_perslid_key, 'P'))
|
||||
ma_locatie,
|
||||
FLX.getflex('PRS',1042, p.prs_perslid_key, 'P')
|
||||
di_ochtend,
|
||||
FLX.getflex('PRS',1052, p.prs_perslid_key, 'P')
|
||||
di_middag,
|
||||
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1057, p.prs_perslid_key, 'P'))
|
||||
di_locatie,
|
||||
FLX.getflex('PRS',1043, p.prs_perslid_key, 'P')
|
||||
wo_ochtend,
|
||||
FLX.getflex('PRS',1053, p.prs_perslid_key, 'P')
|
||||
wo_middag,
|
||||
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1058, p.prs_perslid_key, 'P'))
|
||||
wo_locatie,
|
||||
FLX.getflex('PRS',1044, p.prs_perslid_key, 'P')
|
||||
do_ochtend,
|
||||
FLX.getflex('PRS',1054, p.prs_perslid_key, 'P')
|
||||
do_middag,
|
||||
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1059, p.prs_perslid_key, 'P'))
|
||||
do_locatie,
|
||||
FLX.getflex('PRS',1045, p.prs_perslid_key, 'P')
|
||||
vr_ochtend,
|
||||
FLX.getflex('PRS',1055, p.prs_perslid_key, 'P')
|
||||
vr_middag,
|
||||
FLX.getdomeinwaarde (81, FLX.getflex('PRS',1060, p.prs_perslid_key, 'P'))
|
||||
vr_locatie
|
||||
FROM prs_perslid p) kw
|
||||
WHERE
|
||||
p.prs_perslid_key = kw.prs_perslid_key
|
||||
AND p.prs_perslid_verwijder IS NULL
|
||||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||||
AND a.prs_bedrijf_key = b.prs_bedrijf_key
|
||||
AND b.prs_bedrijf_key = 6 -- bedrijfs_key TAYL
|
||||
AND p.prs_srtperslid_key = sp.prs_srtperslid_key ;
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user