CIZN#82879 -- Inrichten CMDB

svn path=/Customer/trunk/; revision=64732
This commit is contained in:
Arthur Egberink
2024-05-17 13:47:08 +00:00
parent 51983b6e3c
commit 21ebf9d5ca

View File

@@ -31,7 +31,14 @@ SELECT 'extern' typebezoek,
REPLACE (kw.res_kenmerkreservering_waarde, '-') kenteken,
pf.prs_perslid_naam_full naam,
TO_CHAR (rrd.res_rsv_deel_van, 'dd-mm-yyyy hh24:mi') van,
TO_CHAR (rrd.res_rsv_deel_tot, 'dd-mm-yyyy hh24:mi') tot
TO_CHAR (rrd.res_rsv_deel_tot, 'dd-mm-yyyy hh24:mi') tot,
CASE WHEN fac.count_Work_Days(rrd.res_rsv_deel_aanmaak, rrd.res_rsv_deel_van) = 1
THEN
CASE WHEN TO_CHAR(rrd.res_rsv_deel_aanmaak, 'hh24mi') > '1630'
THEN rrd.res_rsv_deel_aanmaak
ELSE NULL
END
END datum_te_laat
FROM res_rsv_deel rrd,
res_deel rd,
ins_v_deel_gegevens dg,
@@ -58,7 +65,14 @@ SELECT 'bezoekers' typebezoek,
REPLACE (bez_bezoekers_kenteken, '-') kenteken,
bez_afspraak_naam naam,
TO_CHAR (a.bez_afspraak_datum, 'dd-mm-yyyy hh24:mi') van,
TO_CHAR (a.bez_afspraak_eind, 'dd-mm-yyyy hh24:mi') tot
TO_CHAR (a.bez_afspraak_eind, 'dd-mm-yyyy hh24:mi') tot,
CASE WHEN fac.count_Work_Days(b.bez_bezoekers_aanmaak, a.bez_afspraak_datum) = 1
THEN
CASE WHEN TO_CHAR(b.bez_bezoekers_aanmaak, 'hh24mi') > '1630'
THEN b.bez_bezoekers_aanmaak
ELSE NULL
END
END datum_te_laat
FROM bez_bezoekers b,
bez_afspraak a,
res_rsv_deel rrd,
@@ -161,16 +175,6 @@ AS
-- Thema om het vlekkenplan te tonen welke afdeling die dag de ruimte gepland heeft. Om dit in te richten moet je voor
-- deze ruimten een reservering inleggen en het veld afdeling vullen.
CREATE OR REPLACE VIEW cizn_v_thema_ruimte_dag
(
FCLT_F_DATUM,
ALG_RUIMTE_KEY,
alg_ruimte_OMSCHRIJVING,
WAARDE1,
WAARDE,
WAARDE3,
WAARDE_HTML,
WAARDE_HTML2
)
AS
WITH
datums
@@ -178,23 +182,24 @@ AS
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
FROM DUAL
CONNECT BY LEVEL <= 14)
SELECT datums.datum fclt_f_datum, --count(res.res_ins_deel_key),
r2a.alg_ruimte_key ,
SELECT datums.datum fclt_f_datum,
r2a.alg_ruimte_key,
afdeling || 'w1' waarde1,
afdeling waarde2,
afdeling || 'w3' waarde3,
afdeling
|| 'h1' waarde_html,
afdeling
|| 'h2' waarde_html2
FROM RES_V_RSV_RUIMTE_2_ALG_RUIMTE r2a,
r2a.alg_ruimte_key alg_ruimte_omschrijving,
NULL waarde1,
afdeling waarde,
NULL waarde3,
NULL waarde_html,
NULL waarde_html2
FROM res_v_rsv_ruimte_2_alg_ruimte r2a,
datums,
(SELECT datum,
res_rsv_ruimte_key,
flx.getdomeinwaarde(1, flx.getflex ('RES', 41, rrr.res_rsv_ruimte_key)) afdeling
flx.getdomeinwaarde(k.fac_kenmerkdomein_key, flx.getflex ('RES', k.res_kenmerk_key, rrr.res_rsv_ruimte_key)) afdeling
FROM res_v_aanwezigrsv_ruimte rrr,
datums
datums,
(SELECT k.res_kenmerk_key, sk.fac_kenmerkdomein_key
FROM res_srtkenmerk sk, res_kenmerk k
WHERE sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND res_srtkenmerk_code = 'AFDELINGWP') k
WHERE TRUNC(datum) = TRUNC(res_rsv_ruimte_van)) res -- Bezet
WHERE r2a.res_rsv_ruimte_key = res.res_rsv_ruimte_key(+)
AND datums.datum = res.datum(+);
@@ -252,6 +257,168 @@ AS
GROUP BY datum, ins_deel_key, zitsta
ORDER BY datum, ins_deel_key;
CREATE OR REPLACE VIEW cizn_v_thema_ruimte
AS
SELECT r.alg_ruimte_key, 'bestaat' waarde, 1 waarde_key
FROM alg_v_aanwezigruimte r;
CREATE OR REPLACE VIEW cizn_v_uitgifte_ict_basis
AS
SELECT pf.prs_perslid_key extra_key,
TO_CHAR(u.ins_deel_uitgifte_begin, 'DD-MM-YYYY') ins_deel_uitgifte_begin,
TO_CHAR(u.ins_deel_uitgifte_ingeleverd, 'DD-MM-YYYY') ins_deel_uitgifte_ingeleverd,
sg.ins_srtgroep_omschrijving,
sd.ins_srtdeel_omschrijving,
d.ins_deel_omschrijving,
pf.prs_perslid_naam_friendly,
flx.getflex ('INS', 24, d.ins_deel_key) serienummer,
CASE
WHEN tu.fac_srtnotificatie_code = 'CUST03' AND u.ins_deel_uitgifte_ingeleverd BETWEEN COALESCE (tu.intv_begin, TO_DATE('20240517 14:00', 'yyyymmdd hh24:mi')) AND intv_eind THEN 1
WHEN tu.fac_srtnotificatie_code IS NULL AND u.ins_deel_uitgifte_ingeleverd IS NOT NULL AND u.ins_deel_uitgifte_begin > TO_DATE('20240517 14:00', 'yyyymmdd hh24:mi') THEN 1
ELSE 0
END act_ingenomen,
CASE
WHEN SYSDATE - u.ins_deel_uitgifte_ingeleverd < 1 THEN 1 ELSE 0 END rec_ingenomen,
CASE
WHEN ti.fac_srtnotificatie_code = 'CUST04' AND u.ins_deel_uitgifte_begin BETWEEN COALESCE (ti.intv_begin, TO_DATE('20240517 14:00', 'yyyymmdd hh24:mi')) AND intv_eind THEN 1
WHEN ti.fac_srtnotificatie_code IS NULL AND u.ins_deel_uitgifte_begin IS NOT NULL AND u.ins_deel_uitgifte_begin > TO_DATE('20240517 14:00', 'yyyymmdd hh24:mi') THEN 1
ELSE 0
END act_uitgegeven,
(SELECT pfi.prs_perslid_naam_full FROM prs_v_perslid_fullnames pfi WHERE pfi.prs_perslid_key = FAC.gettrackinguserkey('INSIN2', d.ins_deel_key)) ingenomen_door,
TO_CHAR(u.ins_deel_uitgifte_begin, 'YYYYMMDD') volgorde
FROM ins_deel_uitgifte u,
ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
prs_perslid p,
prs_v_perslid_fullnames_all pf,
( SELECT sn.fac_srtnotificatie_code, t.fac_tracking_refkey, MAX (fac_tracking_datum) intv_begin
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND fac_srtnotificatie_code IN ('CUST03')
GROUP BY fac_tracking_refkey, sn.fac_srtnotificatie_code) tu,
( SELECT sn.fac_srtnotificatie_code, t.fac_tracking_refkey, MAX (fac_tracking_datum) intv_begin
FROM fac_tracking t, fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
AND fac_srtnotificatie_code IN ('CUST04')
GROUP BY fac_tracking_refkey, sn.fac_srtnotificatie_code) ti,
(SELECT fac_usrdata_vervaldatum intv_eind
FROM fac_usrdata
WHERE fac_usrdata_code = 'LastNotIns') l
WHERE u.prs_perslid_key = pf.prs_perslid_key
AND u.prs_perslid_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND u.prs_perslid_key = tu.fac_tracking_refkey(+)
AND u.prs_perslid_key = ti.fac_tracking_refkey(+)
AND d.ins_deel_key = u.ins_deel_key;
-- Deze procedure stuurt medewerkers een mail als ze nieuwe ICT voorzieningen op de naam hebben gekregen
-- of als ze ICT voorzieningen hebben ingeleverd. Hiervoor worden 4 notificaties gebruikt;
-- * CUST01 is de notificatie op een rapport naar de medewerker om toegevoegde voorzieningen te notificeren
-- * CUST02 is de notificatie op een rapport naar de medewerker om ingeleverde voorzieningen te notificeren
-- * CUST03 is de tracking op de persoon van de nieuwe voorzieningen
-- * CUST04 is de tracking op de persoon van de ingeleverde voorzieningen
-- Onderstaande procedure zet de timestamp in de eigen tabel met code 'LastNotIns'. Dit is het tijdstip tot wanneer het rapport
-- cizn_v_uitgifte_ict_basis kijkt naar de mutaties. Het tijdstip van het toevoegen van de notificatie en het daadwerkelijk versturen
-- kan namelijk afwijken.
CREATE OR REPLACE PROCEDURE cizn_select_asset_not (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
CURSOR c_uitgifte IS
SELECT extra_key,
'CIZ-Facilitor, Bevestiging uitgifte ICT voorziening(en) ('
|| LISTAGG (ins_deel_omschrijving, ',') WITHIN GROUP (ORDER BY ins_deel_omschrijving)
|| ')' text
FROM cizn_v_uitgifte_ict_basis b
WHERE act_uitgegeven = 1
GROUP BY extra_key;
CURSOR c_inname IS
SELECT extra_key,
'CIZ-Facilitor, Bevestiging inname ICT voorziening(en) ('
|| LISTAGG (ins_deel_omschrijving, ',') WITHIN GROUP (ORDER BY ins_deel_omschrijving)
|| ')' text
FROM cizn_v_uitgifte_ict_basis b
WHERE act_ingenomen = 1
GROUP BY extra_key;
v_cust01_key NUMBER;
v_cust02_key NUMBER;
v_rapport_key NUMBER;
v_timestamp DATE;
BEGIN
v_timestamp := SYSDATE;
UPDATE fac_usrdata
SET fac_usrdata_vervaldatum = v_timestamp
WHERE fac_usrdata_code = 'LastNotIns';
SELECT fac_srtnotificatie_key
INTO v_cust01_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST01';
SELECT fac_srtnotificatie_key
INTO v_cust02_key
FROM fac_srtnotificatie
WHERE fac_srtnotificatie_code = 'CUST02';
SELECT fac_usrrap_key
INTO v_rapport_key
FROM fac_usrrap
WHERE fac_usrrap_code = 'UITGIFTEINNAME';
FOR rec IN c_uitgifte
LOOP
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_datum,
prs_perslid_key_receiver)
VALUES (v_cust01_key,
2,
rec.text,
v_rapport_key,
rec.extra_key,
v_timestamp,
rec.extra_key);
FAC.trackaction ('CUST03',
rec.extra_key,
NULL,
v_timestamp,
rec.text);
END LOOP;
FOR rec IN c_inname
LOOP
INSERT INTO fac_notificatie (fac_srtnotificatie_key,
fac_notificatie_status,
fac_notificatie_oms,
fac_notificatie_refkey,
fac_notificatie_extrakey,
fac_notificatie_datum,
prs_perslid_key_receiver)
VALUES (v_cust02_key,
2,
rec.text,
v_rapport_key,
rec.extra_key,
v_timestamp,
rec.extra_key);
FAC.trackaction ('CUST04',
rec.extra_key,
NULL,
v_timestamp,
rec.text);
END LOOP;
END;
/
------ payload end ------