MDUX#39814 rapport keyusers vs fe

svn path=/Customer/trunk/; revision=33181
This commit is contained in:
Ruud Lipper
2017-03-17 09:55:43 +00:00
parent dbdec6aa2f
commit 28e6ef99a1

View File

@@ -2289,9 +2289,103 @@ AS
AND i.ins_alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = di.alg_district_key
AND s.ins_srtdeel_key = i.ins_srtdeel_key;
CREATE OR REPLACE VIEW mdux_v_rap_keyvsfe
(
soort_gebruiker,
Naam,
Loginnaam,
laatste_login
)
AS
SELECT DECODE (key_user, 1, 'KEY', 'FE'),
pf.prs_perslid_naam_full,
oslogin,
prs_perslid_login
FROM (SELECT *
FROM (SELECT p.prs_perslid_key prs_key,
COALESCE (p.prs_perslid_oslogin,
p.prs_perslid_oslogin2)
oslogin,
1 login,
-- 1=user heeft login + groep + rechten
DECODE (
SIGN(TRUNC(COALESCE (
p.prs_perslid_login
+ 92,
SYSDATE - 1
))
- TRUNC (SYSDATE)),
-1,
0,
1
) -- 1=user heeft laatste 92 dagen ingelogd
recent_login
FROM prs_v_aanwezigperslid p
WHERE EXISTS
-- op basis van login + groep + rechten
(SELECT 1
FROM fac_v_rap_groeprechten
WHERE fclt_f_login =
COALESCE (
p.prs_perslid_oslogin,
p.prs_perslid_oslogin2
))
UNION ALL
-- FSN#24029: Soms ook personen zonder login meetellen!
SELECT p.prs_perslid_key,
NULL oslogin,
1 login,
-- 1=user telt mee, want allow_for_others!
0 recent_login
-- geen login, dus nooit recent ingelogd
FROM prs_v_aanwezigperslid p
WHERE COALESCE (p.prs_perslid_oslogin,
p.prs_perslid_oslogin2) IS NULL
AND (fac.getSetting (
'mld_allow_for_others'
) = 1
OR EXISTS
(SELECT 1
FROM bes_disc_params dp
WHERE dp.bes_disc_params_for_others =
1))
UNION ALL
-- FSN#27315: En ook eventuele "sensorusers" meetellen!
SELECT NULL prs_perslid_key,
NULL oslogin,
COUNT ( * ) login,
-- elke sensoruser telt mee als FE!
1 recent_login
-- recent actief dus tellen als recent
FROM ins_v_aanwezigdeel d
WHERE ins_deel_statedate >
TRUNC (SYSDATE - 30)) x
LEFT JOIN
-- 1=user heeft rechten op key-codes=notFE-codes
(SELECT DISTINCT fclt_f_login, 1 key_user
FROM fac_v_rap_groeprechten gr,
fac_functie f
WHERE gr.fclt_f_funcode = f.fac_functie_code
AND f.fac_functie_groep IN (1, 2)) a
ON x.oslogin = a.fclt_f_login
LEFT JOIN -- FSN#30404: 1=user is cross-domain (xd) user
(SELECT p.prs_perslid_key, 1 xd_user
FROM prs_v_aanwezigperslid p,
prs_v_afdeling_boom ab
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
AND p.prs_perslid_apikey IS NOT NULL
AND ab.prs_bedrijf_key =
fac.safe_to_number(fac.getSetting('xd_primary_bedrijfkey')))
b
ON x.prs_key = b.prs_perslid_key) st,
prs_perslid p,
prs_v_perslid_fullnames pf
WHERE login = 1
AND UPPER (oslogin) != '_FACILITOR'
AND p.prs_perslid_key = st.prs_key
AND pf.prs_perslid_key = p.prs_perslid_key;
------ payload end ------
SET DEFINE OFF