CIZN#84434 -- Realisatie koppeling Facilitor - Intune

svn path=/Customer/trunk/; revision=65404
This commit is contained in:
Arthur Egberink
2024-07-03 09:40:59 +00:00
parent d7d7e682bf
commit 9875f84eb9

View File

@@ -23,6 +23,45 @@ SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PACKAGE CIZN
AS
PROCEDURE update_devices_from_ad;
END;
/
CREATE OR REPLACE PACKAGE BODY CIZN
AS
PROCEDURE update_devices_from_ad
AS
CURSOR c IS
SELECT i.serialnumber,
CAST (
FROM_TZ (CAST (TO_DATE (REPLACE (i.lastsyncdatetime, 'Z'), 'yyyy-mm-dd"T"hh24:mi:ss') AS TIMESTAMP), 'UTC')
AT TIME ZONE 'Europe/Amsterdam' AS DATE) lastLocalSyncDateTime,
i.userDisplayName,
i.emailaddress,
i.phoneNumber,
i.imei,
i.manufacturer,
i.model,
d.ins_deel_key
FROM cizn_imp_device_info i, ins_deel d
WHERE serialnumber = COALESCE (ins_deel_opmerking, 'QueQuLeQue');
BEGIN
FOR rec IN c LOOP
FLX.setflex('INS', 47, rec.ins_deel_key, rec.lastLocalSyncDateTime);
FLX.setflex('INS', 45, rec.ins_deel_key, rec.userDisplayName);
FLX.setflex('INS', 44, rec.ins_deel_key, rec.imei);
FLX.setflex('INS', 82, rec.ins_deel_key, rec.manufacturer);
FLX.setflex('INS', 81, rec.ins_deel_key, rec.model);
UPDATE ins_deel SET ins_deel_externsyncdate = SYSDATE WHERE ins_deel_key = rec.ins_deel_key;
END LOOP;
END;
END;
/
CREATE OR REPLACE VIEW cizn_v_rap_export_kentekens
AS
SELECT 'extern' typebezoek,
@@ -264,28 +303,49 @@ AS
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,
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,
d.ins_deel_opmerking 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,
WHEN tu.fac_srtnotificatie_code = 'CUST04'
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_ingeleverd > 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 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
WHEN ti.fac_srtnotificatie_code = 'CUST03'
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,
@@ -294,13 +354,11 @@ AS
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')
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND fac_srtnotificatie_code IN ('CUST04')
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')
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND fac_srtnotificatie_code IN ('CUST03')
GROUP BY fac_tracking_refkey, sn.fac_srtnotificatie_code) ti,
(SELECT fac_usrdata_vervaldatum intv_eind
FROM fac_usrdata
@@ -312,7 +370,9 @@ AS
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;
AND d.ins_deel_key = u.ins_deel_key
AND COALESCE(d.ins_deel_vervaldatum, SYSDATE+1) > SYSDATE
AND d.ins_deel_verwijder IS NULL;
-- 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;
@@ -330,19 +390,46 @@ AS
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
|| ')' text,
p.prs_perslid_email
FROM cizn_v_uitgifte_ict_basis b, prs_perslid p
WHERE act_uitgegeven = 1
GROUP BY extra_key;
AND b.extra_key = p.prs_perslid_key
GROUP BY extra_key, p.prs_perslid_email;
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
|| ')' text,
p.prs_perslid_email
FROM cizn_v_uitgifte_ict_basis b, prs_perslid p
WHERE act_ingenomen = 1
GROUP BY extra_key;
AND b.extra_key = p.prs_perslid_key
GROUP BY extra_key, p.prs_perslid_email;
-- bij het inleveren kan de regio aangepast worden waar de voorzieningen ingeleverd worden. Aan de
-- hand van dit veld regio wordt dan de ruimte aangepast. Regio is een eigen tabel waarbij de prijs
-- van de eigen tabel het ruimtenummer bevat.
CURSOR c_update_ruimte IS
SELECT d.ins_deel_key,
(SELECT alg_locatie_key
FROM alg_v_ruimte_gegevens rg
WHERE rg.alg_ruimte_key = ud.fac_usrdata_prijs) alg_locatie_key,
ud.fac_usrdata_prijs alg_ruimte_key
FROM ins_deel d,
ins_kenmerkdeel kd,
ins_kenmerk k,
fac_usrdata ud,
ins_deel_uitgifte u
WHERE d.ins_deel_key = kd.ins_deel_key
AND kd.ins_kenmerk_key = k.ins_kenmerk_key
AND k.ins_kenmerk_code = 'REGIO'
AND fac.safe_to_number (kd.ins_kenmerkdeel_waarde) = ud.fac_usrdata_key
AND d.ins_alg_ruimte_type = 'R'
AND COALESCE (d.ins_alg_ruimte_key_org, d.ins_alg_ruimte_key) <> ud.fac_usrdata_prijs
AND u.ins_deel_uitgifte_ingeleverd > SYSDATE - 1
AND d.ins_deel_key = u.ins_deel_key;
v_cust01_key NUMBER;
v_cust02_key NUMBER;
@@ -372,20 +459,27 @@ BEGIN
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);
IF rec.prs_perslid_email IS NOT NULL
THEN
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,
fac_notificatie_receiver_email,
fac_notificatie_sender_email)
VALUES (v_cust01_key,
2,
rec.text,
v_rapport_key,
rec.extra_key,
v_timestamp,
rec.extra_key,
rec.prs_perslid_email,
'servicedesk@ciz.nl');
END IF;
FAC.trackaction ('CUST03',
rec.extra_key,
@@ -396,20 +490,27 @@ BEGIN
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);
IF rec.prs_perslid_email IS NOT NULL
THEN
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,
fac_notificatie_receiver_email,
fac_notificatie_sender_email)
VALUES (v_cust02_key,
2,
rec.text,
v_rapport_key,
rec.extra_key,
v_timestamp,
rec.extra_key,
rec.prs_perslid_email,
'servicedesk@ciz.nl');
END IF;
FAC.trackaction ('CUST04',
rec.extra_key,
@@ -417,6 +518,15 @@ BEGIN
v_timestamp,
rec.text);
END LOOP;
FOR rec IN c_update_ruimte
LOOP
UPDATE ins_deel
SET ins_alg_ruimte_key = rec.alg_ruimte_key,
ins_alg_locatie_key = rec.alg_locatie_key
WHERE ins_deel_key = rec.ins_deel_key;
END LOOP;
END;
/