912 lines
42 KiB
MySQL
912 lines
42 KiB
MySQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific sql statements for CIZN
|
||
|
||
DEFINE thisfile = 'cizn.sql'
|
||
DEFINE dbuser = 'CIZN'
|
||
|
||
SET ECHO ON
|
||
SET DEFINE ON
|
||
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
|
||
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
|
||
SPOOL &fcltlogfile
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
---------------------------------------
|
||
PROMPT &fcltcusttxt
|
||
---------------------------------------
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
CREATE OR REPLACE PACKAGE CIZN
|
||
AS
|
||
PROCEDURE update_devices_from_ad;
|
||
PROCEDURE select_asset_jaar_not;
|
||
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);
|
||
FLX.setflex('INS', 121, rec.ins_deel_key, rec.emailaddress);
|
||
UPDATE ins_deel SET ins_deel_externsyncdate = SYSDATE WHERE ins_deel_key = rec.ins_deel_key;
|
||
END LOOP;
|
||
END;
|
||
|
||
-- 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 9 september per 2 weken een letter uit het
|
||
-- alfabet genotificeerd.
|
||
PROCEDURE select_asset_jaar_not
|
||
AS
|
||
CURSOR c_jaar IS
|
||
SELECT *
|
||
FROM (SELECT DISTINCT
|
||
p.prs_perslid_key,
|
||
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))) - 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-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-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-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
|
||
AND ins_deel_uitgifte_ingeleverd IS NULL
|
||
AND prs_perslid_inactief IS NULL
|
||
AND prs_perslid_verwijder IS NULL
|
||
AND prs_perslid_email IS NOT NULL)
|
||
WHERE add_months(laatsteNot, 12) < SYSDATE;
|
||
|
||
v_cust06_key NUMBER;
|
||
v_rapport_key NUMBER;
|
||
v_timestamp DATE;
|
||
BEGIN
|
||
v_timestamp := SYSDATE;
|
||
|
||
SELECT fac_srtnotificatie_key
|
||
INTO v_cust06_key
|
||
FROM fac_srtnotificatie
|
||
WHERE fac_srtnotificatie_code = 'CUST06';
|
||
|
||
SELECT fac_usrrap_key
|
||
INTO v_rapport_key
|
||
FROM fac_usrrap
|
||
WHERE fac_usrrap_code = 'ICTJAARNOT';
|
||
|
||
FOR rec IN c_jaar
|
||
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,
|
||
fac_notificatie_receiver_email,
|
||
fac_notificatie_sender_email)
|
||
VALUES (v_cust06_key,
|
||
2,
|
||
'Jaarlijkse controle ICT voorzieningen',
|
||
v_rapport_key,
|
||
rec.prs_perslid_key,
|
||
v_timestamp,
|
||
rec.prs_perslid_key,
|
||
rec.prs_perslid_email,
|
||
'servicedesk@ciz.nl');
|
||
|
||
FAC.trackaction ('CUST05',
|
||
rec.prs_perslid_key,
|
||
NULL,
|
||
v_timestamp,
|
||
'Jaarlijkse controle ICT voorzieningen');
|
||
END LOOP;
|
||
|
||
END;
|
||
|
||
|
||
END;
|
||
/
|
||
|
||
|
||
CREATE OR REPLACE VIEW cizn_v_rap_export_kentekens
|
||
AS
|
||
SELECT 'extern' typebezoek,
|
||
alg_locatie_omschrijving locatie,
|
||
rrd.res_rsv_deel_van datum,
|
||
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,
|
||
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,
|
||
alg_locatie l,
|
||
res_rsv_ruimte rrr,
|
||
res_kenmerkwaarde kw,
|
||
res_kenmerk k,
|
||
res_srtkenmerk sk,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND kw.res_kenmerk_key = k.res_kenmerk_key
|
||
AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key
|
||
AND sk.res_srtkenmerk_code = 'KENTEKEN_EXT'
|
||
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
|
||
AND rrd.res_rsv_deel_verwijder IS NULL
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_ins_deel_key = dg.ins_deel_key
|
||
AND dg.alg_locatie_key = l.alg_locatie_key
|
||
UNION ALL
|
||
SELECT 'bezoekers' typebezoek,
|
||
l.alg_locatie_omschrijving locatie,
|
||
a.bez_afspraak_datum datum,
|
||
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,
|
||
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_v_aanwezigrsv_deel rrd,
|
||
res_deel rd,
|
||
ins_v_deel_gegevens dg,
|
||
alg_locatie l
|
||
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
||
AND b.bez_bezoekers_key = rrd.bez_bezoekers_key(+)
|
||
AND rrd.res_deel_key = rd.res_deel_key(+)
|
||
AND rd.res_ins_deel_key = dg.ins_deel_key(+)
|
||
AND a.alg_locatie_key = l.alg_locatie_key(+);
|
||
|
||
-- View om de juiste labels te tonen in het werkplekreserveringsscherm.
|
||
CREATE OR REPLACE VIEW cizn_v_label_deel_res_datum
|
||
(
|
||
fclt_f_datum,
|
||
ins_deel_key,
|
||
res_deel_omschrijving,
|
||
waarde1,
|
||
waarde,
|
||
waarde3,
|
||
waarde_html,
|
||
waarde_html2
|
||
)
|
||
AS
|
||
WITH
|
||
datums
|
||
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),
|
||
isd.res_ins_deel_key
|
||
ins_deel_key,
|
||
isd.res_deel_omschrijving,
|
||
CHR (10)
|
||
|| LISTAGG (
|
||
DECODE (
|
||
naam,
|
||
NULL, '',
|
||
'[s40]'
|
||
|| naam
|
||
|| ' ('
|
||
|| TO_CHAR (res_rsv_deel_van, 'HH24:MI')
|
||
|| '-'
|
||
|| DECODE (TRUNC (res_rsv_deel_tot),
|
||
TRUNC (res_rsv_deel_van), TO_CHAR (res_rsv_deel_tot, 'HH24:MI'),
|
||
TO_CHAR (res_rsv_deel_tot, 'DD-MM-YYYY HH24:MI'))
|
||
|| ')'),
|
||
CHR (10))
|
||
WITHIN GROUP (ORDER BY res_rsv_deel_van) || 'w1'
|
||
waarde1,
|
||
DECODE (count(res.res_ins_deel_key), 0, substr(isd.res_deel_omschrijving, INSTR(isd.res_deel_omschrijving, '.') +1, 20),
|
||
CHR (10)
|
||
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || naam),
|
||
CHR (10))
|
||
WITHIN GROUP (ORDER BY res_rsv_deel_van))
|
||
waarde2,
|
||
CHR (10)
|
||
|| LISTAGG (DECODE (naam, NULL, '', '[s40]' || naam), CHR (10)) WITHIN GROUP (ORDER BY res_rsv_deel_van) || 'w3'
|
||
waarde3,
|
||
LISTAGG (
|
||
DECODE (naam,
|
||
NULL, '',
|
||
'<span class="body">' || TO_CHAR (res_rsv_deel_van, 'HH24:MI') || ' ' || naam || '</span>'),
|
||
'<br>')
|
||
WITHIN GROUP (ORDER BY res_rsv_deel_van) || 'h1'
|
||
waarde_html,
|
||
LISTAGG (DECODE (naam, NULL, '', '<span class="body">' || naam || '</span>'), '<br>')
|
||
WITHIN GROUP (ORDER BY res_rsv_deel_van) || 'h2'
|
||
waarde_html2
|
||
FROM res_v_aanwezigdeel isd,
|
||
datums,
|
||
(SELECT datum,
|
||
res_ins_deel_key,
|
||
DECODE (p.prs_perslid_visibility, 1, pf.prs_perslid_naam_friendly, a.prs_afdeling_omschrijving)
|
||
naam,
|
||
res_rsv_deel_van,
|
||
res_rsv_deel_tot
|
||
FROM res_v_aanwezigdeel r,
|
||
res_v_aanwezigrsv_deel rrd,
|
||
res_rsv_ruimte rrr,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
datums
|
||
WHERE r.res_deel_key = rrd.res_deel_key
|
||
AND rrd.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_host_key = pf.prs_perslid_key
|
||
AND pf.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND datum + 1 >= res_rsv_deel_van
|
||
AND datum < res_rsv_deel_tot) res -- Bezet
|
||
WHERE isd.res_ins_deel_key = res.res_ins_deel_key(+) AND datums.datum = res.datum(+)
|
||
GROUP BY datums.datum, isd.res_ins_deel_key, isd.res_deel_omschrijving;
|
||
|
||
-- 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
|
||
AS
|
||
WITH
|
||
datums
|
||
AS
|
||
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 14)
|
||
SELECT datums.datum fclt_f_datum,
|
||
r2a.alg_ruimte_key,
|
||
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(k.fac_kenmerkdomein_key, flx.getflex ('RES', k.res_kenmerk_key, rrr.res_rsv_ruimte_key)) afdeling
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
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(+);
|
||
|
||
-- Kopie van het standaard thema waarbij de zit/sta bureaus zijn toegevoegd. Deze krijgen een andere kleur als ze beschikbaar zijn.
|
||
CREATE OR REPLACE VIEW cizn_v_thema_deel_res_datum
|
||
AS
|
||
WITH
|
||
datums
|
||
AS
|
||
( SELECT TRUNC (SYSDATE) + LEVEL - 1 datum
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 42)
|
||
SELECT datum fclt_f_datum,
|
||
ins_deel_key,
|
||
MIN (res_rsv_deel_van) min_van,
|
||
MAX (res_rsv_deel_tot) max_tot,
|
||
CASE WHEN MAX (res_rsv_deel_tot) IS NULL THEN 0 ELSE 3 -- hele dag
|
||
END waarde1,
|
||
CASE
|
||
WHEN MAX (res_rsv_deel_tot) IS NULL AND zitsta IS NULL THEN 0 -- beschikbaar normaal bureau
|
||
WHEN MAX (res_rsv_deel_tot) IS NULL AND zitsta = 1 THEN 4 -- beschikbaar zitsta bureau
|
||
WHEN TO_CHAR (MAX (res_rsv_deel_tot), 'HH24') <= 13 THEN 1 -- ochtend
|
||
WHEN TO_CHAR (MIN (res_rsv_deel_van), 'HH24') >= 12 THEN 2 -- middag
|
||
ELSE 3 -- hele dag
|
||
END waarde,
|
||
COUNT (res_rsv_deel_tot) -- aantal reservering deze dag
|
||
waarde3
|
||
FROM (SELECT datums.datum,
|
||
res_ins_deel_key ins_deel_key,
|
||
res_rsv_deel_van,
|
||
res_rsv_deel_tot,
|
||
zitsta
|
||
FROM res_v_aanwezigdeel r,
|
||
ins_deel d,
|
||
(SELECT ins_deel_key, 1 zitsta
|
||
FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key
|
||
AND sk.ins_srtkenmerk_code = 'ZITSTA') kd,
|
||
datums,
|
||
(SELECT datum,
|
||
res_deel_key,
|
||
res_rsv_deel_van,
|
||
res_rsv_deel_tot
|
||
FROM datums, res_v_aanwezigrsv_deel rrd
|
||
WHERE res_rsv_deel_van > TRUNC (SYSDATE) - 1 -- negeer alle irrelevante historie sowieso
|
||
AND datum + 1 >= res_rsv_deel_van
|
||
AND datum < res_rsv_deel_tot) blokkerend -- vandaag en nog niet afgelopen
|
||
WHERE r.res_deel_key = blokkerend.res_deel_key(+)
|
||
AND datums.datum = blokkerend.datum(+)
|
||
AND d.ins_deel_key = kd.ins_deel_key(+)
|
||
AND (r.res_deel_vervaldatum IS NULL OR r.res_deel_vervaldatum > datums.datum)
|
||
AND d.ins_deel_key = r.res_ins_deel_key)
|
||
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,
|
||
d.ins_deel_opmerking serienummer,
|
||
CASE
|
||
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 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,
|
||
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 ('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 ('CUST03')
|
||
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
|
||
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;
|
||
-- * 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,
|
||
p.prs_perslid_email
|
||
FROM cizn_v_uitgifte_ict_basis b, prs_perslid p
|
||
WHERE act_uitgegeven = 1
|
||
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,
|
||
p.prs_perslid_email
|
||
FROM cizn_v_uitgifte_ict_basis b, prs_perslid p
|
||
WHERE act_ingenomen = 1
|
||
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;
|
||
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
|
||
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,
|
||
NULL,
|
||
v_timestamp,
|
||
rec.text);
|
||
END LOOP;
|
||
|
||
FOR rec IN c_inname
|
||
LOOP
|
||
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,
|
||
NULL,
|
||
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;
|
||
/
|
||
|
||
|
||
|
||
-- Overzicht van ICT voorzieningen die niet gevonden worden in de intune database.
|
||
CREATE OR REPLACE VIEW cizn_v_rap_asset_not_in_intune
|
||
AS
|
||
SELECT ins_srtgroep_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_opmerking,
|
||
alg_gebouw_naam,
|
||
prs_perslid_volnaam,
|
||
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')
|
||
AND COALESCE (ins_deel_opmerking, 'Leeg') NOT IN
|
||
(SELECT COALESCE (serialnumber, 'QueQeLeQue') FROM cizn_imp_device_info)
|
||
AND ins_deel_vervaldatum IS NULL;
|
||
|
||
-- Rapportage met algemene gegevens van de ICT voorziening. Hierbij wordt ook de aanmaakdatum getoond. Deze
|
||
-- is op andere manieren niet te achterhalen.
|
||
CREATE OR REPLACE VIEW cizn_v_rap_asset_gegevens
|
||
AS
|
||
SELECT d.ins_deel_aanmaak,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
flx.getdomeinwaarde (21, flx.getflex ('INS', 41, d.ins_deel_key)) status,
|
||
flx.getdomeinwaarde (22, flx.getflex ('INS', 48, d.ins_deel_key)) regio,
|
||
alg_gebouw_naam,
|
||
prs_perslid_volnaam,
|
||
d.ins_deel_key
|
||
FROM ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline di,
|
||
ins_v_deel_gegevens dg
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = di.ins_discipline_key
|
||
AND di.ins_discipline_omschrijving = 'ICT'
|
||
AND d.ins_deel_verwijder IS NULL
|
||
AND d.ins_deel_vervaldatum IS NULL
|
||
AND d.ins_deel_key = dg.ins_deel_key(+);
|
||
|
||
-- Basisrapportage met deelgegevens gecombineerd met de import uit Intune
|
||
-- ICT 221
|
||
CREATE OR REPLACE VIEW cizn_v_asset_check_bron
|
||
AS
|
||
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
|
||
AS
|
||
SELECT ins_srtgroep_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
flx.getdomeinwaarde (21, flx.getflex ('INS', 41, d.ins_deel_key)) status,
|
||
u.ins_deel_uitgifte_begin uitgegeven,
|
||
u.ins_deel_uitgifte_ingeleverd ingenomen,
|
||
pf.prs_perslid_naam_full,
|
||
pf.prs_perslid_naam_friendly,
|
||
p.prs_perslid_verwijder,
|
||
p.prs_perslid_inactief,
|
||
d.ins_deel_key,
|
||
p.prs_perslid_key,
|
||
d.ins_deel_verwijder,
|
||
d.ins_deel_vervaldatum
|
||
FROM ins_deel_uitgifte u,
|
||
ins_deel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline di,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_perslid p
|
||
WHERE u.ins_deel_key = d.ins_deel_key
|
||
AND u.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = di.ins_discipline_key
|
||
AND di.ins_discipline_omschrijving = 'ICT';
|
||
|
||
|
||
-- 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_ict_assets_prs_inactief
|
||
AS
|
||
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,
|
||
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 u.ins_deel_uitgifte_ingeleverd IS NULL
|
||
AND u.ins_deel_key = d.ins_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
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.
|
||
CREATE OR REPLACE VIEW cizn_v_rap_asset_dashboard
|
||
AS
|
||
SELECT 1 volgorde,
|
||
'<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_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 d.ins_deel_key,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
flx.getflex ('INS', 46, d.ins_deel_key) inkoopnummer,
|
||
d.ins_deel_aanmaak,
|
||
d.ins_deel_vervaldatum,
|
||
(SELECT prs_perslid_naam_full FROM fac_tracking t, prs_v_perslid_fullnames_all pf
|
||
WHERE t.fac_tracking_key = u.fac_tracking_key and t.prs_perslid_key = pf.prs_perslid_key) afgeschreven_door
|
||
FROM ins_deel d, ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
(SELECT fac_tracking_refkey, MAX(fac_tracking_key) fac_tracking_key
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSUPD'
|
||
AND ( fac_tracking_oms LIKE '%Vervaldatum: (leeg) --> %'
|
||
OR fac_tracking_oms LIKE '%--> Afgeschreven%')
|
||
GROUP BY fac_tracking_refkey) u
|
||
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
|
||
AND d.ins_deel_key = u.fac_tracking_refkey(+);
|
||
|
||
-- 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
|
||
SELECT ins_deel_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_opmerking serienummer,
|
||
uitgegeven,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_key extra_key
|
||
FROM cizn_v_rap_asset_prs_historie
|
||
WHERE ins_deel_verwijder IS NULL
|
||
AND ins_deel_vervaldatum IS NULL
|
||
AND ingenomen IS NULL;
|
||
|
||
-- View voor de administratie voor de kwartaal dump
|
||
CREATE OR REPLACE VIEW cizn_v_asset_kwartaaloverz
|
||
AS
|
||
SELECT d.ins_deel_opmerking serienummer,
|
||
fac.getdomeinwaarde (21, flx.getflex ('INS', 41, dg.ins_deel_key)) status,
|
||
flx.getflex ('INS', 46, dg.ins_deel_key) inkoopnummer,
|
||
fac.getdomeinwaarde (22, flx.getflex ('INS', 48, dg.ins_deel_key)) regio,
|
||
flx.getflex ('INS', 44, dg.ins_deel_key) imei,
|
||
flx.getflex ('INS', 121, dg.ins_deel_key) ingelogd_door,
|
||
(SELECT prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames_all pf
|
||
WHERE prs_perslid_key = d.ins_alg_ruimte_key AND d.ins_alg_ruimte_type = 'P') uitgegeven_aan,
|
||
flx.getflex ('INS', 47, dg.ins_deel_key) login_datum,
|
||
flx.getflex ('INS', 81, dg.ins_deel_key) type,
|
||
flx.getflex ('INS', 82, dg.ins_deel_key) merk,
|
||
dg.ins_deel_omschrijving,
|
||
dg.ins_srtdeel_omschrijving,
|
||
dg.ins_srtgroep_omschrijving,
|
||
TO_CHAR (d.ins_deel_aanmaak, 'dd-mm-yyyy') aanmaakdatum,
|
||
TO_CHAR (dg.ins_deel_vervaldatum, 'dd-mm-yyyy') vervaldatum,
|
||
(SELECT prs_perslid_naam_full FROM fac_tracking t, prs_v_perslid_fullnames_all pf
|
||
WHERE t.fac_tracking_key = u.fac_tracking_key and t.prs_perslid_key = pf.prs_perslid_key) afgeschreven_door,
|
||
d.ins_deel_key
|
||
FROM ins_v_deel_gegevens dg, ins_deel d,
|
||
(SELECT fac_tracking_refkey, MAX(fac_tracking_key) fac_tracking_key
|
||
FROM fac_tracking t, fac_srtnotificatie sn
|
||
WHERE t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
AND sn.fac_srtnotificatie_code = 'INSUPD'
|
||
AND ( fac_tracking_oms LIKE '%Vervaldatum: (leeg) --> %'
|
||
OR fac_tracking_oms LIKE '%--> Afgeschreven%')
|
||
GROUP BY fac_tracking_refkey) u
|
||
WHERE d.ins_discipline_key = 221 -- ICT
|
||
AND d.ins_deel_key = dg.ins_deel_key
|
||
AND d.ins_deel_key = u.fac_tracking_refkey(+);
|
||
|
||
CREATE OR REPLACE PROCEDURE cizn_daily
|
||
AS
|
||
BEGIN
|
||
cizn.select_asset_jaar_not;
|
||
END;
|
||
/
|
||
|
||
------ payload end ------
|
||
|
||
SET DEFINE OFF
|
||
BEGIN adm.systrackscriptId ('$Id$', 0); END;
|
||
/
|
||
|
||
COMMIT;
|
||
SET ECHO OFF
|
||
SPOOL OFF
|
||
SET DEFINE ON
|
||
PROMPT Logfile of this upgrade is: &fcltlogfile
|