2160 lines
110 KiB
SQL
2160 lines
110 KiB
SQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for EIND.
|
||
DEFINE thisfile = 'EIND.SQL'
|
||
DEFINE dbuser = '^EIND'
|
||
|
||
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 EIND
|
||
AS
|
||
PROCEDURE schonen_accounts;
|
||
PROCEDURE aanvraag_sercert;
|
||
PROCEDURE delete_mma;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PACKAGE BODY EIND
|
||
AS
|
||
-- Verwijder via SCIM geinactiveerde personen!
|
||
PROCEDURE schonen_accounts
|
||
AS
|
||
--c_prs_dummy_key NUMBER (10) := -1; -- DUMMY tbv overzetten verplichtingen verwijderde personen
|
||
--c_oud_medewerker VARCHAR2 (100) := 'Geanonimiseerd';
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_del NUMBER (10);
|
||
/*
|
||
CURSOR c1
|
||
IS
|
||
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || pf.prs_perslid_naam_full || '] '
|
||
aanduiding,
|
||
p.prs_perslid_key,
|
||
COUNT (vp.prs_perslid_key) aant
|
||
FROM prs_v_aanwezigperslid p, prs_v_verplichting_keys vp, prs_v_perslid_fullnames pf
|
||
WHERE p.prs_perslid_externid IS NULL -- NIET-SCIM-populatie!
|
||
AND p.prs_perslid_key NOT IN (3, 4, 5, 5121, 5141, 5181, 5281) -- Facilitor/API-user tbv. hMail-koppeling/API-user tbv. Putorders-koppeling/API-user tbv. SCIM-koppeling/Demo-user/API-user Exchange koppeling/Onbekend in Facilitor
|
||
AND p.prs_perslid_apikey IS NULL
|
||
--AND COALESCE (p.prs_perslid_email, 'NULL') NOT LIKE '%@test%'
|
||
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
GROUP BY '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || pf.prs_perslid_naam_full || '] ',
|
||
p.prs_perslid_key
|
||
ORDER BY 2;
|
||
*/
|
||
CURSOR c1
|
||
IS
|
||
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || pf.prs_perslid_naam_full || '] '
|
||
aanduiding,
|
||
p.prs_perslid_key,
|
||
COUNT (vp.prs_perslid_key) aant
|
||
FROM prs_v_aanwezigperslid p, prs_v_verplichting_keys vp, prs_v_perslid_fullnames pf
|
||
WHERE p.prs_perslid_externid IS NOT NULL -- SCIM-populatie!
|
||
AND COAlESCE (p.prs_perslid_inactief, SYSDATE) < TRUNC (SYSDATE - 14) -- Op 20-2 (oa. met Dominic van de Mosselaar) besloten om 14 dagen te wachten!
|
||
AND p.prs_perslid_key = vp.prs_perslid_key(+) -- Actuele verplichtingen?
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
--AND EXISTS
|
||
-- (SELECT 1
|
||
-- FROM prs_v_afdeling_boom ab
|
||
-- WHERE ab.prs_bedrijf_key = -1
|
||
-- AND ab.prs_afdeling_key = p.prs_afdeling_key)
|
||
GROUP BY '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || pf.prs_perslid_naam_full || '] ',
|
||
p.prs_perslid_key
|
||
ORDER BY 2;
|
||
BEGIN
|
||
v_count_del := 0;
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
IF rec.aant = 0
|
||
THEN
|
||
v_errormsg := 'Fout schonen collega';
|
||
DELETE FROM prs_collega
|
||
WHERE prs_perslid_key = rec.prs_perslid_key
|
||
OR prs_perslid_key_alt = rec.prs_perslid_key;
|
||
|
||
v_errormsg := 'Fout schonen perslid';
|
||
--prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
--UPDATE prs_perslid
|
||
-- SET prs_perslid_naam = c_oud_medewerker,
|
||
-- prs_perslid_tussenvoegsel = NULL,
|
||
-- prs_perslid_voorletters = NULL,
|
||
-- prs_perslid_voornaam = NULL,
|
||
-- prs_perslid_initialen = NULL,
|
||
-- prs_perslid_geslacht = NULL,
|
||
-- prs_perslid_nr = NULL,
|
||
-- prs_perslid_telefoonnr = NULL,
|
||
-- prs_perslid_mobiel = NULL,
|
||
-- prs_perslid_email = NULL,
|
||
-- prs_perslid_oslogin = NULL,
|
||
-- prs_perslid_oslogin2 = NULL,
|
||
-- prs_perslid_verwijder = SYSDATE
|
||
-- WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_verwijder = SYSDATE
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
v_count_del := v_count_del + 1;
|
||
|
||
IF MOD (v_count_del, 1000) = 0
|
||
THEN
|
||
COMMIT;
|
||
END IF;
|
||
ELSE
|
||
fac.writelog ('EIND_SCHONEN', 'I', rec.aanduiding || '/#Verplichtingen: ' || TO_CHAR (rec.aant), 'Persoon niet geschoond');
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN -- Kennelijk heeft persoon toch nog ernstige verplichtingen!
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('EIND_SCHONEN', 'W', rec.aanduiding || v_errormsg, 'Fout schonen persoon');
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog ('EIND_SCHONEN', 'S', 'Personen/#geschoond: ' || TO_CHAR (v_count_del), '');
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('EIND_SCHONEN', 'E', v_errormsg, '');
|
||
COMMIT;
|
||
END schonen_accounts;
|
||
|
||
-- Registreren 'Aanvraag ex/intern Servercertificaat'-melding (=1355/1358)
|
||
-- 30 dagen voor 'Geldig tot datum' (=607) van 'Server certificaat'-object
|
||
-- onder 'Domeinregistraties (ICT)'-discipline (=2241).
|
||
PROCEDURE aanvraag_sercert
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_add NUMBER (10);
|
||
v_melding_key NUMBER (10);
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT '[' || TO_CHAR (d.ins_deel_key) || '|' || d.ins_deel_omschrijving || '|' || ug.ins_kenmerkdeel_waarde || '|' || bt.ins_kenmerkdeel_waarde || '] '
|
||
aanduiding,
|
||
sd.ins_srtdeel_code,
|
||
d.ins_deel_key,
|
||
d.ins_deel_omschrijving,
|
||
gt.ins_kenmerkdeel_waarde gt,
|
||
ug.ins_kenmerkdeel_waarde ug,
|
||
bt_ud.fac_usrdata_key bt_key,
|
||
bt_ud.fac_usrdata_omschr bt_oms,
|
||
fqdn_ud.fac_usrdata_omschr fqdn_oms,
|
||
san_ud.fac_usrdata_omschr san_oms,
|
||
kp.ins_kenmerkdeel_waarde kp,
|
||
ks.ins_kenmerkdeel_waarde ks,
|
||
tbd.ins_kenmerkdeel_waarde tbd,
|
||
pt.ins_kenmerkdeel_waarde pt
|
||
FROM ins_v_aanwezigkenmerkdeel gt, -- Geldig tot datum
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
--ins_srtgroep sg,
|
||
(SELECT * FROM ins_v_aanwezigkenmerkdeel WHERE ins_kenmerk_key = 701) ug, -- Uitgever (was Leverancier)
|
||
(SELECT * FROM ins_v_aanwezigkenmerkdeel WHERE ins_kenmerk_key = 742) bt, -- Behandelteam (was Behandelaarsgroep)
|
||
fac_v_aanwezigusrdata bt_ud,
|
||
(SELECT * FROM ins_v_aanwezigkenmerkdeel WHERE ins_kenmerk_key = 602) fqdn, -- Common name (FQDN)
|
||
fac_v_aanwezigusrdata fqdn_ud,
|
||
(SELECT * FROM ins_v_aanwezigkenmerkdeel WHERE ins_kenmerk_key = 603) san, -- Subject Alternative Name(s)(SAN)
|
||
fac_v_aanwezigusrdata san_ud,
|
||
(SELECT * FROM ins_v_aanwezigkenmerkdeel WHERE ins_kenmerk_key = 621) kp, -- Kostenplaats
|
||
(SELECT * FROM ins_v_aanwezigkenmerkdeel WHERE ins_kenmerk_key = 622) ks, -- Kostensoort
|
||
(SELECT * FROM ins_v_aanwezigkenmerkdeel WHERE ins_kenmerk_key = 681) tbd, -- Toepassing beheerd door
|
||
(SELECT * FROM ins_v_aanwezigkenmerkdeel WHERE ins_kenmerk_key = 661) pt, -- Policy Template
|
||
(SELECT * FROM ins_v_aanwezigkenmerkdeel WHERE ins_kenmerk_key = 581) st, -- Status
|
||
(SELECT * FROM mld_discipline WHERE ins_srtdiscipline_key = 81) md -- Behandelteams [zou zo moeten zijn]
|
||
WHERE gt.ins_kenmerk_key = 607 -- Geldig tot datum
|
||
AND fac.safe_to_date (gt.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') = TRUNC (SYSDATE + 42) -- Actuele datum 6 weken voor Geldig tot datum!
|
||
AND gt.ins_deel_key = d.ins_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = 401 -- Certificaten (ICT)
|
||
--AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
--AND sg.ins_discipline_key = 2241 -- Domeinregistraties (ICT) [zou zo moeten zijn]
|
||
AND d.ins_deel_key = ug.ins_deel_key(+)
|
||
AND d.ins_deel_key = bt.ins_deel_key(+)
|
||
AND fac.safe_to_number (bt.ins_kenmerkdeel_waarde) = bt_ud.fac_usrdata_key(+)
|
||
AND d.ins_deel_key = fqdn.ins_deel_key(+)
|
||
AND fac.safe_to_number (fqdn.ins_kenmerkdeel_waarde) = fqdn_ud.fac_usrdata_key(+)
|
||
AND d.ins_deel_key = san.ins_deel_key(+)
|
||
AND fac.safe_to_number (san.ins_kenmerkdeel_waarde) = san_ud.fac_usrdata_key(+)
|
||
AND d.ins_deel_key = kp.ins_deel_key(+)
|
||
AND d.ins_deel_key = ks.ins_deel_key(+)
|
||
AND d.ins_deel_key = tbd.ins_deel_key(+)
|
||
AND d.ins_deel_key = pt.ins_deel_key(+)
|
||
AND d.ins_deel_key = st.ins_deel_key
|
||
AND st.ins_kenmerkdeel_waarde = '1761' -- Operationeel!
|
||
AND fac.safe_to_number (bt.ins_kenmerkdeel_waarde) = md.ins_discipline_key -- Behandelteam actief (= niet verwijderd)!
|
||
ORDER BY 2, 3;
|
||
BEGIN
|
||
v_count_add := 0;
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
IF fac.safe_to_number (rec.ug) != 1791 -- Gemeente Eindhoven
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen aanvraag extern servercertificaat';
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_ins_discipline_key,
|
||
mld_stdmelding_key,
|
||
mld_melding_t_uitvoertijd,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
mld_melding_status,
|
||
mld_melding_spoed)
|
||
VALUES ('MLD',
|
||
4, -- Email
|
||
81, -- SH/Stadhuis
|
||
NULL, -- mld_alg_onroerendgoed_keys
|
||
SYSDATE,
|
||
SUBSTR ('Extern servercertificaat ' || rec.ins_deel_omschrijving || ' verloopt op ' || rec.gt, 1, 80),
|
||
'Extern servercertificaat ' || rec.ins_deel_omschrijving || ' verloopt op ' || rec.gt,
|
||
fac.safe_to_number (rec.bt_key),
|
||
1355, -- Aanvraag extern servercertificaat
|
||
NULL,
|
||
NULL, -- prs_kostenplaats_key
|
||
8321, -- Systeem
|
||
8321, -- Systeem
|
||
NULL,
|
||
3) -- Normaal
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
v_errormsg := 'Fout toevoegen Behandelaarsgroep'; -- 5551='Behandelaarsgroep' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5551, rec.bt_oms);
|
||
v_errormsg := 'Fout toevoegen Soort aanvraag'; -- 5552='Soort aanvraag' op 1684='Vernieuwing bestaande servercertificaat'
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5552, '1684');
|
||
-- MLD-ET met key=724=Extern cert 2 (2 entries) => INS-ET met key=802=DR beheer (3 entries)!
|
||
v_errormsg := 'Fout toevoegen Toepassing beheerd door'; -- 5553='Toepassing beheerd door' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5553, rec.tbd);
|
||
-- MLD-ET met key=725=Extern cert 3 (3 entries) => INS-ET met key=801=DR template (5 entries)!
|
||
v_errormsg := 'Fout toevoegen Policy Template'; -- 5554='Policy Template' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5554, rec.pt);
|
||
IF rec.pt = '1784'
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen Gewenste looptijd'; -- 5555=Gewenste looptijd' op 1690='1 jaar' (als 5554=1784)
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5555, '1690');
|
||
END IF;
|
||
v_errormsg := 'Fout toevoegen Naam van servercertificaat (FQDN)=Common name (FQDN)'; -- 5556='Naam van servercertificaat (FQDN)' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5556, rec.fqdn_oms);
|
||
v_errormsg := 'Fout toevoegen Subject Alternative name(s) (SAN)=Subject Alternative Name(s) (SAN)'; -- 5557='Subject Alternative name(s) (SAN)' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5557, rec.san_oms);
|
||
v_errormsg := 'Fout toevoegen Identificatie'; -- 5558='Identificatie' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5558, rec.ins_deel_omschrijving);
|
||
/*
|
||
--v_errormsg := 'Fout toevoegen Op welke server (indien bekend)?'; -- 5559='Op welke server (indien bekend)?' op '???'
|
||
--INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
-- VALUES (v_melding_key, 5559, '???');
|
||
*/
|
||
v_errormsg := 'Fout toevoegen Kostensoort'; -- 5561='Kostensoort' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5561, rec.ks);
|
||
v_errormsg := 'Fout toevoegen Kostenplaats'; -- 5562='Kostenplaats' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5562, rec.kp);
|
||
/*
|
||
--v_errormsg := 'Fout toevoegen Projectnummer'; -- 5563='Projectnummer' op '???'
|
||
--INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
-- VALUES (v_melding_key, 5563, '???');
|
||
--v_errormsg := 'Fout toevoegen Opmerkingen'; -- 5564='Opmerkingen' op '???'
|
||
--INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
-- VALUES (v_melding_key, 5564, '???');
|
||
*/
|
||
ELSE
|
||
v_errormsg := 'Fout toevoegen aanvraag intern servercertificaat';
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_onderwerp,
|
||
mld_melding_omschrijving,
|
||
mld_stdmelding_key,
|
||
mld_ins_discipline_key,
|
||
mld_melding_t_uitvoertijd,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
mld_melding_status,
|
||
mld_melding_spoed)
|
||
VALUES ('MLD',
|
||
4, -- Email
|
||
81, -- SH/Stadhuis
|
||
NULL, -- mld_alg_onroerendgoed_keys
|
||
SYSDATE,
|
||
SUBSTR ('Intern servercertificaat ' || rec.ins_deel_omschrijving || ' verloopt op ' || rec.gt, 1, 80),
|
||
'Intern servercertificaat ' || rec.ins_deel_omschrijving || ' verloopt op ' || rec.gt,
|
||
fac.safe_to_number (rec.bt_key),
|
||
1358, -- Aanvraag intern servercertificaat
|
||
NULL,
|
||
NULL, -- prs_kostenplaats_key
|
||
8321, -- Systeem
|
||
8321, -- Systeem
|
||
NULL,
|
||
3) -- Normaal
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
v_errormsg := 'Fout toevoegen Behandelaarsgroep'; -- 5565='Behandelaarsgroep' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5565, rec.bt_oms);
|
||
v_errormsg := 'Fout toevoegen Soort aanvraag'; -- 5566='Soort aanvraag' op 1684='Vernieuwing bestaande servercertificaat'
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5566, '1684');
|
||
-- MLD-ET met key=724=Extern cert 2 (2 entries) => INS-ET met key=802=DR beheer (3 entries)!
|
||
v_errormsg := 'Fout toevoegen Waar is de toepassing in beheer?'; -- 5567='Waar is de toepassing in beheer?' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5567, rec.tbd);
|
||
/*
|
||
-- MLD-ET met key=728=Intern cert (3 entries) vullen op basis van INS-ET met key=801=DR template (5 entries)!
|
||
v_errormsg := 'Fout toevoegen Welke servercertificaat vraag je aan?'; -- 5568='Welke servercertificaat vraag je aan?' op -1='???'
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5568, '-1');
|
||
v_errormsg := 'Fout toevoegen Wat voor "ander" certificaat vraag je aan?'; -- 5569='Wat voor "ander" certificaat vraag je aan?' op '???'
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5569, '???');
|
||
*/
|
||
v_errormsg := 'Fout toevoegen Naam van servercertificaat (FQDN)=Common name (FQDN)'; -- 5570='Naam van servercertificaat (FQDN)' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5570, rec.fqdn_oms);
|
||
v_errormsg := 'Fout toevoegen Subject Alternative name(s) (SAN)=Subject Alternative Name(s) (SAN)'; -- 5571='Subject Alternative name(s) (SAN)' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5571, rec.san_oms);
|
||
v_errormsg := 'Fout toevoegen Identificatie'; -- 5572='Identificatie' volgens object
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5572, rec.ins_deel_omschrijving);
|
||
/*
|
||
--v_errormsg := 'Fout toevoegen Op welke server (indien bekend)?'; -- 5573='Op welke server (indien bekend)?' op '???'
|
||
--INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
-- VALUES (v_melding_key, 5573, '???');
|
||
--v_errormsg := 'Fout toevoegen Projectnummer'; -- 5574='Projectnummer' op '???'
|
||
--INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
-- VALUES (v_melding_key, 5574, '???');
|
||
--v_errormsg := 'Fout toevoegen Opmerkingen'; -- 5575='Opmerkingen' op '???'
|
||
--INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
-- VALUES (v_melding_key, 5575, '???');
|
||
*/
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout toevoegen IPC categorisering'; -- 5066='IPC categorisering' op 624='Change'
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, 5066, '624');
|
||
|
||
v_errormsg := 'Fout toevoegen ' || rec.ins_srtdeel_code || '-object';
|
||
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
|
||
VALUES (v_melding_key, rec.ins_deel_key);
|
||
|
||
v_errormsg := 'Fout bijwerken melding-status';
|
||
mld.setmeldingstatus (v_melding_key, 2, 5281);
|
||
/*
|
||
-- Handle workflow actions for completion.
|
||
MLD.mld_nextworkflowstep (v_melding_key, -1); -- -1=Initial
|
||
*/
|
||
v_count_add := v_count_add + 1;
|
||
--IF MOD (v_count_add, 1000) = 0 THEN COMMIT; END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('EIND_SERCERT', 'E', rec.aanduiding || v_errormsg, '');
|
||
END;
|
||
END LOOP;
|
||
fac.writelog ('EIND_SERCERT', 'S', 'Aanvragen servercertificaat/#toegevoegd: ' || TO_CHAR (v_count_add), '');
|
||
END aanvraag_sercert;
|
||
|
||
PROCEDURE delete_mma
|
||
AS
|
||
CURSOR c1 IS
|
||
SELECT m.mld_melding_key, mk.mld_kenmerkmelding_key
|
||
FROM mld_melding m, mld_kenmerkmelding mk
|
||
WHERE m.mld_stdmelding_key IN (1561,
|
||
1279,
|
||
1281,
|
||
1282,
|
||
1280,
|
||
1283,
|
||
3582) -- MMA meldingen
|
||
AND m.mld_melding_key = mk.mld_melding_key
|
||
AND mk.mld_kenmerk_key IN (7221, 7781) -- korte termijn melding
|
||
AND m.mld_melding_start_key != m.mld_melding_key -- alleen vervolgmeldingen
|
||
AND m.mld_melding_datum = TRUNC (SYSDATE) - 60 -- binnen 2 maanden
|
||
UNION ALL
|
||
SELECT m.mld_melding_key, mk.mld_kenmerkmelding_key
|
||
FROM mld_melding m, mld_kenmerkmelding mk
|
||
WHERE m.mld_stdmelding_key IN (1561,
|
||
1279,
|
||
1281,
|
||
1282,
|
||
1280,
|
||
1283,
|
||
3582) -- MMA meldingen
|
||
AND m.mld_melding_key = mk.mld_melding_key
|
||
AND mk.mld_kenmerk_key NOT IN (7221, 7781) -- lange termijn melding
|
||
AND m.mld_melding_start_key != m.mld_melding_key -- alleen vervolgmeldingen
|
||
AND m.mld_melding_datum = TRUNC (SYSDATE) - 728;
|
||
|
||
CURSOR c2 IS
|
||
SELECT m.mld_melding_key, mk.mld_kenmerkmelding_key
|
||
FROM mld_melding m, mld_kenmerkmelding mk
|
||
WHERE m.mld_stdmelding_key IN (1561,
|
||
1279,
|
||
1281,
|
||
1282,
|
||
1280,
|
||
1283,
|
||
3582) -- MMA meldingen
|
||
AND m.mld_melding_key = mk.mld_melding_key
|
||
AND mk.mld_kenmerk_key IN (7221, 7781) -- korte termijn melding
|
||
AND m.mld_melding_start_key = m.mld_melding_key -- startmeldingen
|
||
AND m.mld_melding_datum = TRUNC (SYSDATE) - 60 -- binnen 2 maanden
|
||
UNION ALL
|
||
SELECT m.mld_melding_key, mk.mld_kenmerkmelding_key
|
||
FROM mld_melding m, mld_kenmerkmelding mk
|
||
WHERE m.mld_stdmelding_key IN (1561,
|
||
1279,
|
||
1281,
|
||
1282,
|
||
1280,
|
||
1283,
|
||
3582) -- MMA meldingen
|
||
AND m.mld_melding_key = mk.mld_melding_key
|
||
AND mk.mld_kenmerk_key NOT IN (7221, 7781) -- lange termijn melding
|
||
AND m.mld_melding_start_key = m.mld_melding_key -- startmeldingen
|
||
AND m.mld_melding_datum = TRUNC (SYSDATE) - 728;
|
||
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
DELETE FROM mld_kenmerkmelding mk
|
||
WHERE mk.mld_kenmerkmelding_key = rec.mld_kenmerkmelding_key;
|
||
|
||
DELETE FROM mld_melding m
|
||
WHERE m.mld_melding_key = rec.mld_melding_key;
|
||
END LOOP;
|
||
|
||
FOR rec IN c2
|
||
LOOP
|
||
DELETE FROM mld_kenmerkmelding mk
|
||
WHERE mk.mld_kenmerkmelding_key = rec.mld_kenmerkmelding_key;
|
||
|
||
DELETE FROM mld_melding m
|
||
WHERE m.mld_melding_key = rec.mld_melding_key;
|
||
END LOOP;
|
||
END;
|
||
END;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE EIND_DAILY
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
-- Verwijder via SCIM geinactiveerde personen!
|
||
eind.schonen_accounts;
|
||
|
||
-- Registreren 'Aanvraag ex/intern Servercertificaat'-melding (=1355/1358)
|
||
-- 30 dagen voor 'Geldig tot datum' (=607) van 'Server certificaat'-object
|
||
-- onder 'Domeinregistraties (ICT)'-discipline (=2241).
|
||
eind.aanvraag_sercert;
|
||
|
||
-- Verwijder MMA meldingen die binnen de aangegeven tijd vallen (2 maanden of 2 jaar)
|
||
eind.delete_mma;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
|
||
END EIND_DAILY;
|
||
/
|
||
/*
|
||
*** MAG WEG: eind_v_rap_import_log, eind_import_prs en eind_update_prs! ***
|
||
*** Initieel gebruikt voor import van MIM-bestand (zoals naar TOPdesk)! ***
|
||
*/
|
||
CREATE OR REPLACE VIEW eind_v_rap_import_log
|
||
(
|
||
fclt_f_applicatie,
|
||
datum,
|
||
fclt_f_status,
|
||
omschrijving,
|
||
hint
|
||
)
|
||
AS
|
||
SELECT COALESCE (fac_import_app_code, imp_log_applicatie),
|
||
TO_CHAR (imp_log_datum, 'dd-mm-yyyy hh24:mi'),
|
||
imp_log_status,
|
||
imp_log_omschrijving,
|
||
imp_log_hint
|
||
FROM imp_log il1, fac_import fi1, fac_import_app fia1
|
||
WHERE il1.fac_import_key = fi1.fac_import_key(+)
|
||
AND fi1.fac_import_app_key = fia1.fac_import_app_key(+)
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM imp_log il2, fac_import fi2
|
||
WHERE il2.fac_import_key = fi2.fac_import_key
|
||
AND fi2.fac_import_app_key = fi1.fac_import_app_key
|
||
AND il2.fac_import_key > il1.fac_import_key);
|
||
|
||
CREATE OR REPLACE PROCEDURE eind_import_prs (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000) := '-';
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
/*
|
||
-- Funtie-kolom kopieren naar extra kolom 18 (= kenmerk6)!
|
||
UPDATE fac_imp_file i
|
||
SET i.fac_imp_file_line =
|
||
i.fac_imp_file_line
|
||
|| ';'
|
||
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 9)
|
||
+ 1, INSTR (fac_imp_file_line, ';', 1, 10)
|
||
- INSTR (fac_imp_file_line, ';', 1, 9)
|
||
- 1)
|
||
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
||
|
||
-- Functie-kolom=10 resetten (op 'XXX' want verplicht)!
|
||
UPDATE fac_imp_file i
|
||
SET i.fac_imp_file_line =
|
||
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 9))
|
||
|| '"XXX"'
|
||
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 10))
|
||
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
||
COMMIT;
|
||
|
||
-- Afdelingscode-kolom kopieren naar extra kolom 19 (= kenmerk7)!
|
||
UPDATE fac_imp_file i
|
||
SET i.fac_imp_file_line =
|
||
i.fac_imp_file_line
|
||
|| ';'
|
||
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 14)
|
||
+ 1, INSTR (fac_imp_file_line, ';', 1, 15)
|
||
- INSTR (fac_imp_file_line, ';', 1, 14)
|
||
- 1)
|
||
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
||
|
||
-- Afdelingscode-kolom=15 resetten (op 'XXX' want verplicht)!
|
||
UPDATE fac_imp_file i
|
||
SET i.fac_imp_file_line =
|
||
SUBSTR (fac_imp_file_line, 1, INSTR (fac_imp_file_line, ';', 1, 14))
|
||
|| '"XXX"'
|
||
|| SUBSTR (fac_imp_file_line, INSTR (fac_imp_file_line, ';', 1, 15))
|
||
WHERE fac_import_key = p_import_key AND fac_imp_file_index > 1;
|
||
COMMIT;
|
||
*/
|
||
-- Generieke import.
|
||
-- De sequence array staat beschreven in PRS_PAC.SRC bij de import_perslid-PROCEDURE.
|
||
-- Met Stamplaats wordt nog niets gedaan!
|
||
--'%Personeelsnummer;mimKey;Gebruikersnummer;LoginCode;Geboortedatum;Geslacht;Voorletters;VoorvoegselsNaamgebruik;AchternaamNaamgebruik;Titulatuur;DatumInDienst;DatumUitDienst;Leidinggevende;FunctieInformeel;WerkTelefoonMobiel;WerkTelefoonVast;WerkEmail;OrganisatieCode;WerkGebouw;WerkKamer;WerkgeverNummer;WerkgeverNaam;Dienstverbandcode;Dienstverbandnaam;OrganisatieNaam;UserPrincipalName;Voornaam%');
|
||
-- 40410;53722;NULL;desmad;1976-08-22T00:00:00.000;V;D;NULL;Desmares;NULL;2021-05-15T00:00:00.000;2099-12-30T00:00:00.000;38950;HR Projectmanager;+31 (6) 34158419;NULL;debbie.millenaar@eindhoven.nl;PO.AA;NULL;NULL;1;Gemeente Eindhoven;V;Vast dienstverband;PO.AA Advies en Administratie;debbie.millenaar@eindhoven.nl;Debbie
|
||
prs.import_perslid (
|
||
p_import_key,
|
||
'0;0;0;0;0;0;18;9;8;27;'
|
||
|| '7;0;0;0;6;0;0;17;0;1;'
|
||
|| '14;4;0;0;0;0;2;5;11;12;' -- 2=mimKey;5=Geboortedatum;11=DatumInDienst;12=DatumUitDienst
|
||
|| '13;21;22;23;24;25;26;15;16;0;' -- 13=Leidinggevende;21=WerkgeverNummer;22=WerkgeverNaam;23=Dienstverbandcode;24=Dienstverbandnaam;25=OrganisatieNaam;26=UserPrincipalName
|
||
|| '0;0;0;0;0;0',
|
||
'%Personeelsnummer;mimKey;Gebruikersnummer;LoginCode;Geboortedatum;Geslacht;Voorletters;VoorvoegselsNaamgebruik;AchternaamNaamgebruik;Titulatuur;DatumInDienst;DatumUitDienst;Leidinggevende;FunctieInformeel;WerkTelefoonMobiel;WerkTelefoonVast;WerkEmail;OrganisatieCode;WerkGebouw;WerkKamer;WerkgeverNummer;WerkgeverNaam;Dienstverbandcode;Dienstverbandnaam;OrganisatieNaam;UserPrincipalName;Voornaam%');
|
||
-- Klantspecifieke aanpassingen.
|
||
/*
|
||
-- Functie-kolom volgens kenmerk6 of anders op Onbekend!
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_srtperslid_omschrijving = COALESCE (SUBSTR (i.prs_kenmerk6, 1, 60), 'Onbekend')
|
||
WHERE i.prs_perslid_naam IS NOT NULL;
|
||
|
||
-- Afdeling-kolom altijd op 'EIND' (en kenmerk7 negeren)!
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_afdeling_naam = 'EIND';
|
||
|
||
-- Login-kolom volgens e-mail (en eventueel niet gevuld)!
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_oslogin = SUBSTR (i.prs_perslid_email, 1, 30)
|
||
WHERE i.prs_perslid_naam IS NOT NULL;
|
||
|
||
-- Als geen Voornaam aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_voornaam =
|
||
(SELECT MAX (prs_perslid_voornaam)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_voornaam IS NULL -- Aangeleverde Voornaam wint!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_voornaam IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
|
||
-- Als geen Email aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_email =
|
||
(SELECT MAX (prs_perslid_email)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_email IS NULL -- Aangeleverde Email wint!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_email IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
|
||
-- Als geen Telefoonnr aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_telefoonnr =
|
||
(SELECT MAX (prs_perslid_telefoonnr)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_telefoonnr IS NULL -- Aangeleverde Telefoonnr wint!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_telefoonnr IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
|
||
-- Als geen Mobiel aangeleverd, dan handmatig toegekende niet wissen.
|
||
UPDATE fac_imp_perslid i
|
||
SET i.prs_perslid_mobiel =
|
||
(SELECT MAX (prs_perslid_mobiel)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_nr = i.prs_perslid_nr)
|
||
WHERE i.prs_perslid_mobiel IS NULL -- Aangeleverde Mobiel wint!
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_mobiel IS NOT NULL
|
||
AND prs_perslid_nr = i.prs_perslid_nr);
|
||
|
||
-- Klantspecifieke aanpassingen.
|
||
-- Locatie/Gebouw/Verdieping/Ruimte bepalen via Kenmerk1-kolom -> Eigen tabel (key = 1) ->
|
||
-- Gebouw en daaronder Ruimte '_' op de verdieping met het laagste volgnummer!
|
||
-- Als persoon al een WP heeft op import-locatie, dan is dat de juiste en blijft deze
|
||
-- (handmatig gecorrigeerde WP) ongewijzigd. In alle andere gevallen verhuist persoon naar
|
||
-- '_' op de meegegeven locatie.
|
||
-- Eventuele WPs onder andere locaties dan import-locatie blijven ook ongewijzigd!
|
||
UPDATE fac_imp_perslid i
|
||
SET i.alg_locatie_code =
|
||
(SELECT il.alg_locatie_code
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il
|
||
WHERE ud.fac_usrtab_key = -1
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)),
|
||
i.alg_gebouw_code =
|
||
(SELECT ig.alg_gebouw_code
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il
|
||
WHERE ud.fac_usrtab_key = -1
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)),
|
||
i.alg_verdieping_volgnr =
|
||
(SELECT iv.alg_verdieping_volgnr
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il,
|
||
alg_verdieping iv,
|
||
alg_ruimte ir
|
||
WHERE ud.fac_usrtab_key = -1
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)
|
||
AND ig.alg_gebouw_key = iv.alg_gebouw_key
|
||
AND iv.alg_verdieping_key = ir.alg_verdieping_key
|
||
AND ir.alg_ruimte_nr = '_000'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanwezigruimte r, alg_verdieping v
|
||
WHERE r.alg_ruimte_nr = '_000'
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_verdieping_volgnr < iv.alg_verdieping_volgnr)),
|
||
i.alg_ruimte_nr =
|
||
(SELECT '_000'
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il
|
||
WHERE ud.fac_usrtab_key = -1
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key))
|
||
WHERE NOT EXISTS -- Nog geen werkplek op Locatie!
|
||
(SELECT 1
|
||
FROM fac_v_aanwezigusrdata ud, -- Mapping Kenmerk1-code -> Gebouwcode
|
||
alg_v_aanweziggebouw ig,
|
||
alg_locatie il,
|
||
prs_v_aanwezigperslid p,
|
||
prs_perslidwerkplek pw,
|
||
prs_werkplek cw,
|
||
alg_v_aanwezigruimte cr,
|
||
alg_verdieping cv,
|
||
alg_gebouw cg
|
||
WHERE ud.fac_usrtab_key = -1
|
||
AND UPPER (ud.fac_usrdata_code) = UPPER (i.prs_kenmerk1)
|
||
AND UPPER (ud.fac_usrdata_omschr) = UPPER (ig.alg_gebouw_code)
|
||
AND ig.alg_locatie_key = il.alg_locatie_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE UPPER (alg_gebouw_code) = UPPER (ud.fac_usrdata_omschr)
|
||
AND alg_locatie_key < il.alg_locatie_key)
|
||
AND p.prs_perslid_nr = i.prs_perslid_nr
|
||
AND p.prs_perslid_key = pw.prs_perslid_key
|
||
AND pw.prs_werkplek_key = cw.prs_werkplek_key
|
||
AND cw.prs_alg_ruimte_key = cr.alg_ruimte_key
|
||
AND cr.alg_verdieping_key = cv.alg_verdieping_key
|
||
AND cv.alg_gebouw_key = cg.alg_gebouw_key
|
||
AND cg.alg_locatie_key = il.alg_locatie_key);
|
||
|
||
-- Resulteert in nette foutmelding als ruimte niet kan worden bepaald.
|
||
UPDATE fac_imp_perslid
|
||
SET alg_verdieping_volgnr = 0
|
||
WHERE alg_gebouw_code IS NOT NULL
|
||
AND alg_verdieping_volgnr IS NULL;
|
||
*/
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, 'Inleesproces personen afgebroken!');
|
||
END eind_import_prs;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE eind_update_prs (p_import_key IN NUMBER)
|
||
AS
|
||
-- Toevoegen afdelingen die nog niet voorkomen in Facilitor en verwijderen
|
||
-- voorlopig handmatig (ipv. automatisch).
|
||
CURSOR c_afd
|
||
IS
|
||
SELECT i.prs_afdeling_naam,
|
||
MAX (COALESCE (SUBSTR (i.prs_kenmerk10, INSTR (i.prs_kenmerk10, ' ') + 1, 60), i.prs_afdeling_naam)) prs_afdeling_omschrijving,
|
||
COUNT (i.prs_perslid_nr) aant
|
||
FROM fac_imp_perslid i
|
||
WHERE LENGTH (i.prs_afdeling_naam) BETWEEN 1 AND 15 -- Gevuld en niet te lang!
|
||
AND EXISTS (SELECT 1 FROM prs_v_aanwezigbedrijf WHERE prs_bedrijf_key = 6) -- Gemeente Eindhoven!
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND prs_bedrijf_key = 6 -- Gemeente Eindhoven!
|
||
AND prs_afdeling_parentkey IS NULL -- Afdeling-1!
|
||
AND UPPER (TRIM (prs_afdeling_naam)) = UPPER (TRIM (i.prs_afdeling_naam)))
|
||
GROUP BY i.prs_afdeling_naam
|
||
ORDER BY 1;
|
||
|
||
-- Toevoegen Indienst-datum (=kenmerk3) en Uitdienst-datum (=kenmerk4).
|
||
CURSOR c_prs
|
||
IS
|
||
SELECT x.prs_perslid_key,
|
||
x.prs_perslid_nr,
|
||
x.prs_kenmerk3,
|
||
x.prs_kenmerk4
|
||
FROM fac_imp_perslid x
|
||
WHERE (x.prs_kenmerk3 IS NOT NULL OR x.prs_kenmerk4 IS NOT NULL)
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_key > 10 -- Voor de zekerheid!
|
||
AND prs_perslid_apikey IS NULL
|
||
--AND prs_perslid_oslogin2 IS NULL -- Zonder alternatieve login!
|
||
AND prs_perslid_nr IS NOT NULL -- Met personeelsnummer!
|
||
--AND UPPER (prs_perslid_nr) = UPPER (x.prs_perslid_nr)
|
||
AND prs_perslid_key = x.prs_perslid_key)
|
||
ORDER BY 1;
|
||
|
||
-- Verwijderen personen die niet meer in importbestand voorkomen.
|
||
-- Dubbele nummers? Dan wordt iemand mogelijk niet verwijderd/INACTIEF!
|
||
CURSOR c_del
|
||
IS
|
||
SELECT p.prs_perslid_key
|
||
FROM prs_v_aanwezigperslid p
|
||
WHERE p.prs_perslid_key > 10 -- Voor de zekerheid!
|
||
AND p.prs_perslid_apikey IS NULL
|
||
--AND prs_perslid_oslogin2 IS NULL -- Zonder alternatieve login!
|
||
AND prs_perslid_nr IS NOT NULL -- Met personeelsnummer!
|
||
--AND NOT EXISTS
|
||
-- (SELECT 1
|
||
-- FROM fac_imp_perslid
|
||
-- WHERE LOWER (prs_perslid_email) = LOWER (p.prs_perslid_email))
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_perslid
|
||
WHERE UPPER (prs_perslid_nr) = UPPER (p.prs_perslid_nr))
|
||
ORDER BY 1;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
BEGIN
|
||
-- Toevoegen niet bestaande afdelingen.
|
||
FOR rec IN c_afd
|
||
LOOP
|
||
BEGIN
|
||
INSERT INTO prs_afdeling (prs_bedrijf_key, prs_afdeling_naam, prs_afdeling_omschrijving)
|
||
VALUES (6, rec.prs_afdeling_naam, rec.prs_afdeling_omschrijving);
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Tussenvoegsel-veld wissen indien gevuld met 'NULL'.
|
||
UPDATE fac_imp_perslid
|
||
SET prs_perslid_tussenvoegsel = NULL
|
||
WHERE prs_perslid_tussenvoegsel = 'NULL';
|
||
|
||
-- Telefoonnummer-velden vullen met gestripte MIM-waarde (om lengte te beperken).
|
||
UPDATE fac_imp_perslid
|
||
SET prs_perslid_telefoonnr = DECODE (prs_kenmerk13, 'NULL', NULL, SUBSTR (REPLACE (prs_kenmerk13, ' ', ''), 1, 15)),
|
||
prs_perslid_mobiel = DECODE (prs_kenmerk12, 'NULL', NULL, SUBSTR (REPLACE (prs_kenmerk12, ' ', ''), 1, 15))
|
||
WHERE COALESCE (prs_kenmerk12, 'NULL') != 'NULL'
|
||
OR COALESCE (prs_kenmerk13, 'NULL') != 'NULL';
|
||
|
||
-- Generic update.
|
||
SELECT COUNT(*) INTO v_count FROM fac_imp_perslid;
|
||
|
||
IF v_count < 2000
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E',
|
||
'Het aantal te importeren personen is te klein (' || TO_CHAR (v_count) || ')',
|
||
'Zie specificatie');
|
||
RETURN;
|
||
END IF;
|
||
|
||
-- Generieke update (op e-mail adres).
|
||
prs.update_perslid (p_import_key, 'NR', 'L');
|
||
|
||
-- Bijwerken extra persoonsvelden (niet ondersteund door standaard import).
|
||
v_count := 0;
|
||
FOR rec IN c_prs
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := '[' || TO_CHAR (rec.prs_perslid_key) || '|' || rec.prs_perslid_nr || '] Fout bijwerken In/Uitdienst-datumveld';
|
||
UPDATE prs_perslid
|
||
SET prs_perslid_ingangsdatum = fac.safe_to_date (SUBSTR (rec.prs_kenmerk3, 1, 10), 'yyyy-mm-dd'),
|
||
prs_perslid_einddatum = fac.safe_to_date (SUBSTR (rec.prs_kenmerk4, 1, 10), 'yyyy-mm-dd')
|
||
WHERE prs_perslid_key = rec.prs_perslid_key;
|
||
|
||
--v_errormsg := '[' || TO_CHAR (rec.prs_perslid_key) || '|' || rec.prs_perslid_email || '] Fout bijwerken Leidinggevende-kenmerk';
|
||
--prs.upsertkenmerk (1000, rec.prs_perslid_key, rec.prs_kenmerk4); -- Leidinggevende
|
||
|
||
v_count := v_count + 1;
|
||
END;
|
||
END LOOP;
|
||
/*
|
||
-- Verwijderen personen *binnen EIND* niet meer in importbestand.
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END;
|
||
END LOOP;
|
||
*/
|
||
/*
|
||
-- Verwijder ongebruikte functies; deze import bepaalt de functies!
|
||
v_errormsg := 'Fout verwijderen functies';
|
||
DELETE FROM prs_srtperslid sp
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslid
|
||
WHERE prs_srtperslid_key = sp.prs_srtperslid_key);
|
||
*/
|
||
-- Toekennen _Default aan alle personen in import-scope!
|
||
v_errormsg := 'Fout toekennen _Default';
|
||
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
|
||
SELECT prs_perslid_key, 1
|
||
FROM prs_v_aanwezigperslid p
|
||
WHERE p.prs_perslid_key > 10 -- Voor de zekerheid!
|
||
AND p.prs_perslid_apikey IS NULL
|
||
--AND prs_perslid_oslogin2 IS NULL -- Zonder alternatieve login!
|
||
AND prs_perslid_nr IS NOT NULL -- Met personeelsnummer!
|
||
AND NOT EXISTS -- Nog niet toegekend aan _Default!
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 1 -- _Default
|
||
AND prs_perslid_key = p.prs_perslid_key);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, 'Importproces PRS afgebroken!');
|
||
END eind_update_prs;
|
||
/
|
||
|
||
/*
|
||
CREATE OR REPLACE VIEW EIND_V_RAP_QRC
|
||
AS
|
||
SELECT d.ins_deel_omschrijving hide_f_sort,
|
||
dd.ins_discipline_omschrijving || ' / ' || sm.mld_stdmelding_omschrijving
|
||
fclt_f_melding,
|
||
'Plaats' gekoppeld_aan,
|
||
l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving
|
||
fclt_f_locatie,
|
||
--o.alg_gebouw_omschrijving fclt_f_gebouw,
|
||
o.alg_plaatsaanduiding fclt_f_plaats,
|
||
NULL fclt_f_persoon,
|
||
dd.ins_discipline_omschrijving fclt_f_discipline,
|
||
sg.ins_srtgroep_omschrijving fclt_f_objectgroep,
|
||
sd.ins_srtdeel_omschrijving fclt_f_objectsoort,
|
||
d.ins_deel_omschrijving fclt_f_identificatie,
|
||
--b.fac_bookmark_naam fclt_f_bookmark,
|
||
dd.ins_discipline_key fclt_3d_discipline_key,
|
||
sd.ins_srtdeel_key,
|
||
d.ins_deel_key,
|
||
d.ins_alg_locatie_key fclt_3d_locatie_key,
|
||
d.ins_alg_ruimte_type,
|
||
d.ins_alg_ruimte_key,
|
||
--o.alg_gebouw_code,
|
||
--o.alg_verdieping_code,
|
||
b.fac_bookmark_id hide_f_bookmark_id
|
||
FROM --fac_bookmark b,
|
||
(SELECT SUBSTR (SUBSTR (UPPER (fac_bookmark_query), INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') + 9), 1, INSTR (SUBSTR (UPPER (fac_bookmark_query), INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') + 9) || '&', '&') - 1)
|
||
stdmkina,
|
||
--fac_bookmark_naam,
|
||
fac_bookmark_id
|
||
FROM fac_bookmark
|
||
WHERE (fac_bookmark_expire IS NULL OR fac_bookmark_expire > SYSDATE)
|
||
AND UPPER (TRIM (fac_bookmark_path)) = 'APPL/PDA/INS_DEEL.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') > 0) b, -- STDMKINA-bookmarks
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline dd,
|
||
alg_locatie l,
|
||
ins_v_alg_overzicht o,
|
||
mld_stdmelding sm,
|
||
mld_stdmelding_srtinst smsd
|
||
WHERE --(b.fac_bookmark_expire IS NULL OR b.fac_bookmark_expire > SYSDATE)
|
||
--AND b.fac_bookmark_naam = 'QRC_MELDING'
|
||
--AND d.ins_deel_module = 'INS'
|
||
d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = dd.ins_discipline_key
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND d.ins_alg_locatie_key = l.alg_locatie_key
|
||
--AND d.ins_alg_locatie_key = o.alg_locatie_key
|
||
AND d.ins_alg_ruimte_type = o.alg_onroerendgoed_type
|
||
AND d.ins_alg_ruimte_key = o.alg_onroerendgoed_keys
|
||
AND fac.safe_to_number (b.stdmkina) = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key = smsd.mld_stdmelding_key
|
||
AND smsd.ins_srtinstallatie_key = DECODE (smsd.ins_srtinstallatie_niveau, 'S', sd.ins_srtdeel_key, 'G', sg.ins_srtgroep_key, 'D', dd.ins_discipline_key)
|
||
UNION ALL
|
||
SELECT d.ins_deel_omschrijving hide_f_sort,
|
||
dd.ins_discipline_omschrijving || ' / ' || sm.mld_stdmelding_omschrijving
|
||
fclt_f_melding,
|
||
'Persoon' gekoppeld_aan,
|
||
NULL fclt_f_locatie,
|
||
--NULL fclt_f_gebouw,
|
||
NULL fclt_f_plaats,
|
||
pf.prs_perslid_naam_full fclt_f_persoon,
|
||
dd.ins_discipline_omschrijving fclt_f_discipline,
|
||
sg.ins_srtgroep_omschrijving fclt_f_objectgroep,
|
||
sd.ins_srtdeel_omschrijving fclt_f_objectsoort,
|
||
d.ins_deel_omschrijving fclt_f_identificatie,
|
||
--b.fac_bookmark_naam fclt_f_bookmark,
|
||
dd.ins_discipline_key fclt_3d_discipline_key,
|
||
sd.ins_srtdeel_key,
|
||
d.ins_deel_key,
|
||
d.ins_alg_locatie_key fclt_3d_locatie_key,
|
||
d.ins_alg_ruimte_type,
|
||
d.ins_alg_ruimte_key,
|
||
--NULL alg_gebouw_code,
|
||
--NULL alg_verdieping_code,
|
||
b.fac_bookmark_id hide_f_bookmark_id
|
||
FROM --fac_bookmark b,
|
||
(SELECT SUBSTR (SUBSTR (UPPER (fac_bookmark_query), INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') + 9), 1, INSTR (SUBSTR (UPPER (fac_bookmark_query), INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') + 9) || '&', '&') - 1)
|
||
stdmkina,
|
||
--fac_bookmark_naam,
|
||
fac_bookmark_id
|
||
FROM fac_bookmark
|
||
WHERE (fac_bookmark_expire IS NULL OR fac_bookmark_expire > SYSDATE)
|
||
AND UPPER (TRIM (fac_bookmark_path)) = 'APPL/PDA/INS_DEEL.ASP'
|
||
AND INSTR (UPPER (fac_bookmark_query), 'STDMKINA=') > 0) b, -- STDMKINA-bookmarks
|
||
ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_discipline dd,
|
||
prs_v_perslid_fullnames pf,
|
||
mld_stdmelding sm,
|
||
mld_stdmelding_srtinst smsd
|
||
WHERE --(b.fac_bookmark_expire IS NULL OR b.fac_bookmark_expire > SYSDATE)
|
||
--AND b.fac_bookmark_naam = 'QRC_MELDING'
|
||
--AND d.ins_deel_module = 'INS'
|
||
d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = dd.ins_discipline_key
|
||
AND d.ins_deel_parent_key IS NULL
|
||
AND d.ins_alg_ruimte_type IN ('P')
|
||
AND d.ins_alg_ruimte_key = pf.prs_perslid_key
|
||
AND fac.safe_to_number (b.stdmkina) = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key = smsd.mld_stdmelding_key
|
||
AND smsd.ins_srtinstallatie_key = DECODE (smsd.ins_srtinstallatie_niveau, 'S', sd.ins_srtdeel_key, 'G', sg.ins_srtgroep_key, 'D', dd.ins_discipline_key)
|
||
;
|
||
*/
|
||
|
||
-- Intern (via MLD) vs. extern (via INS) bestelde Faciliteiten.
|
||
CREATE OR REPLACE VIEW EIND_V_RAP_BES_VOORRAAD_MUT
|
||
(
|
||
catalogus,
|
||
groep,
|
||
artikel,
|
||
artikelcode,
|
||
prijs,
|
||
ext_besteld, -- Karakter
|
||
int_besteld, -- Numeriek
|
||
aanvraagnr,
|
||
aanmaakdatum,
|
||
status_key,
|
||
status_oms,
|
||
aanvrager,
|
||
afd_code,
|
||
afd_oms,
|
||
kostenplaats,
|
||
grootboeknummer
|
||
)
|
||
AS
|
||
SELECT extbes.ins_discipline_omschrijving,
|
||
extbes.ins_srtgroep_omschrijving,
|
||
extbes.ins_srtdeel_omschrijving,
|
||
extbes.ins_srtdeel_code,
|
||
REPLACE (TO_CHAR (extbes.bedrag, 'fm999990.00'), '.', ','),
|
||
extbes.aantal, -- Karakter
|
||
COALESCE (intbes.aantal, 0), -- Numeriek
|
||
TO_CHAR (intbes.mld_melding_key),
|
||
intbes.mld_melding_datum,
|
||
intbes.mld_statuses_key,
|
||
intbes.mld_statuses_omschrijving,
|
||
intbes.prs_perslid_naam_full,
|
||
intbes.prs_afdeling_naam,
|
||
intbes.prs_afdeling_omschrijving,
|
||
intbes.kostenplaats,
|
||
intbes.grootboeknummer
|
||
FROM (SELECT d.ins_deel_key,
|
||
td.ins_discipline_key,
|
||
td.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_key,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_key,
|
||
sd.ins_srtdeel_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
COALESCE (bedrag.ins_kenmerkdeel_waarde, '0') bedrag,
|
||
COALESCE (aantal.ins_kenmerkdeel_waarde, '0') aantal
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
(SELECT *
|
||
FROM ins_v_aanwezigkenmerkdeel
|
||
WHERE ins_kenmerk_key = 462) bedrag, -- Artikelprijs
|
||
(SELECT *
|
||
FROM ins_v_aanwezigkenmerkdeel
|
||
WHERE ins_kenmerk_key = 461) aantal -- Extern_besteld
|
||
WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_discipline_key = 1841 -- Voorraadartikelen
|
||
AND d.ins_deel_key = bedrag.ins_deel_key(+)
|
||
AND d.ins_deel_key = aantal.ins_deel_key(+)) extbes
|
||
LEFT JOIN
|
||
(SELECT fac.safe_to_number (k.mld_kenmerk_code) ins_srtdeel_key,
|
||
fac.safe_to_number (km.mld_kenmerkmelding_waarde) aantal, -- Zou nooit NULL mogen zijn!
|
||
m.mld_melding_key,
|
||
m.mld_melding_datum,
|
||
s.mld_statuses_key,
|
||
s.mld_statuses_omschrijving,
|
||
m.prs_perslid_key_voor,
|
||
pf.prs_perslid_naam_full,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
kostenplaats.mld_kenmerkmelding_waarde kostenplaats,
|
||
grootboeknummer.mld_kenmerkmelding_waarde grootboeknummer
|
||
FROM mld_melding m,
|
||
mld_kenmerkmelding km,
|
||
mld_kenmerk k,
|
||
--mld_srtkenmerk sk,
|
||
mld_statuses s,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_afdeling a,
|
||
(SELECT *
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_kenmerk_key IN (3809, 4561, 4601)) kostenplaats,
|
||
(SELECT *
|
||
FROM mld_kenmerkmelding
|
||
WHERE mld_kenmerk_key IN (3810, 4562, 4602)) grootboeknummer
|
||
WHERE m.mld_stdmelding_key IN (1327, 1388, 1721) -- COM.BR Relatiegeschenken Representatie Bestuur/Relatiegeschenken/Kantoorartikelen (bijvullen)
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
--AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
--AND sk.mld_srtkenmerk_kenmerktype = 'N'
|
||
--AND sk.mld_srtkenmerk_dec IS NULL
|
||
AND k.mld_srtkenmerk_key = 561 -- Intern_besteld (per te bestellen artikel)
|
||
AND m.mld_melding_status = s.mld_statuses_key
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND m.mld_melding_key = kostenplaats.mld_melding_key(+)
|
||
AND m.mld_melding_key = grootboeknummer.mld_melding_key(+)) intbes
|
||
ON extbes.ins_srtdeel_key = intbes.ins_srtdeel_key;
|
||
|
||
CREATE OR REPLACE VIEW EIND_V_RAP_MLD_MIGRATIE
|
||
AS
|
||
SELECT COALESCE (m.mld_ins_discipline_key, md.ins_discipline_key) fclt_3d_discipline_key,
|
||
sm.mld_stdmelding_omschrijving standaardmelding,
|
||
m.mld_melding_datum aanmaakdatum,
|
||
m.mld_melding_key,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnr,
|
||
m.mld_meldbron_nr td_nr,
|
||
soort.waarde td_soort,
|
||
cat.waarde td_categorie,
|
||
subcat.waarde td_subcategorie,
|
||
bg.waarde td_behandelaarsgroep,
|
||
b.waarde td_behandelaar,
|
||
oid.waarde td_objectid,
|
||
beh.waarde td_beheerder, -- P
|
||
coord.waarde td_coordinator, -- W/WA
|
||
COALESCE (man1.waarde, man2.waarde) td_manager, -- W/WA resp. Manager wijziging/Manager
|
||
sjabloon.waarde td_sjabloon, -- W/WA
|
||
versie.waarde td_versie -- W/WA
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Soort:') + 7),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Soort:') + 7) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Soort:') > 0) soort,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Categorie:') + 11),
|
||
1,
|
||
INSTR (SUBSTR ( mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Categorie:') + 11) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Categorie:') > 0) cat,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Subcategorie:') + 14),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Subcategorie:') + 14) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Subcategorie:') > 0) subcat,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Behandelaarsgroep:') + 19),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Behandelaarsgroep:') + 19) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Behandelaarsgroep:') > 0) bg,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Behandelaaar:') + 14), -- Met 3x letter 'a'!
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Behandelaaar:') + 14) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Behandelaaar:') > 0) b,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Object ID:') + 11),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Object ID:') + 11) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Object ID:') > 0) oid,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Beheerder:') + 11),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Beheerder:') + 11) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Beheerder:') > 0) beh,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Coordinator:') + 13),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Coordinator:') + 13) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Coordinator:') > 0) coord,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Manager:') + 9),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Manager:') + 9) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Manager:') > 0) man1,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Manager wijziging:') + 19),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Manager wijziging:') + 19) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Manager wijziging:') > 0) man2,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Sjabloon:') + 10),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Sjabloon:') + 10) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Sjabloon:') > 0) sjabloon,
|
||
(SELECT mld_melding_key,
|
||
SUBSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Versie:') + 8),
|
||
1,
|
||
INSTR (SUBSTR (mld_melding_note_omschrijving, INSTR (mld_melding_note_omschrijving, 'Versie:') + 8) || CHR (13), CHR (13)) - 1) waarde
|
||
FROM mld_melding_note
|
||
WHERE INSTR (mld_melding_note_omschrijving, 'Soort:') = 1
|
||
AND INSTR (mld_melding_note_omschrijving, 'Versie:') > 0) versie
|
||
WHERE m.mld_meldbron_nr IS NOT NULL
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = soort.mld_melding_key(+)
|
||
AND m.mld_melding_key = cat.mld_melding_key(+)
|
||
AND m.mld_melding_key = subcat.mld_melding_key(+)
|
||
AND m.mld_melding_key = bg.mld_melding_key(+)
|
||
AND m.mld_melding_key = b.mld_melding_key(+)
|
||
AND m.mld_melding_key = oid.mld_melding_key(+)
|
||
AND m.mld_melding_key = beh.mld_melding_key(+)
|
||
AND m.mld_melding_key = coord.mld_melding_key(+)
|
||
AND m.mld_melding_key = man1.mld_melding_key(+)
|
||
AND m.mld_melding_key = man2.mld_melding_key(+)
|
||
AND m.mld_melding_key = sjabloon.mld_melding_key(+)
|
||
AND m.mld_melding_key = versie.mld_melding_key(+);
|
||
|
||
CREATE OR REPLACE VIEW EIND_V_RAP_BES_VOORRAAD
|
||
(
|
||
catalogus,
|
||
groep,
|
||
artikel,
|
||
artikelcode,
|
||
prijs,
|
||
ext_besteld,
|
||
int_besteld,
|
||
voorraad
|
||
)
|
||
AS
|
||
SELECT catalogus,
|
||
groep,
|
||
artikel,
|
||
artikelcode,
|
||
prijs,
|
||
ext_besteld,
|
||
TO_CHAR (SUM (int_besteld)) int_besteld,
|
||
TO_CHAR (fac.safe_to_number (ext_besteld) - SUM (int_besteld)) voorraad
|
||
FROM eind_v_rap_bes_voorraad_mut
|
||
WHERE status_key = 5 -- Afgemeld
|
||
GROUP BY catalogus,
|
||
groep,
|
||
artikel,
|
||
artikelcode,
|
||
prijs,
|
||
ext_besteld;
|
||
|
||
CREATE OR REPLACE VIEW eind_v_software
|
||
(
|
||
ins_deel_key,
|
||
ins_deel_omschrijving,
|
||
ins_deel_vervaldatum
|
||
)
|
||
AS
|
||
SELECT ins_deel_key, ins_deel_omschrijving, ins_deel_vervaldatum
|
||
FROM ins_deel i, ins_srtdeel sd, ins_srtgroep sg
|
||
WHERE i.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = 1501 -- Software
|
||
AND i.ins_deel_verwijder IS NULL
|
||
AND sd.ins_srtdeel_verwijder IS NULL
|
||
AND sg.ins_srtgroep_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW eind_v_behandelteams
|
||
AS
|
||
SELECT itb.ins_discipline_key key,
|
||
itb.ins_discipline_omschrijving behandelteam
|
||
FROM ins_tab_discipline itb
|
||
WHERE itb.ins_srtdiscipline_key = 81
|
||
AND itb.ins_discipline_module = 'MLD'
|
||
AND itb.ins_discipline_verwijder IS NULL;
|
||
|
||
CREATE OR REPLACE VIEW eind_v_rap_licentie_overzicht
|
||
AS
|
||
SELECT i.ins_deel_omschrijving software_naam,
|
||
x.ins_srtgroep_omschrijving soort_licentie,
|
||
x.ins_deel_omschrijving licentie_naam,
|
||
x.status licentie_status,
|
||
x.persoon uitgegeven_aan,
|
||
x.afdeling afdeling,
|
||
x.datum_uit_dienst,
|
||
ii.ins_deel_aanmaak ingangsdatum,
|
||
ii.ins_deel_vervaldatum einddatum,
|
||
(SELECT ikd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel ikd
|
||
WHERE ikd.ins_deel_key = i.ins_deel_key
|
||
AND ikd.ins_kenmerk_key = 801) aantal_gekocht,
|
||
(SELECT ikd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel ikd
|
||
WHERE ikd.ins_deel_key = ii.ins_deel_key
|
||
AND ikd.ins_kenmerk_key = 401) prijs_per_stuk,
|
||
(SELECT ikd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel ikd
|
||
WHERE ikd.ins_deel_key = ii.ins_deel_key
|
||
AND ikd.ins_kenmerk_key = 402) totaal_prijs,
|
||
(SELECT ikd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel ikd
|
||
WHERE ikd.ins_deel_key = ii.ins_deel_key
|
||
AND ikd.ins_kenmerk_key = 403) serienummer,
|
||
(SELECT ikd.ins_kenmerkdeel_waarde
|
||
FROM ins_kenmerkdeel ikd
|
||
WHERE ikd.ins_deel_key = ii.ins_deel_key
|
||
AND ikd.ins_kenmerk_key = 404) leverancier,
|
||
ii.ins_deel_key licentie_key,
|
||
i.ins_deel_key software_key
|
||
FROM ins_deel i,
|
||
ins_deel ii,
|
||
(SELECT i.ins_deel_key,
|
||
i.ins_deel_omschrijving,
|
||
s.ins_srtdeel_omschrijving,
|
||
g.INS_SRTGROEP_OMSCHRIJVING,
|
||
(SELECT pf.prs_perslid_naam_full
|
||
FROM prs_v_perslid_fullnames pf, ins_deel d
|
||
WHERE d.ins_alg_ruimte_type = 'P'
|
||
AND d.ins_deel_key = i.ins_deel_key
|
||
AND d.ins_alg_ruimte_key = pf.prs_perslid_key)
|
||
persoon,
|
||
(SELECT a.prs_afdeling_omschrijving
|
||
FROM prs_afdeling a, prs_perslid pf, ins_deel d
|
||
WHERE d.ins_alg_ruimte_type = 'P'
|
||
AND d.ins_deel_key = i.ins_deel_key
|
||
AND d.ins_alg_ruimte_key = pf.prs_perslid_key
|
||
AND pf.prs_afdeling_key = a.prs_afdeling_key) afdeling,
|
||
(SELECT pf.prs_perslid_einddatum
|
||
FROM prs_perslid pf, ins_deel d
|
||
WHERE d.ins_alg_ruimte_type = 'P'
|
||
AND d.ins_deel_key = i.ins_deel_key
|
||
AND d.ins_alg_ruimte_key = pf.prs_perslid_key) datum_uit_dienst,
|
||
DECODE (i.ins_alg_ruimte_type,
|
||
'R', 'Voorraad',
|
||
'P', 'Uitgegeven')
|
||
status
|
||
FROM ins_deel i, ins_srtdeel s, ins_srtgroep g
|
||
WHERE i.ins_srtdeel_key = s.ins_srtdeel_key
|
||
AND s.ins_srtgroep_key = g.ins_srtgroep_key
|
||
AND i.ins_discipline_key = 1422 -- licenties
|
||
) x
|
||
WHERE i.ins_deel_key = ii.ins_deel_parent_key
|
||
AND ii.ins_deel_key = x.ins_deel_key
|
||
AND ii.ins_deel_parent_key IS NOT NULL;
|
||
|
||
CREATE OR REPLACE VIEW eind_v_leidinggevenden
|
||
AS
|
||
SELECT
|
||
p.prs_perslid_naam_full,
|
||
p.prs_perslid_key
|
||
FROM
|
||
fac_gebruikersgroep f,
|
||
prs_v_perslid_fullnames p
|
||
WHERE p.prs_perslid_key = f.prs_perslid_key
|
||
AND f.fac_groep_key = 501;
|
||
|
||
-- Mail2Melding-stroom:
|
||
-- - SERVICEDESK -: Registreren melding
|
||
CREATE OR REPLACE PROCEDURE eind_processemail (
|
||
pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
pemailkey IN NUMBER)
|
||
AS
|
||
c_onbekend_key NUMBER (10) := 4; -- TODO:API-user tbv. hMail-koppeling?
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_perslid_key NUMBER (10);
|
||
v_kostenplaats_key NUMBER (10);
|
||
v_locatie_key NUMBER (10);
|
||
subject_regexp VARCHAR2 (1000);
|
||
v_mldnum VARCHAR2 (1000);
|
||
v_melding_key NUMBER (10);
|
||
v_melder_key NUMBER (10);
|
||
v_discipline_key NUMBER (10);
|
||
v_stdmelding_key NUMBER (10);
|
||
v_body VARCHAR2 (4000);
|
||
v_folder_kkey NUMBER (10);
|
||
v_count NUMBER (10);
|
||
v_negeer NUMBER (10);
|
||
v_behandelteam NUMBER (10);
|
||
|
||
BEGIN
|
||
CASE
|
||
--WHEN INSTR (UPPER (pfrom), '???') > 0 AND UPPER (pto) LIKE 'SERVICEDESK@%'
|
||
WHEN UPPER (pto) LIKE 'SERVICEDESK@%'
|
||
THEN
|
||
-- Bepaal de mailer op basis van e-mail adres zoals in pfrom?
|
||
v_errormsg := 'Fout bepalen mailer';
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE UPPER (prs_perslid_email) LIKE UPPER (pfrom) || '%';
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key, MIN (wpg.alg_locatie_key)
|
||
INTO v_perslid_key, v_kostenplaats_key, v_locatie_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a,
|
||
(SELECT pw.prs_perslid_key, pw.prs_werkplek_key
|
||
FROM prs_perslidwerkplek pw
|
||
WHERE NOT EXISTS
|
||
(SELECT 1
|
||
FROM prs_perslidwerkplek
|
||
WHERE prs_perslid_key = pw.prs_perslid_key
|
||
AND prs_perslidwerkplek_key > pw.prs_perslidwerkplek_key)) pw,
|
||
prs_v_werkplekperslid_gegevens wpg
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND UPPER (p.prs_perslid_email) LIKE UPPER (pfrom) || '%'
|
||
AND p.prs_perslid_key = pw.prs_perslid_key(+)
|
||
AND pw.prs_werkplek_key = wpg.prs_werkplek_key(+)
|
||
GROUP BY p.prs_perslid_key, a.prs_kostenplaats_key;
|
||
ELSE -- Melder kan niet 1-duidig worden bepaald, dus Onbekend en 74=Mercado
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key, 74
|
||
INTO v_perslid_key, v_kostenplaats_key, v_locatie_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_perslid_key = c_onbekend_key;
|
||
END IF;
|
||
|
||
-- 1) Eerst meldingnr 123 gevolgd door spatie uit onderwerp proberen
|
||
-- te bepalen.
|
||
-- 2) Het 1e nummer uit onderwerp wordt gezien als meldingnr en evt.
|
||
-- andere nummers (verder naar rechts) worden genegeerd.
|
||
-- 3) Het mailadres van afzender is gelijk aan die van melder??? => VERVALLEN
|
||
--subject_regexp := '[[:alpha:]]*[M|O][[:digit:]]{1,} ';
|
||
subject_regexp := '[[:digit:]]{1,}';
|
||
v_mldnum := REGEXP_SUBSTR (psubject || ' ', subject_regexp, 1, 1, 'i'); -- 1234, of 12345, of 12, of 1 etc.
|
||
--v_srtdisc := REGEXP_SUBSTR (v_mldnum, '[[:alpha:]]', 1, 1, 'i'); -- M of O
|
||
--v_mld_key_uit_subject := fac.safe_to_number (SUBSTR (v_mldnum, LENGTH (v_srtdisc) + 1)); -- 1234, of 12345, of 12, of 1 etc.
|
||
|
||
-- Bepaal melding op basis van meldingnr uit onderwerp?
|
||
v_errormsg := 'Fout bepalen melding';
|
||
SELECT MAX (mld_melding_key), MAX (prs_perslid_key) -- MAX() om te zorgen dat v_melding_key=NULL als meldingnr niet bestaat!
|
||
INTO v_melding_key, v_melder_key
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = fac.safe_to_number (v_mldnum);
|
||
|
||
IF v_melding_key IS NOT NULL -- AND INSTR (UPPER (pfrom), '@eindhoven.nl') > 0 -- Melding bestaat <20>n EIND-mailer?
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen notitie';
|
||
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
mld_melding_note_omschrijving,
|
||
prs_perslid_key,
|
||
mld_melding_note_flag)
|
||
VALUES (v_melding_key,
|
||
SUBSTR (psubject || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 4000 - (LENGTH (psubject) + 2)), 1, 4000),
|
||
v_perslid_key,
|
||
DECODE (v_perslid_key, -- Notitie open=1 als mailer=melder, anders gesloten=0!
|
||
v_melder_key, 1,
|
||
0));
|
||
|
||
-- Default tracking is even goed genoeg.
|
||
fac.trackaction ('MLDNOT', v_melding_key, v_perslid_key, NULL, '#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid,
|
||
fac_result_naam,
|
||
fac_result_waarde)
|
||
VALUES (psessionid,
|
||
'maillog',
|
||
'Als notitie toegevoegd aan melding ' || TO_CHAR (v_melding_key));
|
||
/*
|
||
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet.
|
||
BEGIN
|
||
IF fac.getsetting ('mld_melding_actiecode') = 1
|
||
THEN
|
||
UPDATE mld_melding
|
||
SET mld_melding_actiecode = 1 + 128 -- Backoffice + Attentie
|
||
WHERE mld_melding_key = v_melding_key;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
DBMS_OUTPUT.put_line ('Niet gelukt om Attentie te zetten.');
|
||
END;
|
||
|
||
-- Bepalen vakgroeptype prefix en behandelaar van melding.
|
||
SELECT sd.ins_srtdiscipline_prefix, m.mld_melding_behandelaar_key, m.mld_melding_behandelaar2_key
|
||
INTO v_mldprefix, v_behandelaar_key, v_behandelaar2_key
|
||
FROM mld_melding m, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd
|
||
WHERE m.mld_melding_key = v_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key;
|
||
|
||
IF v_behandelaar2_key IS NOT NULL -- Melding en actieve behandelaar bekend?
|
||
THEN
|
||
-- Notificatie naar actieve behandelaar
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
v_behandelaar2_key,
|
||
'MLDAB2',
|
||
v_melding_key,
|
||
'Melding ' || v_mldprefix || v_melding_key || ' is gewijzigd.',
|
||
2,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
2,
|
||
NULL);
|
||
ELSIF v_behandelaar_key IS NOT NULL -- Melding en behandelaar bekend?
|
||
THEN
|
||
-- Notificatie naar behandelaar
|
||
fac.putnotificationsrtprio (
|
||
NULL,
|
||
v_behandelaar_key,
|
||
'MLDNOB',
|
||
v_melding_key,
|
||
'Melding ' || v_mldprefix || v_melding_key || ' is gewijzigd.',
|
||
2,
|
||
NULL,
|
||
NULL,
|
||
NULL,
|
||
2,
|
||
NULL);
|
||
END IF;
|
||
*/
|
||
ELSE
|
||
-- Bepaal de afgesproken soortmelding
|
||
|
||
v_stdmelding_key := fac.getsetting ('defaultstdmelding');
|
||
|
||
IF UPPER (psubject) LIKE '%AUTOMATISCH ANTWOORD%'
|
||
THEN
|
||
v_negeer := 1;
|
||
ELSE
|
||
v_negeer := 0;
|
||
END IF;
|
||
|
||
IF UPPER (pfrom) = 'SERVICEDESK_PENO@EINDHOVEN.NL'
|
||
THEN
|
||
v_stdmelding_key := 3141;
|
||
END IF;
|
||
|
||
IF UPPER (pfrom) = 'HRADVIES@EINDHOVEN.NL'
|
||
THEN
|
||
v_stdmelding_key := 3142;
|
||
END IF;
|
||
|
||
IF UPPER (pfrom) = 'INTRODUCTIE@EINDHOVEN.NL'
|
||
THEN
|
||
v_stdmelding_key := 3161;
|
||
END IF;
|
||
|
||
IF UPPER (pfrom) = 'SALARISADMINISTRATIE@EINDHOVEN.NL'
|
||
THEN
|
||
v_stdmelding_key := 3162;
|
||
END IF;
|
||
|
||
IF UPPER (pfrom) = 'FBHRM@EINDHOVEN.NL'
|
||
THEN
|
||
v_stdmelding_key := 3802;
|
||
END IF;
|
||
|
||
IF UPPER (pfrom) = 'SERVICEDESK_ICT@EINDHOVEN.NL'
|
||
THEN
|
||
v_stdmelding_key := 3803;
|
||
END IF;
|
||
|
||
IF UPPER (pfrom) = 'SERVICEDESK_ICT@EINDHOVEN.NL'
|
||
AND UPPER (psubject) LIKE '%NOTIFICATION%' OR UPPER (psubject) LIKE '%TEGENGEHOUDEN%'
|
||
THEN
|
||
v_stdmelding_key := 3804;
|
||
END IF;
|
||
|
||
IF UPPER (pfrom) = 'SERVICEDESK_ICT@EINDHOVEN.NL'
|
||
AND UPPER (psubject) LIKE '%JVS%' OR UPPER (psubject) LIKE '%VE-MONITOR%'
|
||
THEN
|
||
v_stdmelding_key := 3805;
|
||
END IF;
|
||
|
||
IF UPPER (psubject) LIKE '%MIM UIT DIENST%'
|
||
THEN
|
||
v_stdmelding_key := 1463;
|
||
END IF;
|
||
|
||
IF UPPER (psubject) LIKE '%MIM WIJZIGING%'
|
||
THEN
|
||
v_stdmelding_key := 1501;
|
||
END IF;
|
||
|
||
IF UPPER (psubject) LIKE '%MIM EINDDATUM%'
|
||
THEN
|
||
v_stdmelding_key := 1501;
|
||
END IF;
|
||
|
||
IF v_stdmelding_key IS NOT NULL
|
||
THEN
|
||
SELECT mld_stdmelding_default_disc
|
||
INTO
|
||
v_behandelteam
|
||
FROM
|
||
mld_stdmelding
|
||
WHERE mld_stdmelding_key = v_stdmelding_key;
|
||
END IF;
|
||
|
||
-- Body overnemen tot 1e voorkomen van hard afgesproken start DISCLAIMER!
|
||
--v_errormsg := 'Fout strippen disclaimer';
|
||
--IF INSTR (UPPER (pbody), 'DISCLAIMER') > 0 --AND INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') > 0
|
||
--THEN
|
||
--v_body := TRIM (SUBSTR (pbody, 1, INSTR (UPPER (pbody), 'DE INFORMATIE IN DIT BERICHT') - 12));
|
||
-- v_body := TRIM (SUBSTR (pbody, 1, INSTR (UPPER (pbody), 'DISCLAIMER') - 1));
|
||
--ELSE
|
||
-- v_body := pbody;
|
||
--END IF;
|
||
v_body := pbody;
|
||
|
||
-- Suggested extensions:
|
||
-- - Check for MLDUSE-write autorisations
|
||
-- - Parse the subject to find the appropriate stdmelding, if uniquely possible
|
||
-- - Append (as a note?) to an existing melding if #key is found in the subject
|
||
IF v_stdmelding_key IS NOT NULL AND v_negeer = 0
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen melding';
|
||
INSERT INTO mld_melding (mld_melding_module,
|
||
mld_meldbron_key,
|
||
mld_alg_locatie_key,
|
||
mld_alg_onroerendgoed_keys,
|
||
mld_melding_datum,
|
||
mld_melding_omschrijving,
|
||
mld_stdmelding_key,
|
||
mld_melding_t_uitvoertijd,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp,
|
||
mld_melding_behandelaar2_key,
|
||
mld_ins_discipline_key)
|
||
VALUES ('MLD',
|
||
4, -- Email
|
||
COALESCE (v_locatie_key, 74), -- Fallback op Mercado
|
||
NULL, --v_onrgoed_keys,
|
||
SYSDATE,
|
||
SUBSTR (v_body, 1, 4000),
|
||
v_stdmelding_key,
|
||
NULL,
|
||
v_kostenplaats_key,
|
||
v_perslid_key,
|
||
v_perslid_key,
|
||
NULL,
|
||
3, -- Prio normaal
|
||
SUBSTR (psubject, 1, 80),
|
||
NULL,
|
||
v_behandelteam) -- Vullen van standaard behandelteam
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Find the lowest volgnummer of the Folder-flexfield.
|
||
-- PAS OP: 'Alle vakgroeptypen'-kenmerken hier niet beschouwd en dat bijt
|
||
-- dus nooit met kenmerk hieronder tbv. Originele mail!
|
||
v_errormsg := 'Fout toevoegen melding-bijlage';
|
||
-- In het geval van EIND is het altijd hetzelfde bijlage kenmerk die we vullen, wel op vakgroeptype niveau.
|
||
-- Het moet bij alle meldingen altijd mogelijk zijn via mail te reageren incl. bijlage.
|
||
-- Daarom voor alle vakgroeptypen een readonly bijlage kenmerk en orginele mail kenmerk
|
||
|
||
v_folder_kkey := 8061;
|
||
|
||
-- SELECT MIN (k1.mld_kenmerk_key)
|
||
-- INTO v_folder_kkey
|
||
-- FROM mld_stdmelding sm1, ins_tab_discipline td1, mld_kenmerk k1, mld_srtkenmerk sk1
|
||
-- WHERE sm1.mld_stdmelding_key = v_stdmelding_key
|
||
-- AND sm1.mld_ins_discipline_key = td1.ins_discipline_key
|
||
-- AND k1.mld_kenmerk_verwijder IS NULL
|
||
-- AND k1.mld_kenmerk_key != 7941 -- Orginele mail
|
||
-- AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
|
||
-- AND sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
-- AND (k1.mld_kenmerk_niveau = 'A'
|
||
-- OR (k1.mld_stdmelding_key = sm1.mld_stdmelding_key AND k1.mld_kenmerk_niveau = 'S')
|
||
-- OR (k1.mld_stdmelding_key = td1.ins_discipline_key AND k1.mld_kenmerk_niveau = 'D')
|
||
-- OR (k1.mld_stdmelding_key = td1.ins_srtdiscipline_key AND k1.mld_kenmerk_niveau = 'T'))
|
||
-- AND NOT EXISTS
|
||
-- (SELECT 1
|
||
-- FROM mld_stdmelding sm2, ins_tab_discipline td2, mld_kenmerk k2, mld_srtkenmerk sk2
|
||
-- WHERE sm2.mld_stdmelding_key = v_stdmelding_key
|
||
-- AND sm2.mld_ins_discipline_key = td2.ins_discipline_key
|
||
-- AND k2.mld_kenmerk_verwijder IS NULL
|
||
-- AND k2.mld_kenmerk_key != 7941 -- Orginele mail
|
||
-- AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key
|
||
-- AND sk2.mld_srtkenmerk_kenmerktype = 'M'
|
||
-- AND (k2.mld_kenmerk_niveau = 'A'
|
||
-- OR (k2.mld_stdmelding_key = sm2.mld_stdmelding_key AND k2.mld_kenmerk_niveau = 'S')
|
||
-- OR (k2.mld_stdmelding_key = td2.ins_discipline_key AND k2.mld_kenmerk_niveau = 'D')
|
||
-- OR (k2.mld_stdmelding_key = td2.ins_srtdiscipline_key AND k2.mld_kenmerk_niveau = 'T'))
|
||
-- AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer);
|
||
|
||
IF v_folder_kkey IS NOT NULL
|
||
THEN
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'kenmerkpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || v_melding_key || '\' || v_folder_kkey || '\');
|
||
END IF;
|
||
|
||
-- Per 2021.1 mogelijk dat originele mail ook wordt opgeslagen!
|
||
-- PAS OP: Voorkennis dat dit een 'Alle vakgroeptypen'-kenmerk is en
|
||
-- dus nooit bijt met Bijlage(n)-kenmerk hierboven!
|
||
v_errormsg := 'Fout toevoegen originele mail';
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'kenmerkorgmailpath', 'MLD\M' || TO_CHAR (TRUNC (v_melding_key / 1000), 'FM0000') || '___\M' || v_melding_key || '\' || 8041 || '\');
|
||
|
||
-- Handle workflow actions for completion (in case of new melding).
|
||
MLD.mld_nextworkflowstep (v_melding_key, -1); -- -1=Initial
|
||
|
||
ELSE
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'errormsg', 'Ontvanger ongeldig - Neem contact op met uw systeembeheerder ');
|
||
END CASE;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.writelog ('PROCESSEMAIL', 'E', 'EIND_processemail afgebroken!', '[' || pfrom || '] ' || v_errormsg);
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'errormsg', 'Database fout - Neem contact op met uw systeembeheerder ');
|
||
COMMIT;
|
||
END;
|
||
/
|
||
|
||
-- Managementinfo IB (zoals afgestemd met Alex Damen en Rob van Eekelen).
|
||
CREATE OR REPLACE VIEW eind_v_udr_mld_ib
|
||
AS
|
||
SELECT --TO_CHAR (m.mld_melding_datum, 'yyyy-mm') mldnew_mnd,
|
||
TO_CHAR (fac.gettrackingdate ('MLDNEW', m.mld_melding_key), 'yyyy-mm') mldnew_mnd,
|
||
TO_CHAR (fac.gettrackingdate ('MLDAFM', m.mld_melding_key), 'yyyy-mm') mldafm_mnd,
|
||
m.mld_melding_datum,
|
||
DECODE (m.mld_melding_status, 1, 0, 5, 0, 6, 0, 1) open,
|
||
SUBSTR (a.prs_afdeling_omschrijving, 1, INSTR (a.prs_afdeling_omschrijving || '.', '.') - 1) sector,
|
||
sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
sm.mld_stdmelding_omschrijving standaardmelding,
|
||
m.mld_melding_key melding,
|
||
COALESCE (bt.ins_discipline_omschrijving, '<Leeg>') behandelteam,
|
||
COALESCE (ud.fac_usrdata_omschr, '<Leeg>') ipccat,
|
||
--DECODE (m.mld_melding_spoed,
|
||
-- 3, lcl.l ('lcl_mld_urg_normaal'),
|
||
-- 1, lcl.l ('lcl_mld_urg_kritiek'),
|
||
-- 2, lcl.l ('lcl_mld_urg_hoog'),
|
||
-- 4, lcl.l ('lcl_mld_urg_laag')) prio,
|
||
DECODE (m.mld_melding_spoed,
|
||
3, '4',
|
||
1, '1',
|
||
2, '2',
|
||
4, '3') prio,
|
||
DECODE (SIGN (m.mld_melding_einddatum_std - COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)), -1, 0, 1) optijd
|
||
FROM ins_srtdiscipline sd,
|
||
mld_discipline md,
|
||
mld_stdmelding sm,
|
||
mld_melding m,
|
||
--(SELECT km.mld_melding_key, ud.fac_usrdata_omschr
|
||
-- FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
-- WHERE EXISTS
|
||
-- (SELECT 1
|
||
-- FROM mld_kenmerk
|
||
-- WHERE mld_srtkenmerk_key = 601 -- IPC categorisering
|
||
-- AND mld_kenmerk_key = km.mld_kenmerk_key)
|
||
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) km,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
(SELECT * FROM mld_kenmerk WHERE mld_srtkenmerk_key = 601) k, -- IPC categorisering
|
||
fac_usrdata ud, -- Zou voorkomen moeten zijn uit Eigen tabel 441=IPC categorieen
|
||
mld_discipline bt,
|
||
prs_perslid p,
|
||
prs_afdeling a
|
||
WHERE sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND INSTR (md.ins_discipline_omschrijving, 'ICT') > 0
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_meldbron_nr IS NULL -- Niet gemigreerd uit TOPdesk
|
||
AND m.mld_melding_key = km.mld_melding_key(+)
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key(+)
|
||
AND m.mld_ins_discipline_key = bt.ins_discipline_key(+)
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key;
|
||
|
||
CREATE OR REPLACE VIEW EIND_V_UDR_MLD_IB_OPENED
|
||
AS
|
||
SELECT TO_CHAR (fac.gettrackingdate ('MLDNEW', m.mld_melding_key), 'yyyy-mm') maand,
|
||
--fac.gettrackingdate ('MLDNEW', m.mld_melding_key) datum,
|
||
DECODE (m.mld_melding_status, 1, 0, 5, 0, 6, 0, 1) open,
|
||
SUBSTR (a.prs_afdeling_omschrijving, 1, INSTR (a.prs_afdeling_omschrijving || '.', '.') - 1) sector,
|
||
sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
sm.mld_stdmelding_omschrijving standaardmelding,
|
||
m.mld_melding_key melding,
|
||
COALESCE (bt.ins_discipline_omschrijving, '<Leeg>') behandelteam,
|
||
COALESCE (ud.fac_usrdata_omschr, '<Leeg>') ipccat,
|
||
--DECODE (m.mld_melding_spoed,
|
||
-- 3, lcl.l ('lcl_mld_urg_normaal'),
|
||
-- 1, lcl.l ('lcl_mld_urg_kritiek'),
|
||
-- 2, lcl.l ('lcl_mld_urg_hoog'),
|
||
-- 4, lcl.l ('lcl_mld_urg_laag')) prio,
|
||
DECODE (m.mld_melding_spoed,
|
||
3, '4',
|
||
1, '1',
|
||
2, '2',
|
||
4, '3') prio,
|
||
DECODE (SIGN (m.mld_melding_einddatum_std - COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)), -1, 0, 1) optijd
|
||
--DECODE (SIGN (m.mld_melding_einddatum_std - COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)), -1, 'te laat', 'optijd') uitvoering
|
||
FROM ins_srtdiscipline sd,
|
||
mld_discipline md,
|
||
mld_stdmelding sm,
|
||
mld_melding m,
|
||
--(SELECT km.mld_melding_key, ud.fac_usrdata_omschr
|
||
-- FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
-- WHERE EXISTS
|
||
-- (SELECT 1
|
||
-- FROM mld_kenmerk
|
||
-- WHERE mld_srtkenmerk_key = 601 -- IPC categorisering
|
||
-- AND mld_kenmerk_key = km.mld_kenmerk_key)
|
||
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) km,
|
||
--(SELECT *
|
||
-- FROM mld_v_aanwezigkenmerkmelding km
|
||
-- WHERE EXISTS
|
||
-- (SELECT 1
|
||
-- FROM mld_kenmerk
|
||
-- WHERE mld_srtkenmerk_key = 601 -- IPC categorisering
|
||
-- AND mld_kenmerk_key = km.mld_kenmerk_key)) km,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
(SELECT * FROM mld_kenmerk WHERE mld_srtkenmerk_key = 601) k, -- IPC categorisering
|
||
fac_usrdata ud, -- Zou voorkomen moeten zijn uit Eigen tabel 441=IPC categorieen
|
||
mld_discipline bt,
|
||
prs_perslid p,
|
||
prs_afdeling a
|
||
WHERE sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND INSTR (md.ins_discipline_omschrijving, 'ICT') > 0
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_meldbron_nr IS NULL -- Niet gemigreerd uit TOPdesk
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key
|
||
AND m.mld_ins_discipline_key = bt.ins_discipline_key(+)
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND fac.gettrackingdate ('MLDNEW', m.mld_melding_key) > TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
||
UNION ALL
|
||
SELECT TO_CHAR (fac.gettrackingdate ('MLDNEW', m.mld_melding_key), 'yyyy-mm') maand,
|
||
--fac.gettrackingdate ('MLDNEW', m.mld_melding_key) datum,
|
||
DECODE (m.mld_melding_status, 1, 0, 5, 0, 6, 0, 1) open,
|
||
SUBSTR (a.prs_afdeling_omschrijving, 1, INSTR (a.prs_afdeling_omschrijving || '.', '.') - 1) sector,
|
||
sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
sm.mld_stdmelding_omschrijving standaardmelding,
|
||
m.mld_melding_key melding,
|
||
COALESCE (bt.ins_discipline_omschrijving, '<Leeg>') behandelteam,
|
||
'<Leeg>' ipccat,
|
||
--DECODE (m.mld_melding_spoed,
|
||
-- 3, lcl.l ('lcl_mld_urg_normaal'),
|
||
-- 1, lcl.l ('lcl_mld_urg_kritiek'),
|
||
-- 2, lcl.l ('lcl_mld_urg_hoog'),
|
||
-- 4, lcl.l ('lcl_mld_urg_laag')) prio,
|
||
DECODE (m.mld_melding_spoed,
|
||
3, '4',
|
||
1, '1',
|
||
2, '2',
|
||
4, '3') prio,
|
||
DECODE (SIGN (m.mld_melding_einddatum_std - COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)), -1, 0, 1) optijd
|
||
--DECODE (SIGN (m.mld_melding_einddatum_std - COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)), -1, 'te laat', 'optijd') uitvoering
|
||
FROM ins_srtdiscipline sd,
|
||
mld_discipline md,
|
||
mld_stdmelding sm,
|
||
mld_melding m,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
(SELECT * FROM mld_kenmerk WHERE mld_srtkenmerk_key = 601) k, -- IPC categorisering
|
||
mld_discipline bt,
|
||
prs_perslid p,
|
||
prs_afdeling a
|
||
WHERE sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND INSTR (md.ins_discipline_omschrijving, 'ICT') > 0
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_meldbron_nr IS NULL -- Niet gemigreerd uit TOPdesk
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_kenmerkmelding_waarde IS NULL
|
||
AND m.mld_ins_discipline_key = bt.ins_discipline_key(+)
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND fac.gettrackingdate ('MLDNEW', m.mld_melding_key) > TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW EIND_V_UDR_MLD_IB_CLOSED
|
||
AS
|
||
SELECT TO_CHAR (COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key)), 'yyyy-mm') maand,
|
||
--COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key)) datum,
|
||
--DECODE (m.mld_melding_status, 1, 0, 5, 0, 6, 0, 1) open,
|
||
0 open,
|
||
SUBSTR (a.prs_afdeling_omschrijving, 1, INSTR (a.prs_afdeling_omschrijving || '.', '.') - 1) sector,
|
||
sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
sm.mld_stdmelding_omschrijving standaardmelding,
|
||
m.mld_melding_key melding,
|
||
COALESCE (bt.ins_discipline_omschrijving, '<Leeg>') behandelteam,
|
||
COALESCE (ud.fac_usrdata_omschr, '<Leeg>') ipccat,
|
||
--DECODE (m.mld_melding_spoed,
|
||
-- 3, lcl.l ('lcl_mld_urg_normaal'),
|
||
-- 1, lcl.l ('lcl_mld_urg_kritiek'),
|
||
-- 2, lcl.l ('lcl_mld_urg_hoog'),
|
||
-- 4, lcl.l ('lcl_mld_urg_laag')) prio,
|
||
DECODE (m.mld_melding_spoed,
|
||
3, '4',
|
||
1, '1',
|
||
2, '2',
|
||
4, '3') prio,
|
||
DECODE (SIGN (m.mld_melding_einddatum_std - COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)), -1, 0, 1) optijd
|
||
--DECODE (SIGN (m.mld_melding_einddatum_std - COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)), -1, 'te laat', 'optijd') uitvoering
|
||
FROM ins_srtdiscipline sd,
|
||
mld_discipline md,
|
||
mld_stdmelding sm,
|
||
mld_melding m,
|
||
--(SELECT km.mld_melding_key, ud.fac_usrdata_omschr
|
||
-- FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
|
||
-- WHERE EXISTS
|
||
-- (SELECT 1
|
||
-- FROM mld_kenmerk
|
||
-- WHERE mld_srtkenmerk_key = 601 -- IPC categorisering
|
||
-- AND mld_kenmerk_key = km.mld_kenmerk_key)
|
||
-- AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) km,
|
||
--(SELECT *
|
||
-- FROM mld_v_aanwezigkenmerkmelding km
|
||
-- WHERE EXISTS
|
||
-- (SELECT 1
|
||
-- FROM mld_kenmerk
|
||
-- WHERE mld_srtkenmerk_key = 601 -- IPC categorisering
|
||
-- AND mld_kenmerk_key = km.mld_kenmerk_key)) km,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
(SELECT * FROM mld_kenmerk WHERE mld_srtkenmerk_key = 601) k, -- IPC categorisering
|
||
fac_usrdata ud, -- Zou voorkomen moeten zijn uit Eigen tabel 441=IPC categorieen
|
||
mld_discipline bt,
|
||
prs_perslid p,
|
||
prs_afdeling a
|
||
WHERE sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND INSTR (md.ins_discipline_omschrijving, 'ICT') > 0
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_meldbron_nr IS NULL -- Niet gemigreerd uit TOPdesk
|
||
AND m.mld_melding_status IN (1, 5, 6) -- Gesloten
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key
|
||
AND m.mld_ins_discipline_key = bt.ins_discipline_key(+)
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key)) > TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
||
UNION ALL
|
||
SELECT TO_CHAR (COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key)), 'yyyy-mm') maand,
|
||
--COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key)) datum,
|
||
--DECODE (m.mld_melding_status, 1, 0, 5, 0, 6, 0, 1) open,
|
||
0 open,
|
||
SUBSTR (a.prs_afdeling_omschrijving, 1, INSTR (a.prs_afdeling_omschrijving || '.', '.') - 1) sector,
|
||
sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
sm.mld_stdmelding_omschrijving standaardmelding,
|
||
m.mld_melding_key melding,
|
||
COALESCE (bt.ins_discipline_omschrijving, '<Leeg>') behandelteam,
|
||
'<Leeg>' ipccat,
|
||
--DECODE (m.mld_melding_spoed,
|
||
-- 3, lcl.l ('lcl_mld_urg_normaal'),
|
||
-- 1, lcl.l ('lcl_mld_urg_kritiek'),
|
||
-- 2, lcl.l ('lcl_mld_urg_hoog'),
|
||
-- 4, lcl.l ('lcl_mld_urg_laag')) prio,
|
||
DECODE (m.mld_melding_spoed,
|
||
3, '4',
|
||
1, '1',
|
||
2, '2',
|
||
4, '3') prio,
|
||
DECODE (SIGN (m.mld_melding_einddatum_std - COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)), -1, 0, 1) optijd
|
||
--DECODE (SIGN (m.mld_melding_einddatum_std - COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key), SYSDATE)), -1, 'te laat', 'optijd') uitvoering
|
||
FROM ins_srtdiscipline sd,
|
||
mld_discipline md,
|
||
mld_stdmelding sm,
|
||
mld_melding m,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
(SELECT * FROM mld_kenmerk WHERE mld_srtkenmerk_key = 601) k, -- IPC categorisering
|
||
mld_discipline bt,
|
||
prs_perslid p,
|
||
prs_afdeling a
|
||
WHERE sd.ins_srtdiscipline_key = md.ins_srtdiscipline_key
|
||
AND INSTR (md.ins_discipline_omschrijving, 'ICT') > 0
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sm.mld_stdmelding_key = m.mld_stdmelding_key
|
||
AND m.mld_meldbron_nr IS NULL -- Niet gemigreerd uit TOPdesk
|
||
AND m.mld_melding_status IN (1, 5, 6) -- Gesloten
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND km.mld_kenmerkmelding_waarde IS NULL
|
||
AND m.mld_ins_discipline_key = bt.ins_discipline_key(+)
|
||
AND m.prs_perslid_key_voor = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND COALESCE (fac.gettrackingdate ('MLDREJ', m.mld_melding_key), fac.gettrackingdate ('MLDAFM', m.mld_melding_key)) > TRUNC (ADD_MONTHS (SYSDATE, -12), 'mm')
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW eind_v_udr_ins_newupddel
|
||
AS
|
||
SELECT TO_CHAR (t.fac_tracking_datum, 'yyyy-mm') maand,
|
||
--t.fac_tracking_datum datum,
|
||
od.ins_discipline_omschrijving discipline,
|
||
--sg.ins_srtgroep_omschrijving objectgroep,
|
||
--sd.ins_srtdeel_code objectsoort_code,
|
||
--sd.ins_srtdeel_omschrijving objectsoort,
|
||
SUM (DECODE (sn.fac_srtnotificatie_code, 'INSNEW', 1, 0))
|
||
object_new,
|
||
SUM(DECODE (sn.fac_srtnotificatie_code,
|
||
'INSNEW', 0,
|
||
'INSDEL', 0,
|
||
1))
|
||
object_upd,
|
||
SUM (DECODE (sn.fac_srtnotificatie_code, 'INSDEL', 1, 0))
|
||
object_del
|
||
FROM ins_v_aanwezigdiscipline od,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_v_aanwezigsrtdeel sd,
|
||
ins_v_aanwezigdeel d,
|
||
fac_tracking t,
|
||
fac_srtnotificatie sn
|
||
WHERE od.ins_discipline_key = sg.ins_discipline_key
|
||
AND sg.ins_srtgroep_key = sd.ins_srtgroep_key
|
||
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
|
||
AND d.ins_deel_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key
|
||
GROUP BY TO_CHAR (t.fac_tracking_datum, 'yyyy-mm'),
|
||
--t.fac_tracking_datum,
|
||
od.ins_discipline_omschrijving
|
||
--sg.ins_srtgroep_omschrijving,
|
||
--sd.ins_srtdeel_code,
|
||
--sd.ins_srtdeel_omschrijving
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW eind_v_noti_arbobril
|
||
AS
|
||
SELECT
|
||
x.code,
|
||
x.sender,
|
||
x.receiver,
|
||
x.text,
|
||
x.key,
|
||
x.xkey,
|
||
x.xsender,
|
||
x.xemail,
|
||
x.xmobile,
|
||
x.attachments
|
||
FROM
|
||
(SELECT DISTINCT 'CUST01' code,
|
||
NULL sender,
|
||
m.prs_perslid_key receiver,
|
||
'Herinnering aanvraag beeldschermbril' text,
|
||
m.mld_melding_key key,
|
||
NULL xkey,
|
||
NULL xsender,
|
||
NULL xemail,
|
||
NULL xmobile,
|
||
NULL attachments
|
||
FROM mld_melding m
|
||
WHERE m.mld_stdmelding_key = 527
|
||
AND m.mld_melding_status < 5 -- Melding is nog niet afgemeld
|
||
AND TRUNC (SYSDATE) = TRUNC (m.mld_melding_datum + 60) -- Aanvraag is 2 maanden oud
|
||
AND m.mld_melding_datum + 60 BETWEEN (SELECT fac_notificatie_job_nextrun
|
||
- fac_notificatie_job_interval
|
||
/ 24
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER(fac_notificatie_job_view) =
|
||
'EIND_V_NOTI_ARBOBRIL')
|
||
AND (SELECT fac_notificatie_job_nextrun
|
||
FROM fac_notificatie_job
|
||
WHERE UPPER(fac_notificatie_job_view) =
|
||
'EIND_V_NOTI_ARBOBRIL')) x
|
||
WHERE x.receiver IS NOT NULL;
|
||
|
||
------ 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
|