FCLT#59548 Scope level in autorisatierapporten beter leesbaar

svn path=/Database/trunk/; revision=55307
This commit is contained in:
Peter Feij
2022-03-16 12:14:34 +00:00
parent af26a79228
commit 8bd4cfc8dd
2 changed files with 126 additions and 38 deletions

View File

@@ -61,6 +61,7 @@ CREATE OR REPLACE PACKAGE fac
FUNCTION safe_To_Date ( pchar IN VARCHAR2, pfmt IN VARCHAR2 ) RETURN DATE;
FUNCTION getweekdaynum (d IN DATE) RETURN NUMBER;
FUNCTION getdomeinwaarde (dkey IN NUMBER, waarde IN VARCHAR2, ignorewhenxmlnode IN NUMBER DEFAULT 0) RETURN VARCHAR2;
FUNCTION getscopeleveltext (plevel IN NUMBER, ptype IN VARCHAR) RETURN VARCHAR;
FUNCTION count_Work_Days ( pdate1 IN DATE , pdate2 IN DATE ) RETURN NUMBER;
FUNCTION count_Work_Days_InclTime ( pdate1 IN DATE , pdate2 IN DATE ) RETURN NUMBER;
FUNCTION iswerkdag (begindatum IN DATE) RETURN NUMBER;
@@ -331,6 +332,67 @@ CREATE OR REPLACE PACKAGE BODY fac AS
RETURN MOD (TO_CHAR (d, 'J') + 1, 7) + 1;
END;
-- Vertaalt het autorisatielevel (-1..9) voor het type ('ALG', 'PRS') naar een tekst
FUNCTION getscopeleveltext (plevel IN NUMBER, ptype IN VARCHAR) RETURN VARCHAR
IS
BEGIN
IF plevel = -1
THEN
RETURN lcl.l ('lcl_all');
ELSIF plevel = 9
THEN
RETURN lcl.l ('fac_functie_auth_none');
ELSIF ptype = 'ALG'
THEN
IF plevel = 0
THEN
RETURN lcl.l ('lcl_region');
ELSIF plevel = 1
THEN
RETURN lcl.l ('lcl_district');
ELSIF plevel = 2
THEN
RETURN lcl.l ('lcl_location');
ELSIF plevel = 3
THEN
RETURN lcl.l ('lcl_building');
ELSIF plevel = 4
THEN
RETURN lcl.l ('lcl_floor');
ELSIF plevel = 5
THEN
RETURN lcl.l ('lcl_room');
ELSE
RETURN TO_CHAR (plevel);
END IF;
ELSIF ptype = 'PRS'
THEN
IF plevel = 0
THEN
RETURN lcl.l ('lcl_company');
ELSIF plevel = 1
THEN
RETURN lcl.l ('lcl_dep_name_level1');
ELSIF plevel = 2
THEN
RETURN lcl.l ('lcl_dep_name_level2');
ELSIF plevel = 3
THEN
RETURN lcl.l ('lcl_dep_name_level3');
ELSIF plevel = 4
THEN
RETURN lcl.l ('lcl_dep_name_level4');
ELSIF plevel = 5
THEN
RETURN lcl.l ('lcl_dep_name_level5');
ELSE
RETURN TO_CHAR (plevel);
END IF;
ELSE
RETURN TO_CHAR (plevel);
END IF;
END;
/*
* Deprecated. Gebruik de flx versie.
*/

View File

@@ -29,30 +29,43 @@ CREATE_VIEW(fac_v_rap_groeprechten, 0)
fclt_f_login,
email,
last_login,
fclt_f_module,
fclt_f_funcode,
fclt_f_functie,
fclt_f_aspect,
fclt_f_groep,
or_ow_ar_aw
orglevelread,
orglevelwrite,
alglevelread,
alglevelwrite
)
AS
SELECT -- GROEPEN MET DISCIPLINES
p.prs_perslid_naam, p.prs_perslid_oslogin, prs_perslid_email, prs_perslid_login,
f.fac_functie_module,
f.fac_functie_code,
COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst, f.fac_functie_omschrijving),
(CASE WHEN ins_srtdiscipline_prefix IS NULL THEN '' ELSE ins_srtdiscipline_prefix||'-' END) ||
decode(a.ins_discipline_module, 'BES', 'Categorie ',
'INS', 'Discipline ',
'MLD', 'Vakgroep ',
'RES', 'Catalogus ',
ins_discipline_module || ' '
)
|| ins_discipline_omschrijving omschrijving,
DECODE (
a.ins_discipline_module,
'BES', lcl.l ('bes_discipline') || ' ',
'CHT', lcl.l ('cht_discipline') || ' ',
'CNT', lcl.l ('cnt_discipline') || ' ',
'CTR', lcl.l ('ctr_discipline') || ' ',
'FAQ', lcl.l ('faq_discipline') || ' ',
'INS', lcl.l ('ins_discipline') || ' ',
'MLD', lcl.l ('mld_discipline')
|| (CASE
WHEN ins_srtdiscipline_prefix IS NULL THEN ''
ELSE ' ' || ins_srtdiscipline_prefix || '-'
END),
'RES', lcl.l ('res_discipline') || ' ',
ins_discipline_module || ' ')
|| ins_discipline_omschrijving omschrijving,
gr.fac_groep_omschrijving,
'(' || TO_CHAR(g.fac_gebruiker_prs_level_read) || ', '
|| TO_CHAR(g.fac_gebruiker_prs_level_write) || ', '
|| TO_CHAR(g.fac_gebruiker_alg_level_read) || ', '
|| TO_CHAR(g.fac_gebruiker_alg_level_write) || ')' or_ow_ar_aw
fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG')
FROM fac_groeprechten g,
fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
@@ -74,22 +87,22 @@ AS
AND flx.fac_locale_xsl_module (+)= 'ASP'
UNION ALL -- GROEPEN ZONDER DISCIPLINES
SELECT p.prs_perslid_naam, p.prs_perslid_oslogin, prs_perslid_email, prs_perslid_login,
f.fac_functie_module,
f.fac_functie_code,
COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst, f.fac_functie_omschrijving),
NULL omschrijving,
gr.fac_groep_omschrijving,
'(' || TO_CHAR(g.fac_gebruiker_prs_level_read) || ', '
|| TO_CHAR(g.fac_gebruiker_prs_level_write) || ', '
|| TO_CHAR(g.fac_gebruiker_alg_level_read) || ', '
|| TO_CHAR(g.fac_gebruiker_alg_level_write) || ')' or_ow_ar_aw
fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG')
FROM fac_groeprechten g,
fac_functie f,
fac_gebruikersgroep gg,
prs_v_aanwezigperslid p,
fac_groep gr,
fac_locale_xsl flx -- lcl.l gebruik was extreem traag dus maar hardcoded
WHERE fac_functie_module <> 'LAN'
AND fac_functie_discipline = 0
WHERE fac_functie_discipline = 0
AND g.fac_functie_key = f.fac_functie_key
AND g.fac_groep_key = gg.fac_groep_key
AND gg.fac_groep_key = gr.fac_groep_key
@@ -100,28 +113,41 @@ AS
CREATE_VIEW(fac_v_rap_groeprechten2, 0)
(fclt_f_groep,
fclt_f_module,
fclt_f_funcode,
fclt_f_functie,
fclt_f_aspect,
or_ow_ar_aw
orglevelread,
orglevelwrite,
alglevelread,
alglevelwrite
)
AS
SELECT -- GROEPEN MET DISCIPLINES
gr.fac_groep_omschrijving,
f.fac_functie_module,
f.fac_functie_code,
COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst, f.fac_functie_omschrijving),
(CASE WHEN ins_srtdiscipline_prefix IS NULL THEN '' ELSE ins_srtdiscipline_prefix||'-' END) ||
DECODE( a.ins_discipline_module , 'BES' , 'Categorie ' ,
'INS' , 'Discipline ' ,
'MLD' , 'Vakgroep ' ,
'RES' , 'Catalogus ' ,
ins_discipline_module || ' '
)
|| ins_discipline_omschrijving omschrijving,
'(' || TO_CHAR(g.fac_gebruiker_prs_level_read) || ', '
|| TO_CHAR(g.fac_gebruiker_prs_level_write) || ', '
|| TO_CHAR(g.fac_gebruiker_alg_level_read) || ', '
|| TO_CHAR(g.fac_gebruiker_alg_level_write) || ')' or_ow_ar_aw
DECODE (
a.ins_discipline_module,
'BES', lcl.l ('bes_discipline') || ' ',
'CHT', lcl.l ('cht_discipline') || ' ',
'CNT', lcl.l ('cnt_discipline') || ' ',
'CTR', lcl.l ('ctr_discipline') || ' ',
'FAQ', lcl.l ('faq_discipline') || ' ',
'INS', lcl.l ('ins_discipline') || ' ',
'MLD', lcl.l ('mld_discipline')
|| (CASE
WHEN ins_srtdiscipline_prefix IS NULL THEN ''
ELSE ' ' || ins_srtdiscipline_prefix || '-'
END),
'RES', lcl.l ('res_discipline') || ' ',
ins_discipline_module || ' ')
|| ins_discipline_omschrijving omschrijving,
fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG')
FROM FAC_GROEPRECHTEN g,
FAC_FUNCTIE f,
INS_TAB_DISCIPLINE a,
@@ -139,19 +165,19 @@ SELECT -- GROEPEN MET DISCIPLINES
AND flx.fac_locale_xsl_module (+)= 'ASP'
UNION ALL -- GROEPEN ZONDER DISCIPLINES
SELECT gr.fac_groep_omschrijving,
f.fac_functie_module,
f.fac_functie_code,
COALESCE(fac_locale_xsl_cust, fac_locale_xsl_tekst, f.fac_functie_omschrijving),
NULL omschrijving,
'(' || TO_CHAR(g.fac_gebruiker_prs_level_read) || ', '
|| TO_CHAR(g.fac_gebruiker_prs_level_write) || ', '
|| TO_CHAR(g.fac_gebruiker_alg_level_read) || ', '
|| TO_CHAR(g.fac_gebruiker_alg_level_write) || ')' or_ow_ar_aw
fac.getscopeleveltext (g.fac_gebruiker_prs_level_read, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_prs_level_write, 'PRS'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_read, 'ALG'),
fac.getscopeleveltext (g.fac_gebruiker_alg_level_write, 'ALG')
FROM FAC_GROEPRECHTEN g,
FAC_FUNCTIE f,
FAC_GROEP gr,
fac_locale_xsl flx
WHERE fac_functie_module <> 'LAN'
AND g.fac_groep_key = gr.fac_groep_key
WHERE g.fac_groep_key = gr.fac_groep_key
AND fac_functie_discipline = 0
AND g.fac_functie_key = f.fac_functie_key
AND flx.fac_locale_xsl_label (+)= f.fac_functie_omschrijving