From b37bcd35fa819a1b98c178636acdd68c9906c0b6 Mon Sep 17 00:00:00 2001 From: Peter Feij Date: Thu, 8 Apr 2021 14:23:56 +0000 Subject: [PATCH] FCLT#66178 openbare core-labelthema's (voor wp-reservering) houden rekening met visibility-setting van personen Tevens beetje onderhoud qua naam_friendly en i18n svn path=/Database/trunk/; revision=50708 --- CAD/CAD_VIE.SRC | 278 +++++++++++++++++++++--------------------------- 1 file changed, 119 insertions(+), 159 deletions(-) diff --git a/CAD/CAD_VIE.SRC b/CAD/CAD_VIE.SRC index 05fb9f7f..2d229f9b 100644 --- a/CAD/CAD_VIE.SRC +++ b/CAD/CAD_VIE.SRC @@ -50,22 +50,19 @@ SELECT CREATE_VIEW(cad_v_label_bewoner, 0) (alg_ruimte_key, waarde) AS -SELECT prs_w.prs_alg_ruimte_key, - prs_p.prs_perslid_naam - || DECODE (prs_p.prs_perslid_voorletters, NULL, '', ', ' || prs_p.prs_perslid_voorletters) - || DECODE (prs_p.prs_perslid_voornaam, NULL, '', ' (' || prs_p.prs_perslid_voornaam || ')') - FROM prs_werkplek prs_w, prs_perslidwerkplek prs_pw, prs_perslid prs_p - WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key - AND prs_pw.prs_perslid_key IS NOT NULL - AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key - AND prs_w.prs_werkplek_virtueel = 0 -UNION -SELECT prs_w.prs_alg_ruimte_key, '[Vrij]' - FROM prs_werkplek prs_w, prs_v_werkplek_bezetting prs_wb - WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key - AND prs_w.prs_werkplek_virtueel = 0 - AND prs_wb.prs_werkplek_bezetting < 100; - + SELECT prs_w.prs_alg_ruimte_key, + prs_p.prs_perslid_naam_friendly + FROM prs_werkplek prs_w, prs_perslidwerkplek prs_pw, prs_v_perslid_fullnames prs_p + WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key + AND prs_pw.prs_perslid_key IS NOT NULL + AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key + AND prs_w.prs_werkplek_virtueel = 0 + UNION + SELECT prs_w.prs_alg_ruimte_key, '['||lcl.l('lcl_free')||']' + FROM prs_werkplek prs_w, prs_v_werkplek_bezetting prs_wb + WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key + AND prs_w.prs_werkplek_virtueel = 0 + AND prs_wb.prs_werkplek_bezetting < 100; -- Toont alle afdelingen die aan een ruimte gekoppeld zijn CREATE_VIEW(cad_v_label_afdelingen, 0) @@ -128,37 +125,31 @@ SELECT wp.prs_alg_ruimte_key, d.prs_afdeling_naam CREATE_VIEW(cad_v_label_bewonerwp, 0) (alg_ruimte_key,waarde) AS - SELECT DISTINCT prs_alg_ruimte_key, waarde - FROM (SELECT prs_w.prs_alg_ruimte_key, - CHR (1) - || prs_w.prs_werkplek_volgnr - || ' ' - || prs_p.prs_perslid_naam - || DECODE (prs_p.prs_perslid_voorletters, NULL, '', ', ' || prs_p.prs_perslid_voorletters) - || DECODE (prs_p.prs_perslid_voornaam, NULL, '', ' (' || prs_p.prs_perslid_voornaam || ')') - || ': ' - || TO_CHAR (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0)) - || '%' waarde - FROM prs_werkplek prs_w, - prs_perslidwerkplek prs_pw, - prs_perslid prs_p - WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key - AND prs_pw.prs_perslid_key IS NOT NULL - AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key - UNION - SELECT prs_w.prs_alg_ruimte_key, - CHR (1) - || prs_w.prs_werkplek_volgnr - || ' Vrij: ' - || TO_CHAR (100 - NVL (SUM (prs_wb.prs_perslidwerkplek_bezetting), 0)) - || '%' - FROM prs_werkplek prs_w, - prs_perslidwerkplek prs_wb - WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key(+) - GROUP BY prs_w.prs_alg_ruimte_key, prs_w.prs_werkplek_key, prs_w.prs_werkplek_volgnr - HAVING SUM (NVL (prs_wb.prs_perslidwerkplek_bezetting, 0)) < 100) DATA -/ - + SELECT DISTINCT prs_alg_ruimte_key, waarde + FROM (SELECT prs_w.prs_alg_ruimte_key, + CHR (1) + || prs_w.prs_werkplek_volgnr + || ' ' + || prs_p.prs_perslid_naam_friendly + || ' ' + || TO_CHAR (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0)) + || '%' + waarde + FROM prs_werkplek prs_w, prs_perslidwerkplek prs_pw, prs_v_perslid_fullnames prs_p + WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key + AND prs_pw.prs_perslid_key IS NOT NULL + AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key + UNION + SELECT prs_w.prs_alg_ruimte_key, + CHR (1) + || prs_w.prs_werkplek_volgnr + || ' '|| initcap(lcl.l('lcl_free'))||' ' + || TO_CHAR (100 - NVL (SUM (prs_wb.prs_perslidwerkplek_bezetting), 0)) + || '%' + FROM prs_werkplek prs_w, prs_perslidwerkplek prs_wb + WHERE prs_w.prs_werkplek_key = prs_wb.prs_werkplek_key(+) + GROUP BY prs_w.prs_alg_ruimte_key, prs_w.prs_werkplek_key, prs_w.prs_werkplek_volgnr + HAVING SUM (NVL (prs_wb.prs_perslidwerkplek_bezetting, 0)) < 100) data; CREATE_VIEW(CAD_V_THEMA_AANTALWP, 0) (ALG_RUIMTE_KEY, WAARDE) AS @@ -274,26 +265,24 @@ AS CREATE_VIEW(cad_v_label_bewoner2,0) (alg_ruimte_key, waarde) AS - SELECT alg_ruimte_key, - prs_p.prs_perslid_naam - || DECODE (prs_p.prs_perslid_voorletters, - NULL, '', - ', ' || prs_p.prs_perslid_voorletters - ) - || DECODE (prs_p.prs_perslid_voornaam, - NULL, '', - ' (' || prs_p.prs_perslid_voornaam || ')' - ) - || '-' - || CASE - WHEN aantalwp > 1 - THEN norm_verband || '/' - ELSE '' - END - || prs_p.prs_perslid_dienstverband - || ' FTE' - FROM prs_perslid prs_p, prs_v_norm_verband pnv - WHERE pnv.prs_perslid_key = prs_p.prs_perslid_key; + SELECT alg_ruimte_key, + pf.prs_perslid_naam_friendly + || '-' + || CASE + WHEN aantalwp > 1 AND norm_verband IS NOT NULL THEN norm_verband || '/' + ELSE '' + END + || CASE + WHEN p.prs_perslid_dienstverband IS NOT NULL + THEN + p.prs_perslid_dienstverband || '%' + ELSE + '' + END + FROM prs_v_perslid_fullnames pf, prs_perslid p, prs_v_norm_verband pnv + WHERE pf.prs_perslid_key = p.prs_perslid_key + AND pnv.prs_perslid_key = p.prs_perslid_key + AND p.prs_perslid_verwijder IS NULL; CREATE OR REPLACE FORCE VIEW PRJ_V_CAD_LABEL_BEWONERWPE ( @@ -302,59 +291,48 @@ CREATE OR REPLACE FORCE VIEW PRJ_V_CAD_LABEL_BEWONERWPE HIGHLIGHT ) AS - SELECT DISTINCT - prj_werkplek_key, waarde, DECODE (prj_selectie_key, NULL, 0, 1) - FROM (SELECT prj_r.prj_scenario_key, - prs_w.prj_werkplek_key, - prs_p.prs_perslid_naam - || DECODE (prs_p.prs_perslid_voorletters, - NULL, '', - ', ' || prs_p.prs_perslid_voorletters) - || DECODE (prs_p.prs_perslid_voornaam, - NULL, '', - ' (' || prs_p.prs_perslid_voornaam || ')') - || ': ' - || TO_CHAR (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0)) - || '%' - waarde, - 'PRJ_WERKPLEK' label_soort, - prs_pw.prj_werkplek_key label_key - FROM PRJ_RUIMTE prj_r, - PRJ_WERKPLEK prs_w, - (SELECT * - FROM PRJ_PERSLIDWERKPLEK - WHERE prj_perslidwerkplek_verwijder IS NULL) prs_pw, - PRS_PERSLID prs_p - WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key - AND prs_pw.prs_perslid_key IS NOT NULL - AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key - AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key - UNION - SELECT -1, - prs_w.prj_werkplek_key, - ' Vrij: ' - || TO_CHAR(100 - - NVL ( - SUM (prs_wb.prj_perslidwerkplek_bezetting), - 0)) - || '%', - 'PRJ_WERKPLEK', - prs_w.prj_werkplek_key - FROM PRJ_WERKPLEK prs_w, - (SELECT * - FROM PRJ_PERSLIDWERKPLEK - WHERE prj_perslidwerkplek_verwijder IS NULL) prs_wb - WHERE prs_w.prj_werkplek_key = prs_wb.prj_werkplek_key(+) - AND prj_werkplek_verwijder IS NULL - GROUP BY prs_w.prj_werkplek_key, - prs_w.prj_werkplek_key, - prs_w.prj_werkplek_volgnr - HAVING SUM (NVL (prs_wb.prj_perslidwerkplek_bezetting, 0)) < 100) - DATA, - PRJ_SELECTIE ps - WHERE ps.prj_scenario_key(+) = DATA.prj_scenario_key - AND ps.prj_selectie_tabelnaam(+) = label_soort - AND ps.prj_selectie_tabelkey(+) = label_key; + SELECT DISTINCT prj_werkplek_key, waarde, DECODE (prj_selectie_key, NULL, 0, 1) + FROM (SELECT prj_r.prj_scenario_key, + prs_w.prj_werkplek_key, + prs_p.prs_perslid_naam_friendly + || ': ' + || TO_CHAR (NVL (prs_pw.prj_perslidwerkplek_bezetting, 0)) + || '%' + waarde, + 'PRJ_WERKPLEK' + label_soort, + prs_pw.prj_werkplek_key + label_key + FROM prj_ruimte prj_r, + prj_werkplek prs_w, + (SELECT * + FROM prj_perslidwerkplek + WHERE prj_perslidwerkplek_verwijder IS NULL) prs_pw, + prs_v_perslid_fullnames prs_p + WHERE prs_w.prj_werkplek_key = prs_pw.prj_werkplek_key + AND prs_pw.prs_perslid_key IS NOT NULL + AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key + AND prs_w.prj_ruimte_key = prj_r.prj_ruimte_key + UNION + SELECT -1, + prs_w.prj_werkplek_key, + ' Vrij: ' + || TO_CHAR (100 - NVL (SUM (prs_wb.prj_perslidwerkplek_bezetting), 0)) + || '%', + 'PRJ_WERKPLEK', + prs_w.prj_werkplek_key + FROM prj_werkplek prs_w, + (SELECT * + FROM prj_perslidwerkplek + WHERE prj_perslidwerkplek_verwijder IS NULL) prs_wb + WHERE prs_w.prj_werkplek_key = prs_wb.prj_werkplek_key(+) + AND prj_werkplek_verwijder IS NULL + GROUP BY prs_w.prj_werkplek_key, prs_w.prj_werkplek_key, prs_w.prj_werkplek_volgnr + HAVING SUM (NVL (prs_wb.prj_perslidwerkplek_bezetting, 0)) < 100) data, + prj_selectie ps + WHERE ps.prj_scenario_key(+) = data.prj_scenario_key + AND ps.prj_selectie_tabelnaam(+) = label_soort + AND ps.prj_selectie_tabelkey(+) = label_key; /* Lijstje met (ALGCAD) wijzigingen op een ruimte Kolom FAC_TRACKING_DATUM om een klantspecifieke beperking mogelijk te maken @@ -443,26 +421,14 @@ CREATE_VIEW(cad_v_label_wp_bewoner, 0) AS SELECT DISTINCT prs_w.prs_werkplek_key, - DECODE ( - prs_p.prs_perslid_voornaam, - NULL, - DECODE (prs_p.prs_perslid_voorletters, - NULL, '', - prs_p.prs_perslid_voorletters || ' '), - prs_p.prs_perslid_voornaam || ' ') - || DECODE (prs_p.prs_perslid_tussenvoegsel, - NULL, '', - prs_p.prs_perslid_tussenvoegsel || ' ') - || prs_p.prs_perslid_naam + prs_p.prs_perslid_naam_friendly || CASE WHEN prs_pw.prs_perslidwerkplek_bezetting < 100 THEN ' (' || TO_CHAR (NVL (prs_pw.prs_perslidwerkplek_bezetting, 0)) || '%)' END waarde - FROM prs_werkplek prs_w, - prs_perslidwerkplek prs_pw, - prs_perslid prs_p + FROM prs_werkplek prs_w, prs_perslidwerkplek prs_pw, prs_v_perslid_fullnames prs_p WHERE prs_w.prs_werkplek_key = prs_pw.prs_werkplek_key AND prs_pw.prs_perslid_key IS NOT NULL AND prs_pw.prs_perslid_key = prs_p.prs_perslid_key; @@ -629,10 +595,10 @@ AS CHR (10) || LISTAGG ( DECODE ( - prs_perslid_naam_friendly, + naam, NULL, '', '[s40]' - || prs_perslid_naam_friendly + || naam || ' (' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || '-' @@ -645,65 +611,59 @@ AS waarde1, CHR (10) || LISTAGG ( - DECODE ( - prs_perslid_naam_friendly, - NULL, '', - '[s40]' - || TO_CHAR (res_rsv_deel_van, 'HH24:MI') - || ' ' - || prs_perslid_naam_friendly), + 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 (prs_perslid_naam_friendly, - NULL, '', - '[s40]' || prs_perslid_naam_friendly), - CHR (10)) + || LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10)) WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde3, LISTAGG ( DECODE ( - prs_perslid_naam_friendly, + naam, NULL, '', '' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' - || prs_perslid_naam_friendly + || naam || ''), '
') WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde_html, - LISTAGG ( - DECODE (prs_perslid_naam_friendly, - NULL, '', - '' || prs_perslid_naam_friendly || ''), - '
') + LISTAGG (DECODE (naam, NULL, '', '' || naam || ''), '
') WITHIN GROUP (ORDER BY res_rsv_deel_van) waarde_html2 FROM res_v_aanwezigdeel isd, datums, (SELECT datum, res_ins_deel_key, - prs_perslid_naam_friendly, + 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 p, + 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 = p.prs_perslid_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 >= TRUNC (res_rsv_deel_van) AND datum < TRUNC (res_rsv_deel_tot + 1)) 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, res_deel_omschrijving; - -- -- Thema's gebaseerd op objectstatus van objecten binnen ruimte/werkplek (typisch sensoren) --