CIZN#84434 -- Realisatie koppeling Facilitor - Intune
svn path=/Customer/trunk/; revision=65404
This commit is contained in:
220
CIZN/cizn.sql
220
CIZN/cizn.sql
@@ -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;
|
||||
/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user