CIZN#84447 -- Inrichten jaarlijkse controle Facilitor

svn path=/Customer/trunk/; revision=66149
This commit is contained in:
Arthur Egberink
2024-09-06 11:08:57 +00:00
parent af66532a6a
commit b2b1ef49a4

View File

@@ -63,7 +63,7 @@ AS
-- Procedure om ieder jaar een notificatie te sturen naar personen die <20><>n of meerdere voorzieningen
-- in hun bezit hebben. Als een persoon al eerder een notificiatie ontvangen heeft omdat er een voorziening
-- op zijn/haar naam is gezet CUST03 of omdat er een voorziening is ingeleverd CUST04, dan zal dit als laatste
-- notificatiemoment genomen worden. Om het systeem op te starten wordt vanaf 4 juli per week een letter uit het
-- notificatiemoment genomen worden. Om het systeem op te starten wordt vanaf 9 september per 2 weken een letter uit het
-- alfabet genotificeerd.
PROCEDURE select_asset_jaar_not
AS
@@ -74,19 +74,19 @@ AS
p.prs_perslid_email,
ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 64,
prs_perslid_naam,
-- De positie van de letter in het alfabet: (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 64)
TO_DATE ('2023-07-04', 'yyyy-mm-dd') + (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 64) * 7
-- De positie van de letter in het alfabet: (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 65)
TO_DATE ('2023-09-09', 'yyyy-mm-dd') + (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 65) * 14
ddefault,
GREATEST (
COALESCE (
FAC.gettrackingdate ('CUST03', p.prs_perslid_key),
TO_DATE ('2023-07-04', 'yyyy-mm-dd') + (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 64) * 7),
TO_DATE ('2023-09-09', 'yyyy-mm-dd') + (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 65) * 14),
COALESCE (
FAC.gettrackingdate ('CUST04', p.prs_perslid_key),
TO_DATE ('2023-07-04', 'yyyy-mm-dd') + (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 64) * 7),
TO_DATE ('2023-09-09', 'yyyy-mm-dd') + (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 65) * 14),
COALESCE (
FAC.gettrackingdate ('CUST05', p.prs_perslid_key),
TO_DATE ('2023-07-04', 'yyyy-mm-dd') + (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 64) * 7))
TO_DATE ('2023-09-09', 'yyyy-mm-dd') + (ASCII (UPPER (SUBSTR (prs_perslid_naam, 1, 1))) - 65) * 14))
laatsteNot
FROM prs_perslid p, ins_deel_uitgifte u
WHERE p.prs_perslid_key = u.prs_perslid_key
@@ -94,7 +94,7 @@ AS
AND prs_perslid_inactief IS NULL
AND prs_perslid_verwijder IS NULL
AND prs_perslid_email IS NOT NULL)
WHERE laatsteNot + 355 < SYSDATE;
WHERE add_months(laatsteNot, 12) < SYSDATE;
v_cust06_key NUMBER;
v_rapport_key NUMBER;
@@ -625,7 +625,8 @@ AS
ins_deel_opmerking,
alg_gebouw_naam,
prs_perslid_volnaam,
flx.getdomeinwaarde (21, flx.getflex ('INS', 41, ins_deel_key)) status
flx.getdomeinwaarde (21, flx.getflex ('INS', 41, ins_deel_key)) status,
ins_deel_key
FROM ins_v_deel_gegevens
WHERE ins_discipline_omschrijving = 'ICT'
AND ins_srtgroep_omschrijving IN ('Computer', 'Telefoon', 'Tablet')
@@ -660,25 +661,59 @@ AS
AND d.ins_deel_vervaldatum IS NULL
AND d.ins_deel_key = dg.ins_deel_key(+);
-- Rapportage met de gegevens van de ICT voorzieningen waarbij de gedurende de laatste 30 dagen ingelogd is
-- en waar de gebruiker die ingelogd is niet overeenkomt met de persoon aan wie het device is uitgegeven.
CREATE OR REPLACE VIEW cizn_v_rap_asset_login_mismatch
-- Basisrapportage met deelgegevens gecombineerd met de import uit Intune
-- ICT 221
CREATE OR REPLACE VIEW cizn_v_asset_check_bron
AS
SELECT manufacturer Merk,
model TYPE,
serialnumber serienummer,
prs_perslid_email gekoppeld_aan,
emailaddress ingelogd_door,
FAC.safe_TO_DATE (lastsyncdatetime, 'yyyy-mm-dd"T"hh24:mi:ss"Z"') laastelogin
FROM cizn_imp_device_info i,
(SELECT *
FROM ins_deel
WHERE ins_alg_ruimte_type = 'P') d,
prs_perslid p
WHERE COALESCE (ins_deel_opmerking, '-2') = COALESCE (i.serialnumber, '-1')
AND d.ins_alg_ruimte_key = p.prs_perslid_key(+)
AND UPPER (COALESCE (prs_perslid_email, 'Leeg')) <> UPPER (COALESCE (emailaddress, 'Leeg'))
AND FAC.safe_TO_DATE (lastsyncdatetime, 'yyyy-mm-dd"T"hh24:mi:ss"Z"') > SYSDATE - 30;
SELECT d.ins_deel_key,
d.ins_deel_opmerking,
sd.ins_srtdeel_omschrijving,
sg.ins_srtgroep_omschrijving,
i.emailaddress,
p.prs_perslid_email,
fac.safe_to_date (flx.getflex ('INS', 47, d.ins_deel_key), 'yyyy-mm-dd hh24:mi:ss') laatst_ingelogd
FROM cizn_imp_device_info i,
ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
(SELECT ins_deel_key, prs_perslid_key, prs_perslid_email FROM ins_deel d2, prs_perslid p2
WHERE d2.ins_alg_ruimte_type = 'P' and d2.ins_alg_ruimte_key = p2.prs_perslid_key) p
WHERE i.serialNumber = d.ins_deel_opmerking
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND d.ins_deel_key = p.ins_deel_key(+)
AND sg.ins_discipline_key = 221;
-- Rapportage van assets die niet uitgegeven zijn in Facilitor maar waarop wel recentelijk is ingelogd.
CREATE OR REPLACE VIEW cizn_v_asset_niet_uitgegeven
AS
SELECT ins_deel_key,
ins_deel_opmerking,
ins_srtdeel_omschrijving,
ins_srtgroep_omschrijving,
emailaddress,
prs_perslid_email,
laatst_ingelogd
FROM cizn_v_asset_check_bron dg
WHERE laatst_ingelogd > SYSDATE - 7
AND NOT EXISTS
(SELECT 1
FROM ins_deel_uitgifte u
WHERE u.ins_deel_key = dg.ins_deel_key
AND (u.ins_deel_uitgifte_ingeleverd IS NULL OR u.ins_deel_uitgifte_ingeleverd > SYSDATE - 7));
-- Rapportage van assets waarbij iemand anders ingelogd
CREATE OR REPLACE VIEW cizn_v_asset_user_mismatch
AS
SELECT ins_deel_key,
ins_deel_opmerking,
ins_srtdeel_omschrijving,
ins_srtgroep_omschrijving,
emailaddress,
prs_perslid_email,
laatst_ingelogd
FROM cizn_v_asset_check_bron
WHERE UPPER (emailaddress) <> UPPER (prs_perslid_email);
-- Rapport om de historie van bezittingen per persoon te kunnen raadplegen.
CREATE OR REPLACE VIEW cizn_v_rap_asset_prs_historie
@@ -716,26 +751,28 @@ SELECT ins_srtgroep_omschrijving,
-- Rapport om inzichtelijk te maken welke personen die door de SCIM koppeling op Inactief zijn gezet
-- toch nog ICT voorzieningen in het bezit hebben.
CREATE OR REPLACE VIEW cizn_v_rap_asset_einde_contract
CREATE OR REPLACE VIEW cizn_v_ict_assets_prs_inactief
AS
SELECT pf.prs_perslid_naam_full,
p.prs_perslid_inactief,
SELECT p.prs_perslid_inactief,
pf.prs_perslid_naam_full,
a.prs_afdeling_omschrijving,
d.ins_deel_opmerking,
sd.ins_srtdeel_omschrijving,
d.ins_deel_key,
p.prs_perslid_key
FROM prs_perslid p,
ins_deel_uitgifte u,
ins_deel d,
prs_v_perslid_fullnames_all pf,
ins_srtdeel sd
WHERE prs_perslid_inactief IS NOT NULL
FROM prs_perslid p,
ins_deel_uitgifte u,
ins_deel d,
ins_srtdeel sd,
prs_afdeling a,
prs_v_perslid_fullnames_all pf
WHERE (p.prs_perslid_verwijder IS NOT NULL OR p.prs_perslid_inactief < SYSDATE)
AND u.prs_perslid_key = p.prs_perslid_key
AND ins_deel_uitgifte_ingeleverd IS NULL
AND u.ins_deel_uitgifte_ingeleverd IS NULL
AND u.ins_deel_key = d.ins_deel_key
AND p.prs_perslid_key = pf.prs_perslid_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.ins_deel_vervaldatum IS NULL
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND d.ins_deel_verwijder IS NULL;
-- Dashboard met informatie omtrent assetbeheer. Per regel wordt het aantal van een rapport getoond. Doorklikken leidt tot het rapport zelf.
@@ -745,9 +782,71 @@ AS
'<a onclick=''FcltMgr.openDetail("Appl/fac/fac_report.asp?rapcode=ASSETM_DASHB_INACTIEF", "Apparaten toegewezen aan gebruikers met be<62>indigd contract")''>'
|| 'Apparaten toegewezen aan gebruikers met be<62>indigd contract'
|| '</a>' html_omschrijving,
(SELECT COUNT (*) FROM cizn_v_rap_asset_einde_contract) aantal
(SELECT COUNT (*) FROM cizn_v_ict_assets_prs_inactief) aantal
FROM DUAL
UNION ALL
SELECT 2 volgorde,
'<a onclick=''FcltMgr.openDetail("Appl/fac/fac_report.asp?rapcode=ASSETM_USER_MISMATCH", "Oneigenlijk gebruik van ICT voorzieningen door anderen")''>'
|| 'Oneigenlijk gebruik van ICT voorzieningen door anderen'
|| '</a>' html_omschrijving,
(SELECT COUNT (*) FROM cizn_v_asset_user_mismatch) aantal
FROM DUAL
UNION ALL
SELECT 3 volgorde,
'<a onclick=''FcltMgr.openDetail("Appl/fac/fac_report.asp?rapcode=ASSET_REQ_FOR_DEPRICATION", "Assets aangemeld voor afschrijving")''>'
|| 'Assets aangemeld voor afschrijving'
|| '</a>' html_omschrijving,
(SELECT COUNT (*) FROM cizn_v_rap_asset_gegevens WHERE status = 'Aangemeld voor afschrijving') aantal
FROM DUAL
UNION ALL
SELECT 4 volgorde,
'<a onclick=''FcltMgr.openDetail("Appl/fac/fac_report.asp?rapcode=ASSETM_NOT_USED_FOR_60", "Assets langer dan 60 dagen niet gebruikt")''>'
|| 'Assets langer dan 60 dagen niet gebruikt'
|| '</a>' html_omschrijving,
(SELECT COUNT (*) FROM cizn_v_asset_check_bron where SIGN(SYSDATE-LAATST_INGELOGD-60) = 1 AND prs_perslid_email IS NOT NULL) aantal
FROM DUAL
UNION ALL
SELECT 5 volgorde,
'<a onclick=''FcltMgr.openDetail("Appl/fac/fac_report.asp?rapcode=ASSETM_NOT_IN_INTUNE", "Computer, mobielen en tablets die niet in Intune staan")''>'
|| 'Computer, mobielen en tablets die niet in Intune staan'
|| '</a>' html_omschrijving,
(SELECT COUNT (*) FROM cizn_v_rap_asset_not_in_intune ) aantal
FROM DUAL;
-- Rapport om de status van ICT assets te communiceren naar de financiele administratie.
CREATE OR REPLACE VIEW cizn_v_rap_ins_fin_admin
AS
SELECT ins_srtgroep_omschrijving,
ins_srtdeel_omschrijving,
ins_deel_opmerking,
flx.getflex ('INS', 46, ins_deel_key) inkoopnummer,
ins_deel_aanmaak,
ins_deel_vervaldatum
FROM ins_deel d, ins_srtdeel sd, ins_srtgroep sg
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = 221
AND ins_deel_verwijder IS NULL;
-- Rapportage met ICT assets in het bezit van inactieve personen.
CREATE OR REPLACE VIEW cizn_v_ict_assets_prs_inactief
AS
SELECT prs_perslid_inactief,
prs_perslid_naam,
ins_deel_opmerking,
ins_srtdeel_omschrijving,
d.ins_deel_key
FROM prs_perslid p,
ins_deel_uitgifte u,
ins_deel d,
ins_srtdeel sd
WHERE (prs_perslid_verwijder IS NOT NULL OR prs_perslid_inactief < SYSDATE)
AND u.prs_perslid_key = p.prs_perslid_key
AND ins_deel_uitgifte_ingeleverd IS NULL
AND u.ins_deel_key = d.ins_deel_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key;
-- View om te gebuiken in de notificatie CUST06 om jaarlijks de ICT voorzieningen te noticeren
CREATE OR REPLACE VIEW cizn_v_rap_asset_jaar
AS