9062 lines
412 KiB
MySQL
9062 lines
412 KiB
MySQL
--
|
||
-- $Id$
|
||
--
|
||
-- Script containing customer specific db-configuration for MNNL.
|
||
DEFINE thisfile = 'MNNL.SQL'
|
||
DEFINE dbuser = '^MNNL'
|
||
|
||
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 ------
|
||
|
||
-- ACTIVE DIRECTORY
|
||
CREATE OR REPLACE PROCEDURE mnnl_import_prs (p_import_key IN NUMBER)
|
||
AS
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
BEGIN
|
||
v_errorhint := 'Generieke import';
|
||
|
||
-- De sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid procedure.
|
||
-- (Smokkelen met de functie; daar zet ik nu de achternaam in en in de post-import wordt dat 'Onbekend'.)
|
||
prs.import_perslid (p_import_key,
|
||
'8;0;0;0;0;0;5;4;0;3;' ||
|
||
'0;0;0;0;0;7;0;6;0;0;' ||
|
||
'3;1;0;0;0;0;0;0;0;0;' ||
|
||
'0;0;0;0;0;0;0;0;0;0;' ||
|
||
'0;0;0;0;0;0',
|
||
--1 2 3 4 5 6 7 8
|
||
'"sAMAccountName";"name";"givenname";"sn";"department";"mail";"telephoneNumber";"L"%'
|
||
);
|
||
|
||
v_errorhint := 'Verrijken import';
|
||
|
||
-- Ontbrekende/afwijkende zaken rechtzetten:
|
||
-- - vul functie met 'Onbekend'
|
||
-- - vul titel/geslacht/personeelsnummer/mobiel/dienstverband met huidige waarde (om wissen te voorkomen)
|
||
UPDATE fac_imp_perslid p
|
||
SET prs_srtperslid_omschrijving = (SELECT prs_srtperslid_omschrijving FROM prs_srtperslid WHERE prs_srtperslid_key = 1),
|
||
(prs_perslid_titel, prs_perslid_geslacht, prs_perslid_nr, prs_perslid_mobiel, prs_perslid_dienstverband) =
|
||
(SELECT MAX(prs_perslid_titel), MAX(prs_perslid_geslacht), MAX(prs_perslid_nr), MAX(prs_perslid_mobiel), MAX(prs_perslid_dienstverband)
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_oslogin = UPPER(p.prs_perslid_oslogin))
|
||
WHERE fac_import_key = p_import_key;
|
||
COMMIT;
|
||
|
||
-- Werkplek toekennen, door locatiecode, gebouwcode, verdiepingvolgnr en ruimtenr in importabel te zetten.
|
||
-- Heeft de persoon al een WP op deze locatie? Dan kiezen we die, met als netto resultaat dat er niets gebeurt.
|
||
-- Anders bepalen we de alfabetisch eerste ruimte op locatie en kiezen we die.
|
||
UPDATE fac_imp_perslid ip
|
||
SET (alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_ruimte_nr) =
|
||
(SELECT rg.alg_locatie_code, rg.alg_gebouw_upper, rg.alg_verdieping_volgnr, rg.alg_ruimte_nr
|
||
FROM alg_v_ruimte_gegevens rg
|
||
WHERE alg_ruimte_aanduiding = COALESCE(
|
||
-- Eventuele bestaande werkplek op locatie.
|
||
(SELECT MAX(rg.alg_ruimte_aanduiding)
|
||
FROM prs_perslid p, prs_perslidwerkplek pw, prs_werkplek w, alg_v_ruimte_gegevens rg
|
||
WHERE p.prs_perslid_key = pw.prs_perslid_key
|
||
AND pw.prs_werkplek_key = w.prs_werkplek_key
|
||
AND w.prs_alg_ruimte_key = rg.alg_ruimte_key
|
||
AND rg.alg_locatie_omschrijving = ip.alg_locatie_code
|
||
AND p.prs_perslid_oslogin = UPPER(ip.prs_perslid_oslogin)),
|
||
-- Standaardruimte volgens locatieomschrijving in import (alfabetisch eerste).
|
||
(SELECT MIN(alg_ruimte_aanduiding)
|
||
FROM alg_v_ruimte_gegevens
|
||
WHERE alg_locatie_omschrijving = ip.alg_locatie_code
|
||
AND UPPER(alg_ruimte_nr) = '_WP')))
|
||
WHERE fac_import_key = p_import_key;
|
||
COMMIT;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint);
|
||
END mnnl_import_prs;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE mnnl_update_prs (p_import_key IN NUMBER)
|
||
IS
|
||
-- Verwijderen personen *binnen MN* die niet meer in importbestand voorkomen.
|
||
CURSOR c_del
|
||
IS
|
||
SELECT p.prs_perslid_key
|
||
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
|
||
WHERE (p.prs_perslid_oslogin IS NULL OR p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\') -- ' tbv. opmaak
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_bedrijf_key = 5 -- MN
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_perslid
|
||
WHERE UPPER (prs_perslid_oslogin) = UPPER (p.prs_perslid_oslogin))
|
||
ORDER BY 1;
|
||
|
||
-- Afnemen _Default-rol afh. van configuratie in Eigen tabel met key=721!
|
||
CURSOR c_no_default
|
||
IS
|
||
SELECT '[' || p.prs_perslid_login || '] ' aanduiding, p.prs_perslid_key
|
||
FROM prs_v_aanwezigperslid p, fac_v_aanwezigusrdata ud
|
||
WHERE ud.fac_usrtab_key = 721 -- PRS-imp. vs. FE
|
||
AND ud.fac_usrdata_omschr LIKE 'Login%' -- Op login _Default afnemen!
|
||
AND p.prs_perslid_oslogin LIKE REPLACE (ud.fac_usrdata_code, '_', '\_') || '%' ESCAPE '\' -- ' tbv. opmaak
|
||
AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\' -- ' tbv. opmaak
|
||
UNION ALL
|
||
SELECT '[' || p.prs_perslid_login || '] ' aanduiding, p.prs_perslid_key
|
||
FROM prs_v_aanwezigperslid p, fac_v_aanwezigusrdata ud
|
||
WHERE ud.fac_usrtab_key = 721 -- PRS-imp. vs. FE
|
||
AND ud.fac_usrdata_omschr LIKE 'Afdeling%' -- Op afdeling _Default afnemen!
|
||
AND TO_CHAR (p.prs_afdeling_key) = ud.fac_usrdata_code
|
||
AND p.prs_perslid_oslogin NOT LIKE '\_%' ESCAPE '\' -- ' tbv. opmaak
|
||
ORDER BY 2;
|
||
|
||
v_errorhint VARCHAR2 (1000);
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
BEGIN
|
||
-- Generic update
|
||
SELECT COUNT(*) INTO v_count FROM fac_imp_perslid;
|
||
|
||
IF v_count < 300
|
||
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;
|
||
|
||
-- Verwijderen personen *binnen MN* die niet meer in importbestand voorkomen.
|
||
FOR rec IN c_del
|
||
LOOP
|
||
BEGIN
|
||
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
|
||
END;
|
||
END LOOP;
|
||
|
||
-- p_sleutelkolom Bevat het veld die als sleutel bij de import dient
|
||
-- LOGIN - logincode
|
||
-- p_alg_type Werkplekken binnen dit niveau verwijderen
|
||
-- NULL - geen werkplekken verwijderen
|
||
-- A - altijd vaste werkplek verwijderen
|
||
-- R,V,G,L,D - werkplek(en) op dit niveau verwijderen
|
||
prs.update_perslid (p_import_key, 'LOGIN', NULL);
|
||
|
||
-- Afnemen _Default-rol afh. van configuratie in Eigen tabel met key=721!
|
||
FOR rec IN c_no_default
|
||
LOOP
|
||
BEGIN
|
||
v_errorhint := 'Fout afnemen _Default';
|
||
|
||
DELETE FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 1 -- _Default
|
||
AND prs_perslid_key = rec.prs_perslid_key;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', rec.aanduiding || v_errormsg, v_errorhint);
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Afnemen 2101=_Default_VB van medewerkers niet onder VB (op niveau 1)!
|
||
v_errorhint := 'Fout afnemen _Default_VB';
|
||
|
||
DELETE FROM fac_gebruikersgroep gg
|
||
WHERE gg.fac_groep_key = 2101 -- _Default_VB
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
|
||
WHERE p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = 421 -- Afdeling-1 met code=VB!
|
||
AND p.prs_perslid_key = gg.prs_perslid_key);
|
||
COMMIT;
|
||
|
||
-- Toekennen 2101=_Default_VB aan medewerkers onder VB (op niveau 1)!
|
||
v_errorhint := 'Fout toekennen _Default_VB';
|
||
|
||
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
|
||
SELECT 2101, p.prs_perslid_key -- _Default_VB
|
||
FROM prs_v_aanwezigperslid p, prs_v_afdeling_boom ab
|
||
WHERE p.prs_perslid_oslogin IS NOT NULL
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = 421 -- Afdeling-1 met code=VB!
|
||
AND NOT EXISTS -- Niet al in _Default_VB!
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key = 2101 -- _Default_VB
|
||
AND prs_perslid_key = p.prs_perslid_key);
|
||
COMMIT;
|
||
END mnnl_update_prs;
|
||
/
|
||
|
||
-- KOPPELING SENTIDO
|
||
CREATE OR REPLACE VIEW mnnl_v_api_sentido
|
||
AS
|
||
SELECT TO_CHAR(rr.res_rsv_ruimte_van, 'YYYYMMDD-HH24MI')||TO_CHAR(rr.res_rsv_ruimte_tot, ',YYYYMMDD-HH24MI') srt,
|
||
rr.res_reservering_key||'/'||rr.res_rsv_ruimte_volgnr nummer,
|
||
TO_CHAR(rr.res_rsv_ruimte_van, 'YYYY-MM-DD HH24:MI:SS') van,
|
||
TO_CHAR(rr.res_rsv_ruimte_tot, 'YYYY-MM-DD HH24:MI:SS') tot,
|
||
rr.res_rsv_ruimte_omschrijving omschrijving,
|
||
pf.prs_perslid_naam_full host,
|
||
TRIM(r.res_ruimte_nr) ruimte,
|
||
r.res_ruimte_key ruimte_key
|
||
FROM res_rsv_ruimte rr,
|
||
res_ruimte_opstelling ro,
|
||
res_ruimte r,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key
|
||
AND r.res_ruimte_key = ro.res_ruimte_key
|
||
AND pf.prs_perslid_key = rr.res_rsv_ruimte_host_key
|
||
AND rr.res_rsv_ruimte_verwijder IS NULL
|
||
AND rr.res_status_fo_key NOT IN (3, 4)
|
||
AND COALESCE(rr.res_rsv_ruimte_bezoekers_shown, rr.res_rsv_ruimte_noshow) IS NULL
|
||
AND TRUNC(rr.res_rsv_ruimte_van) BETWEEN TRUNC(SYSDATE)
|
||
AND TRUNC(SYSDATE+3);
|
||
|
||
-- MNNL#35290: Rapportje met res_ruimte-gegevens, inclusief volledige URL naar de room booking pagina,
|
||
-- voor door Sentido te genereren QR-code
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_ruimtes_sentido
|
||
AS
|
||
SELECT res_ruimte_nr ruimte_nr,
|
||
res_ruimte_key ruimte_key,
|
||
'https://mnnl.facilitor.nl/?u=MYsemfcDEbLOXShZ&'||'res_ruimte_key='||res_ruimte_key ruimte_url
|
||
FROM res_v_aanwezigruimte
|
||
ORDER BY res_ruimte_nr;
|
||
|
||
|
||
--- MNNL#32852
|
||
--- Rapport tbv cateraar Radarport. Alleen ruimten uit catalogus Radarport BG (key 621)
|
||
--- En catering in Gebouw Radarport behalve catalogi Servies R9 aanvullen (key 321 ) en Koffie en thee (key 43)
|
||
CREATE OR REPLACE VIEW MNNL_V_RAP_CAT_RADAR
|
||
(
|
||
DATUM,
|
||
VAN,
|
||
TOT,
|
||
RESNR,
|
||
FCLT_H_RES_KEY,
|
||
RUIMTE,
|
||
FCLT_F_ACTIVITEIT,
|
||
OMSCHRIJVING,
|
||
GASTHEER_VROUW,
|
||
TELEFOON,
|
||
AANTAL_PERSONEN,
|
||
VOORZIENINGEN
|
||
)
|
||
AS
|
||
SELECT RRR.RES_RSV_RUIMTE_VAN,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI') Van,
|
||
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') Tot,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr Resnr,
|
||
rrr.res_rsv_ruimte_key,
|
||
r2a.ruimte_nr,
|
||
ra.res_activiteit_omschrijving Activiteit,
|
||
rrr.res_rsv_ruimte_omschrijving Omschrijving,
|
||
pf.prs_perslid_naam_full Gastheer_vrouw,
|
||
p.prs_perslid_telefoonnr,
|
||
rrr.res_rsv_ruimte_bezoekers pers,
|
||
voorzieningen
|
||
FROM res_rsv_ruimte rrr,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r,
|
||
res_activiteit ra,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_perslid p,
|
||
( SELECT res_rsv_ruimte_key,
|
||
LISTAGG (voorziening, CHR (13) || CHR (10))
|
||
WITHIN GROUP (ORDER BY voorziening)
|
||
AS voorzieningen
|
||
FROM (SELECT res_rsv_ruimte_key,
|
||
res_deel_omschrijving voorziening
|
||
FROM res_deel rd, res_rsv_deel rrd
|
||
WHERE RES_RSV_DEEL_verwijder IS NULL
|
||
AND rd.res_deel_key = rrd.res_deel_key
|
||
AND res_rsv_ruimte_key IS NOT NULL
|
||
AND res_discipline_key != 81
|
||
UNION ALL
|
||
SELECT res_rsv_ruimte_key,
|
||
TO_CHAR (rra.res_rsv_artikel_aantal)
|
||
|| ' * '
|
||
|| res_artikel_omschrijving
|
||
voorziening
|
||
FROM res_artikel ra, res_rsv_artikel rra
|
||
WHERE RES_RSV_artikel_verwijder IS NULL
|
||
AND ra.res_artikel_key = rra.res_artikel_key)
|
||
GROUP BY res_rsv_ruimte_key) voorz,
|
||
( SELECT res_ruimte_opstel_key,
|
||
MAX (o.res_opstelling_omschrijving) opstelling,
|
||
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
||
MAX (rr.res_ruimte_nr) ruimte_nr
|
||
FROM res_ruimte_opstelling ro,
|
||
res_opstelling o,
|
||
res_ruimte rr,
|
||
res_alg_ruimte ra
|
||
WHERE ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND ro.res_opstelling_key = o.res_opstelling_key
|
||
AND rr.res_ruimte_key = ra.res_ruimte_key
|
||
AND rr.res_discipline_key = 621
|
||
GROUP BY res_ruimte_opstel_key) r2a
|
||
WHERE rrr.res_ruimte_opstel_key = r2a.res_ruimte_opstel_key
|
||
AND rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE - 14)
|
||
AND TRUNC (SYSDATE + 366)
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND ra.res_activiteit_key = rrr.res_activiteit_key
|
||
AND pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
||
AND voorz.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_Verwijder IS NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL
|
||
SELECT RRR.RES_RSV_RUIMTE_VAN,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'HH24:MI') Van,
|
||
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') Tot,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr Resnr,
|
||
rrr.res_rsv_ruimte_key,
|
||
r2a.ruimte_nr,
|
||
ra.res_activiteit_omschrijving Activiteit,
|
||
rrr.res_rsv_ruimte_omschrijving Omschrijving,
|
||
pf.prs_perslid_naam_full Gastheer_vrouw,
|
||
p.prs_perslid_telefoonnr,
|
||
rrr.res_rsv_ruimte_bezoekers pers,
|
||
voorzieningen
|
||
FROM res_rsv_ruimte rrr,
|
||
alg_gebouw g,
|
||
alg_verdieping v,
|
||
alg_ruimte r,
|
||
res_activiteit ra,
|
||
prs_v_perslid_fullnames pf,
|
||
prs_perslid p,
|
||
( SELECT res_rsv_ruimte_key,
|
||
LISTAGG (voorziening, CHR (13) || CHR (10))
|
||
WITHIN GROUP (ORDER BY voorziening)
|
||
AS voorzieningen
|
||
FROM (SELECT res_rsv_ruimte_key,
|
||
TO_CHAR (rra.res_rsv_artikel_aantal)
|
||
|| ' * '
|
||
|| res_artikel_omschrijving
|
||
voorziening
|
||
FROM res_artikel ra, res_rsv_artikel rra
|
||
WHERE RES_RSV_artikel_verwijder IS NULL
|
||
AND ra.res_artikel_key = rra.res_artikel_key
|
||
AND ra.res_discipline_key NOT IN (321, 43))
|
||
GROUP BY res_rsv_ruimte_key) voorz,
|
||
( SELECT res_ruimte_opstel_key,
|
||
MAX (o.res_opstelling_omschrijving) opstelling,
|
||
MAX (ra.alg_ruimte_key) alg_ruimte_key,
|
||
MAX (rr.res_ruimte_nr) ruimte_nr
|
||
FROM res_ruimte_opstelling ro,
|
||
res_opstelling o,
|
||
res_ruimte rr,
|
||
res_alg_ruimte ra
|
||
WHERE ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND ro.res_opstelling_key = o.res_opstelling_key
|
||
AND rr.res_ruimte_key = ra.res_ruimte_key
|
||
AND rr.res_discipline_key != 621
|
||
GROUP BY res_ruimte_opstel_key) r2a
|
||
WHERE rrr.res_ruimte_opstel_key = r2a.res_ruimte_opstel_key
|
||
AND rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE - 14)
|
||
AND TRUNC (SYSDATE + 366)
|
||
AND r.alg_ruimte_key = r2a.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_gebouw_key = 1
|
||
AND ra.res_activiteit_key = rrr.res_activiteit_key
|
||
AND pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
||
AND voorz.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_Verwijder IS NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
UNION ALL
|
||
SELECT RRR.RES_RSV_RUIMTE_VAN,
|
||
TO_CHAR (rra.res_rsv_artikel_levering, 'HH24:MI') Van,
|
||
TO_CHAR (rrr.res_rsv_ruimte_tot, 'HH24:MI') Tot,
|
||
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr Resnr,
|
||
rrr.res_rsv_ruimte_key,
|
||
alg_ruimte_nr,
|
||
ra.res_activiteit_omschrijving Activiteit,
|
||
rrr.res_rsv_ruimte_omschrijving Omschrijving,
|
||
pf.prs_perslid_naam_full Gastheer_vrouw,
|
||
p.prs_perslid_telefoonnr,
|
||
rrr.res_rsv_ruimte_bezoekers pers,
|
||
TO_CHAR (rra.res_rsv_artikel_aantal)
|
||
|| ' * '
|
||
|| res_artikel_omschrijving
|
||
voorziening
|
||
FROM res_artikel ra,
|
||
res_rsv_artikel rra,
|
||
res_rsv_ruimte rrr,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
prs_v_perslid_fullnames pf,
|
||
res_activiteit ra,
|
||
prs_perslid p
|
||
WHERE RES_RSV_artikel_verwijder IS NULL
|
||
AND ra.res_artikel_key = rra.res_artikel_key
|
||
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
|
||
AND rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE - 14)
|
||
AND TRUNC (SYSDATE + 366)
|
||
AND rrr.res_rsv_ruimte_verwijder IS NULL
|
||
AND res_ruimte_opstel_key IS NULL
|
||
AND rrr.alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = 1
|
||
AND pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key
|
||
AND ra.res_activiteit_key = rrr.res_activiteit_key
|
||
AND ra.res_discipline_key NOT IN (321, 43)
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- MNNL#40507: Onderstaande views zijn voor de inrichting van de Realtime Monitor
|
||
|
||
CREATE OR REPLACE VIEW MNNL_V_STAAFDIAGRAM_SLA
|
||
(
|
||
FCLT_XAS_,
|
||
FCLT_YAS_,
|
||
FCLT_YAS2_,
|
||
FCLT_YAS3_,
|
||
FCLT_YAS4_,
|
||
FCLT_SORT
|
||
)
|
||
AS
|
||
SELECT "TO_CHAR(DAG,'DD-MM-YYYY')",
|
||
"'Voorraad ITL'",
|
||
"'Binnen SLA ITL'",
|
||
"'Voorraad ONB'",
|
||
"'Binnen SLA ONB'",
|
||
dag
|
||
FROM (SELECT TO_CHAR (dag, 'DD-MM-YYYY'),
|
||
mld_type mld_type,
|
||
mld_melding_key,
|
||
dag
|
||
FROM (SELECT m.mld_melding_key,
|
||
mt.mld_type,
|
||
mld_melding_datum,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key IN (38, 44)
|
||
AND fac_tracking_refkey = m.mld_melding_key)
|
||
datum_afgemeld,
|
||
sla_eind
|
||
FROM mld_melding m,
|
||
(SELECT mld_melding_key,
|
||
'Binnen SLA ONB' mld_type,
|
||
mld.geteinddatum (mld_melding_key)
|
||
+ COALESCE (
|
||
m.mld_melding_t_respijt.tijdsduur,
|
||
0)
|
||
sla_eind
|
||
FROM mld_melding m, mld_stdmelding std
|
||
WHERE m.mld_stdmelding_key =
|
||
std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key IN
|
||
('986',
|
||
'1002',
|
||
'1008',
|
||
'1018',
|
||
'1026',
|
||
'1028',
|
||
'1030',
|
||
'1040',
|
||
'1062',
|
||
'1063',
|
||
'1081',
|
||
'1032',
|
||
'984')
|
||
UNION ALL
|
||
SELECT mld_melding_key,
|
||
'Binnen SLA ITL' mld_type,
|
||
mld.geteinddatum (mld_melding_key)
|
||
+ COALESCE (
|
||
m.mld_melding_t_respijt.tijdsduur,
|
||
0)
|
||
sla_eind
|
||
FROM mld_melding m, mld_stdmelding std
|
||
WHERE m.mld_stdmelding_key =
|
||
std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key IN
|
||
('982',
|
||
'996',
|
||
'998',
|
||
'1000',
|
||
'1016',
|
||
'1024',
|
||
'1038',
|
||
'1046',
|
||
'1061')) mt
|
||
WHERE m.mld_melding_key = mt.mld_melding_key) m,
|
||
( SELECT TRUNC (SYSDATE) - (ROWNUM - 1) dag
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 10) v
|
||
WHERE (TRUNC (datum_afgemeld) > dag OR datum_afgemeld IS NULL)
|
||
AND TO_CHAR (dag, 'D') NOT IN ('1', '7')
|
||
AND TRUNC (mld_melding_datum) <= dag
|
||
AND sla_eind >= dag
|
||
AND sla_eind >= mld_melding_datum
|
||
UNION ALL
|
||
SELECT TO_CHAR (dag, 'DD-MM-YYYY'),
|
||
mld_type,
|
||
mld_melding_key,
|
||
dag
|
||
FROM (SELECT m.mld_melding_key,
|
||
mt.mld_type,
|
||
mld_melding_datum,
|
||
(SELECT MAX (fac_tracking_datum)
|
||
FROM fac_tracking
|
||
WHERE fac_srtnotificatie_key IN (38, 44)
|
||
AND fac_tracking_refkey = m.mld_melding_key)
|
||
datum_afgemeld
|
||
FROM mld_melding m,
|
||
(SELECT mld_melding_key, 'Voorraad ITL' mld_type
|
||
FROM mld_melding m, mld_stdmelding std
|
||
WHERE m.mld_stdmelding_key =
|
||
std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key IN
|
||
('982',
|
||
'996',
|
||
'998',
|
||
'1000',
|
||
'1016',
|
||
'1024',
|
||
'1038',
|
||
'1046',
|
||
'1061')
|
||
UNION ALL
|
||
SELECT mld_melding_key, 'Voorraad ONB' mld_type
|
||
FROM mld_melding m, mld_stdmelding std
|
||
WHERE m.mld_stdmelding_key =
|
||
std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key IN
|
||
('986',
|
||
'1002',
|
||
'1008',
|
||
'1018',
|
||
'1026',
|
||
'1028',
|
||
'1030',
|
||
'1040',
|
||
'1062',
|
||
'1063',
|
||
'1081',
|
||
'1032',
|
||
'984')) mt
|
||
WHERE m.mld_melding_key = mt.mld_melding_key) m,
|
||
( SELECT TRUNC (SYSDATE) - (ROWNUM - 1) dag
|
||
FROM DUAL
|
||
CONNECT BY LEVEL <= 10) v
|
||
WHERE (TRUNC (datum_afgemeld) > dag OR datum_afgemeld IS NULL)
|
||
AND TO_CHAR (dag, 'D') NOT IN ('1', '7')
|
||
AND TRUNC (mld_melding_datum) <= dag) PIVOT (COUNT(mld_melding_key)
|
||
FOR mld_type
|
||
IN ('Voorraad ITL',
|
||
'Binnen SLA ITL',
|
||
'Voorraad ONB',
|
||
'Binnen SLA ONB'));
|
||
|
||
CREATE OR REPLACE VIEW MNNL_V_INCIDENTEN_BINNEN_SLA
|
||
(
|
||
FCLT_XAS_WEEKNUMMER,
|
||
FCLT_YAS_PERCENTAGE
|
||
)
|
||
AS
|
||
SELECT sub.weeknummer weeknr,
|
||
TRUNC (
|
||
SUM (DECODE (sub.mtijd, 'ja', 1, 0)) / COUNT (sub.mldkey) * 100)
|
||
Percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE WHEN
|
||
DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd,
|
||
TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IW-IY') weeknummer
|
||
FROM mld_stdmelding mst,
|
||
mld_melding m,
|
||
mld_v_ins_discipline mv,
|
||
ins_srtdiscipline isr
|
||
WHERE mst.mld_ins_discipline_key = mv.ins_discipline_key
|
||
AND isr.ins_srtdiscipline_key = mv.ins_srtdiscipline_key
|
||
AND COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)) > SYSDATE - 70
|
||
AND isr.ins_srtdiscipline_key = 22 -- Incident
|
||
AND m.mld_stdmelding_key = mst.mld_stdmelding_key
|
||
AND m.mld_melding_status = 5) sub -- status afgemeld
|
||
GROUP BY sub.weeknummer
|
||
ORDER BY weeknr;
|
||
|
||
CREATE OR REPLACE VIEW MNNL_V_INCIDENTEN_TABLE
|
||
(
|
||
GROEP,
|
||
NIEUW,
|
||
OPEN,
|
||
GESLOTEN,
|
||
SLA_PERCENTAGE
|
||
)
|
||
AS
|
||
SELECT 'Werkplek en Servicedesk' Naam,
|
||
wsnew.nieuw,
|
||
wsopen.open,
|
||
wsges.totaal,
|
||
wsges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1061', '1016', '1046')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
wsnew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1061', '1016', '1046')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) wsopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1061', '1016', '1046')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) wsges
|
||
UNION
|
||
SELECT 'Wintel en Netwerk' Naam,
|
||
wnnew.nieuw,
|
||
wnopen.open,
|
||
wnges.totaal,
|
||
wnges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1024', '1000', '1038', '982')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
wnnew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1024', '1000', '1038', '982')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) wnopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1024', '1000', '1038', '982')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) wnges
|
||
UNION
|
||
SELECT 'Oracle Platform' Naam,
|
||
opnew.nieuw,
|
||
opopen.open,
|
||
opges.totaal,
|
||
opges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('996', '998')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
opnew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('996', '998')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) opopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('996', '998')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) opges;
|
||
|
||
CREATE OR REPLACE VIEW MNNL_V_MDT_INCIDENTEN_TABLE
|
||
(
|
||
GROEP,
|
||
NIEUW,
|
||
OPEN,
|
||
GESLOTEN,
|
||
SLA_PERCENTAGE
|
||
)
|
||
AS
|
||
SELECT 'MDTs Basisadministratie' Naam,
|
||
mbanew.nieuw,
|
||
mbaopen.open,
|
||
mbages.totaal,
|
||
mbages.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1030')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
mbanew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1030')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) mbaopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1030')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) mbages
|
||
UNION
|
||
SELECT 'MDTs Pensioenadministratie' Naam,
|
||
mpenew.nieuw,
|
||
mpeopen.open,
|
||
mpeges.totaal,
|
||
mpeges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1008', '1002')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
mpenew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1008', '1002')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) mpeopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1008', '1002')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) mpeges
|
||
UNION
|
||
SELECT 'MDTs Klantcontact en Portalen' Naam,
|
||
mkpnew.nieuw,
|
||
mkpopen.open,
|
||
mkpges.totaal,
|
||
mkpges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1081', '1040')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
mkpnew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1081', '1040')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) mkpopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1081', '1040')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) mkpges
|
||
UNION
|
||
SELECT 'MDTs Verzekeringen' Naam,
|
||
mvznew.nieuw,
|
||
mvzopen.open,
|
||
mvzges.totaal,
|
||
mvzges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1018')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
mvznew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1018')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) mvzopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1018')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) mvzges
|
||
UNION
|
||
SELECT 'MDTs Procesbesturing en integratie' Naam,
|
||
mpinew.nieuw,
|
||
mpiopen.open,
|
||
mpiges.totaal,
|
||
mpiges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1028')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
mpinew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1028')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) mpiopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1028')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) mpiges
|
||
UNION
|
||
SELECT 'MDTs Ontwikkelstraat' Naam,
|
||
monnew.nieuw,
|
||
monopen.open,
|
||
monges.totaal,
|
||
monges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1063')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
monnew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1063')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) monopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1063')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) monges
|
||
UNION
|
||
SELECT 'MDTs Finance, Directie, Staven en IV' Naam,
|
||
mfdnew.nieuw,
|
||
mfdopen.open,
|
||
mfdges.totaal,
|
||
mfdges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1026', '986')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
mfdnew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1026', '986')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) mfdopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1026', '986')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) mfdges
|
||
UNION
|
||
SELECT 'MDTs Data en Reporting' Naam,
|
||
mdrnew.nieuw,
|
||
mdropen.open,
|
||
mdrges.totaal,
|
||
mdrges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1062')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
mdrnew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1062')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) mdropen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1062')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) mdrges
|
||
UNION
|
||
SELECT 'Vermogensbeheer Informatie Management' Naam,
|
||
vimnew.nieuw,
|
||
vimopen.open,
|
||
vimges.totaal,
|
||
vimges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1032')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
vimnew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1032')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) vimopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('1032')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) vimges
|
||
UNION
|
||
SELECT 'Document Services' Naam,
|
||
dosnew.nieuw,
|
||
dosopen.open,
|
||
dosges.totaal,
|
||
dosges.percentage
|
||
FROM (SELECT COUNT (m.mld_melding_key) nieuw
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('984')
|
||
AND m.mld_melding_status NOT IN '5'
|
||
AND TO_CHAR (m.mld_melding_datum, 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
dosnew,
|
||
(SELECT COUNT (m.mld_melding_key) open
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('984')
|
||
AND m.mld_melding_status NOT IN ('1', '5', '6')) dosopen,
|
||
(SELECT COUNT (sub.mldkey) totaal,
|
||
TRUNC( SUM (DECODE (sub.mtijd, 'ja', 1, 0))
|
||
/ COUNT (sub.mldkey)
|
||
* 100)
|
||
percentage
|
||
FROM (SELECT m.mld_melding_key mldkey,
|
||
CASE
|
||
WHEN DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'D',
|
||
mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'D', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0)
|
||
+ DECODE (
|
||
mld.getactualuitvoer (m.mld_melding_key).eenheid,
|
||
'U',
|
||
( (mld.geteinddatum (mld_melding_key)
|
||
- COALESCE (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), SYSDATE))
|
||
* 24)
|
||
+ COALESCE (DECODE (m.mld_melding_t_respijt.eenheid,
|
||
'U', m.mld_melding_t_respijt.tijdsduur,
|
||
NULL), 0),
|
||
0) >= 0
|
||
THEN
|
||
lcl.l ('lcl_yes')
|
||
ELSE
|
||
lcl.l ('lcl_no')
|
||
END mtijd
|
||
FROM mld_v_ins_discipline md,
|
||
mld_melding m,
|
||
mld_stdmelding ms
|
||
WHERE md.ins_discipline_key = ms.mld_ins_discipline_key
|
||
AND m.mld_stdmelding_key = ms.mld_stdmelding_key
|
||
AND md.ins_discipline_key IN ('984')
|
||
AND m.mld_melding_status = 5
|
||
AND TO_CHAR (COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5),
|
||
mld.getmeldingstatusdate (m.mld_melding_key, 1)), 'IYYY-IW') BETWEEN TO_CHAR (
|
||
SYSDATE
|
||
- 7,
|
||
'IYYY-IW')
|
||
AND TO_CHAR (
|
||
SYSDATE,
|
||
'IYYY-IW'))
|
||
sub) dosges;
|
||
|
||
-- MNNL#40849: Thema voor graphics / reserveren flexplekken
|
||
CREATE OR REPLACE VIEW mnnl_v_thema_wp_sensor
|
||
(
|
||
ins_deel_key,
|
||
alg_ruimte_key,
|
||
waarde
|
||
)
|
||
AS
|
||
SELECT d.ins_deel_key,
|
||
d.ins_alg_ruimte_key,
|
||
DECODE (rrd.res_rsv_deel_key, NULL, '01', '02')
|
||
FROM ins_deel d,
|
||
res_deel rd,
|
||
(SELECT res_rsv_deel_key, res_deel_key
|
||
FROM res_v_aanwezigrsv_deel
|
||
WHERE SYSDATE BETWEEN res_rsv_deel_van AND res_rsv_deel_tot) rrd
|
||
WHERE d.ins_srtdeel_key = 281
|
||
AND d.ins_deel_key = rd.res_ins_deel_key(+)
|
||
AND rd.res_deel_key = rrd.res_deel_key(+);
|
||
|
||
|
||
-- MNNL#40905: CMDB-import (Applicatie/Server/Database)!
|
||
-- MNNL#41252: CMDB-import nu incl. onderdelen (parent-child)!
|
||
CREATE OR REPLACE PROCEDURE mnnl_import_cmdb (p_import_key IN NUMBER)
|
||
IS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (500);
|
||
header_is_valid NUMBER := 0;
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_import NUMBER (10) := 0;
|
||
v_ongeldig NUMBER (1);
|
||
-- De importvelden:
|
||
v_ins_discipline_omschrijving VARCHAR2 (255); -- C30
|
||
v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_srtdeel_code VARCHAR2 (255); -- C10
|
||
v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100
|
||
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_deel_opmerking VARCHAR2 (2000); -- C2000
|
||
v_prs_afdeling_naam VARCHAR2 (255); -- C15
|
||
v_ins_parent_omschrijving VARCHAR2 (255); -- C60
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
DELETE FROM fac_imp_ins;
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_opmerking);
|
||
fac.imp_getfield (v_newline, c_delim, v_prs_afdeling_naam);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_parent_omschrijving);
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_ins_discipline_omschrijving
|
||
|| '|'
|
||
|| v_ins_srtgroep_omschrijving
|
||
|| '|'
|
||
|| v_ins_srtdeel_code
|
||
|| '|'
|
||
|| v_ins_srtdeel_omschrijving
|
||
|| '|'
|
||
|| v_ins_deel_omschrijving
|
||
|| '|'
|
||
|| v_prs_afdeling_naam
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINEOMSCHRIJVING'
|
||
AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEPSOORTOMSCHRIJVING'
|
||
AND UPPER (v_ins_srtdeel_code) = 'OBJECTSOORTCODE'
|
||
AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORTOMSCHRIJVING'
|
||
AND UPPER (v_ins_deel_omschrijving) = 'OBJECTOMSCHRIJVING'
|
||
AND UPPER (v_ins_deel_opmerking) = 'OBJECTOPMERKING'
|
||
AND UPPER (v_prs_afdeling_naam) = 'AFDELING'
|
||
--AND UPPER (v_ins_parent_omschrijving) = 'PARENT'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Controleer alle veldwaarden
|
||
v_errormsg := 'Discipline ongeldig; ongedefinieerd of te lang';
|
||
v_ins_discipline_omschrijving := TRIM (v_ins_discipline_omschrijving);
|
||
|
||
IF v_ins_discipline_omschrijving IS NULL OR LENGTH (v_ins_discipline_omschrijving) > 30
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Groep ongeldig; ongedefinieerd of te lang';
|
||
v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving);
|
||
|
||
IF v_ins_srtgroep_omschrijving IS NULL OR LENGTH (v_ins_srtgroep_omschrijving) > 60
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Soortcode ongeldig; ongedefinieerd of te lang';
|
||
v_ins_srtdeel_code := TRIM (v_ins_srtdeel_code);
|
||
|
||
IF v_ins_srtdeel_code IS NULL OR LENGTH (v_ins_srtdeel_code) > 100
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Soort ongeldig; ongedefinieerd of te lang';
|
||
v_ins_srtdeel_omschrijving := TRIM (v_ins_srtdeel_omschrijving);
|
||
|
||
IF v_ins_srtdeel_omschrijving IS NULL OR LENGTH (v_ins_srtdeel_omschrijving) > 100
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectid ongeldig; ongedefinieerd of te lang';
|
||
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
|
||
|
||
IF v_ins_deel_omschrijving IS NULL OR LENGTH (v_ins_deel_omschrijving) > 60
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectopmerking te lang';
|
||
v_ins_deel_opmerking := TRIM (v_ins_deel_opmerking);
|
||
|
||
IF LENGTH (v_ins_deel_opmerking) > 2000
|
||
THEN
|
||
v_ins_deel_opmerking := SUBSTR (v_ins_deel_opmerking, 1, 2000);
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Opmerking wordt afgekapt!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Afdelingscode ongeldig; ongedefinieerd of te lang';
|
||
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
|
||
|
||
IF v_prs_afdeling_naam IS NULL OR LENGTH (v_prs_afdeling_naam) > 15
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Parentid te lang';
|
||
v_ins_parent_omschrijving := TRIM (v_ins_parent_omschrijving);
|
||
|
||
IF LENGTH (v_ins_parent_omschrijving) > 60
|
||
THEN
|
||
v_ins_parent_omschrijving := NULL;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Parentid wordt genegeerd!');
|
||
END IF;
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven importregel';
|
||
|
||
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
prs_perslid_matchcode,
|
||
prs_perslid_matchwaarde,
|
||
ins_kenmerkwaarde1)
|
||
VALUES (v_ins_discipline_omschrijving,
|
||
v_ins_srtgroep_omschrijving,
|
||
v_ins_srtdeel_code,
|
||
v_ins_srtdeel_omschrijving,
|
||
v_ins_deel_omschrijving,
|
||
v_ins_deel_opmerking,
|
||
'A',
|
||
v_prs_afdeling_naam,
|
||
v_ins_parent_omschrijving);
|
||
COMMIT;
|
||
|
||
v_count_import := v_count_import + 1;
|
||
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, 'W', v_aanduiding || v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'S', 'CMDB-objecten/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'CMDB-objecten/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
|
||
END IF;
|
||
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_aanduiding || v_errormsg, 'Inleesproces CMDB-objecten afgebroken!');
|
||
END mnnl_import_cmdb;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE mnnl_update_cmdb (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE add_insdiscipline (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
|
||
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving
|
||
FROM fac_imp_ins
|
||
GROUP BY UPPER (ins_discipline_omschrijving)
|
||
ORDER BY 1;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_update NUMBER (10) := 0;
|
||
v_discipline_key NUMBER (10);
|
||
ccount NUMBER (10);
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_errormsg := 'Fout toevoegen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM ins_tab_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_discipline_module = 'INS'
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
|
||
|
||
IF ccount = 0
|
||
THEN
|
||
INSERT INTO ins_tab_discipline (ins_discipline_module,
|
||
ins_discipline_omschrijving,
|
||
ins_discipline_min_level,
|
||
ins_discipline_kpnverplicht)
|
||
VALUES ('INS',
|
||
rec.ins_discipline_omschrijving,
|
||
1,
|
||
0)
|
||
RETURNING ins_discipline_key
|
||
INTO v_discipline_key;
|
||
|
||
INSERT INTO ins_disc_params (ins_discipline_key, ins_disc_params_type)
|
||
VALUES (v_discipline_key, 0);
|
||
COMMIT;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
END IF;
|
||
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, 'W', v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Disciplines/#ingelezen: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Disciplines/#toegevoegd: ' || TO_CHAR (v_count_update), '');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE add_srtgroep (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
|
||
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
|
||
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving,
|
||
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving
|
||
FROM fac_imp_ins
|
||
GROUP BY UPPER (ins_discipline_omschrijving),
|
||
UPPER (ins_srtgroep_omschrijving)
|
||
ORDER BY 1, 2;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_update NUMBER (10) := 0;
|
||
v_discipline_key NUMBER (10);
|
||
ccount NUMBER (10);
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_errormsg := 'Fout bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_discipline_module = 'INS'
|
||
AND ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
|
||
|
||
v_errormsg := 'Fout toevoegen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM ins_srtgroep
|
||
WHERE ins_srtgroep_verwijder IS NULL
|
||
AND ins_discipline_key = v_discipline_key
|
||
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = rec.ins_srtgroep_upper;
|
||
|
||
IF ccount = 0
|
||
THEN
|
||
INSERT INTO ins_srtgroep (ins_discipline_key,
|
||
ins_srtgroep_module,
|
||
ins_srtgroep_omschrijving)
|
||
VALUES (v_discipline_key,
|
||
'INS',
|
||
rec.ins_srtgroep_omschrijving);
|
||
COMMIT;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
END IF;
|
||
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, 'W', v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Groepsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Groepsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE add_srtdeel (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
|
||
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
|
||
UPPER (ins_srtdeel_omschrijving) ins_srtdeel_upper,
|
||
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving,
|
||
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving,
|
||
MAX (ins_srtdeel_code) ins_srtdeel_code,
|
||
MAX (ins_srtdeel_omschrijving) ins_srtdeel_omschrijving
|
||
FROM fac_imp_ins
|
||
GROUP BY UPPER (ins_discipline_omschrijving),
|
||
UPPER (ins_srtgroep_omschrijving),
|
||
UPPER (ins_srtdeel_omschrijving)
|
||
ORDER BY 1, 2, 3;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_update NUMBER (10) := 0;
|
||
v_discipline_key NUMBER (10);
|
||
v_srtgroep_key NUMBER (10);
|
||
ccount NUMBER (10);
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_errormsg := 'Fout bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_discipline_module = 'INS'
|
||
AND ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
|
||
|
||
v_errormsg := 'Fout bepalen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']';
|
||
|
||
SELECT ins_srtgroep_key
|
||
INTO v_srtgroep_key
|
||
FROM ins_srtgroep
|
||
WHERE ins_srtgroep_verwijder IS NULL
|
||
AND ins_srtgroep_module = 'INS'
|
||
AND ins_discipline_key = v_discipline_key
|
||
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = rec.ins_srtgroep_upper;
|
||
|
||
v_errormsg := 'Fout toevoegen INS-objectsoort [' || rec.ins_srtdeel_omschrijving || ']';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_verwijder IS NULL
|
||
AND ins_srtdeel_module = 'INS'
|
||
AND ins_srtgroep_key = v_srtgroep_key
|
||
AND UPPER (TRIM (ins_srtdeel_omschrijving)) = rec.ins_srtdeel_upper;
|
||
|
||
IF ccount = 0
|
||
THEN
|
||
-- Binding 8 betekent organisatiegebonden (Organisatie-vinkje)!
|
||
INSERT INTO ins_srtdeel (ins_srtgroep_key,
|
||
ins_srtdeel_module,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_srtdeel_binding)
|
||
VALUES (v_srtgroep_key,
|
||
'INS',
|
||
UPPER (rec.ins_srtdeel_code),
|
||
rec.ins_srtdeel_omschrijving,
|
||
8);
|
||
COMMIT;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
END IF;
|
||
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, 'W', v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objectsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objectsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE add_deel (p_import_key IN NUMBER)
|
||
AS
|
||
-- Parent-objecten eerst aanmaken/bijwerken, daarna child-objecten!
|
||
CURSOR c1
|
||
IS
|
||
SELECT ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
prs_perslid_matchwaarde,
|
||
ins_kenmerkwaarde1 parent
|
||
FROM fac_imp_ins
|
||
ORDER BY DECODE (ins_kenmerkwaarde1, NULL, 1, 2), 1, 2, 4, 5;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (500) := '';
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_create NUMBER (10) := 0;
|
||
v_count_update NUMBER (10) := 0;
|
||
v_discipline_key NUMBER (10);
|
||
v_srtgroep_key NUMBER (10);
|
||
v_srtdeel_key NUMBER (10);
|
||
v_new_afdeling_key NUMBER (10); -- Volgens import op basis van naam
|
||
v_cur_afdeling_key NUMBER (10); -- Zoals geregistreerd in FACILITOR
|
||
v_parent_key NUMBER (10);
|
||
v_deel_key NUMBER (10);
|
||
ccount NUMBER (10);
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.ins_discipline_omschrijving
|
||
|| '|'
|
||
|| rec.ins_srtgroep_omschrijving
|
||
|| '|'
|
||
|| rec.ins_srtdeel_code
|
||
|| '|'
|
||
|| rec.ins_srtdeel_omschrijving
|
||
|| '|'
|
||
|| rec.ins_deel_omschrijving
|
||
|| '|'
|
||
|| rec.prs_perslid_matchwaarde
|
||
|| '] ';
|
||
v_errormsg := 'Fout bepalen INS-discipline';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_discipline_module = 'INS'
|
||
AND ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (rec.ins_discipline_omschrijving);
|
||
|
||
v_errormsg := 'Fout bepalen INS-groepsoort';
|
||
|
||
SELECT ins_srtgroep_key
|
||
INTO v_srtgroep_key
|
||
FROM ins_srtgroep
|
||
WHERE ins_srtgroep_verwijder IS NULL
|
||
AND ins_srtgroep_module = 'INS'
|
||
AND ins_discipline_key = v_discipline_key
|
||
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = UPPER (rec.ins_srtgroep_omschrijving);
|
||
|
||
v_errormsg := 'Fout bepalen INS-objectsoort';
|
||
|
||
SELECT ins_srtdeel_key
|
||
INTO v_srtdeel_key
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_verwijder IS NULL
|
||
AND ins_srtdeel_module = 'INS'
|
||
AND ins_srtgroep_key = v_srtgroep_key
|
||
AND UPPER (TRIM (ins_srtdeel_omschrijving)) = UPPER (rec.ins_srtdeel_omschrijving);
|
||
|
||
v_errormsg := 'Fout bepalen afdeling [' || rec.prs_perslid_matchwaarde || ']';
|
||
|
||
SELECT prs_afdeling_key
|
||
INTO v_new_afdeling_key
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND prs_afdeling_upper = UPPER (rec.prs_perslid_matchwaarde);
|
||
|
||
v_errormsg := 'Fout bepalen parent';
|
||
|
||
IF rec.parent IS NOT NULL
|
||
THEN
|
||
SELECT MAX (ins_deel_key)
|
||
INTO v_parent_key
|
||
FROM ins_v_aanwezigdeel
|
||
WHERE ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
|
||
AND ins_deel_parent_key IS NULL -- Parent niet zelf child
|
||
AND TRIM (ins_deel_upper) = UPPER (rec.parent);
|
||
|
||
IF v_parent_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, '');
|
||
END IF;
|
||
ELSE
|
||
v_parent_key := NULL;
|
||
END IF;
|
||
|
||
-- Afdelingsgebonden objecten hebben een unieke ID!
|
||
v_errormsg := 'Fout (uniek) bepalen A-object';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM ins_v_aanwezigdeel
|
||
WHERE ins_deel_module = 'INS'
|
||
AND ins_srtdeel_key = v_srtdeel_key
|
||
AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving);
|
||
|
||
IF ccount = 0 -- Object bestaat nog niet, dus toevoegen!
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen INS-object';
|
||
|
||
INSERT INTO ins_deel (ins_discipline_key,
|
||
ins_srtdeel_key,
|
||
ins_deel_module,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_alg_ruimte_key,
|
||
ins_alg_ruimte_type,
|
||
ins_alg_locatie_key,
|
||
ins_deel_parent_key)
|
||
VALUES (v_discipline_key,
|
||
v_srtdeel_key,
|
||
'INS',
|
||
rec.ins_deel_omschrijving,
|
||
rec.ins_deel_opmerking,
|
||
v_new_afdeling_key,
|
||
'A',
|
||
NULL,
|
||
v_parent_key)
|
||
RETURNING ins_deel_key
|
||
INTO v_deel_key;
|
||
COMMIT;
|
||
|
||
v_count_create := v_count_create + 1;
|
||
ELSE -- Object bestaat reeds!
|
||
v_errormsg := 'Fout bijwerken INS-object';
|
||
|
||
SELECT d.ins_deel_key, ins_alg_ruimte_key
|
||
INTO v_deel_key, v_cur_afdeling_key
|
||
FROM ins_deel d
|
||
WHERE ins_deel_verwijder IS NULL
|
||
AND ins_deel_module = 'INS'
|
||
AND ins_srtdeel_key = v_srtdeel_key
|
||
AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving);
|
||
|
||
UPDATE ins_deel
|
||
SET ins_alg_ruimte_key = v_new_afdeling_key,
|
||
ins_alg_ruimte_type = 'A',
|
||
ins_deel_opmerking = rec.ins_deel_opmerking,
|
||
ins_deel_vervaldatum = NULL,
|
||
ins_alg_locatie_key = NULL,
|
||
ins_deel_parent_key = v_parent_key,
|
||
ins_alg_ruimte_key_org = NULL,
|
||
ins_alg_ruimte_type_org = NULL
|
||
WHERE ins_deel_key = v_deel_key;
|
||
COMMIT;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
END IF;
|
||
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, 'W', v_aanduiding || v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#toegevoegd: ' || TO_CHAR (v_count_create), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#bijgewerkt: ' || TO_CHAR (v_count_update), '');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE del_deel (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT id.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_key
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel sd,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_discipline id
|
||
WHERE d.ins_deel_vervaldatum IS NULL -- Vervaldatum nog niet gezet!
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = id.ins_discipline_key
|
||
AND id.ins_discipline_key IN (1101, 1102, 1103) -- Applicatie/Server/Database
|
||
AND d.ins_deel_omschrijving NOT LIKE '%NIET GEBRUIKEN%'
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM fac_imp_ins ic
|
||
WHERE UPPER (ic.ins_deel_omschrijving) = d.ins_deel_upper
|
||
AND UPPER (ic.ins_srtdeel_omschrijving) = sd.ins_srtdeel_upper
|
||
AND UPPER (ic.ins_srtgroep_omschrijving) = sg.ins_srtgroep_upper
|
||
AND UPPER (ic.ins_discipline_omschrijving) = UPPER (id.ins_discipline_omschrijving))
|
||
ORDER BY 1, 2, 4, 5;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (500):= '';
|
||
v_count_delete NUMBER (10) := 0;
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.ins_discipline_omschrijving
|
||
|| '|'
|
||
|| rec.ins_srtgroep_omschrijving
|
||
|| '|'
|
||
|| rec.ins_srtdeel_code
|
||
|| '|'
|
||
|| rec.ins_srtdeel_omschrijving
|
||
|| '|'
|
||
|| rec.ins_deel_omschrijving
|
||
|| '] ';
|
||
v_errormsg := 'Fout verwijderen INS-object';
|
||
|
||
--DELETE FROM ins_deel
|
||
-- WHERE ins_deel_key = rec.ins_deel_key;
|
||
UPDATE ins_deel
|
||
SET ins_deel_vervaldatum = SYSDATE
|
||
WHERE ins_deel_key = rec.ins_deel_key;
|
||
COMMIT;
|
||
|
||
v_count_delete := v_count_delete + 1;
|
||
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, 'W', v_aanduiding || v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#verwijderd: ' || TO_CHAR (v_count_delete), '');
|
||
COMMIT;
|
||
END;
|
||
-- MAIN
|
||
BEGIN
|
||
-- Generieke update.
|
||
SELECT COUNT ( * ) INTO v_count FROM fac_imp_ins;
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Niets te importeren!', '');
|
||
RETURN;
|
||
END IF;
|
||
|
||
--add_insdiscipline (p_import_key);
|
||
add_srtgroep (p_import_key);
|
||
add_srtdeel (p_import_key);
|
||
add_deel (p_import_key);
|
||
del_deel (p_import_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 CMDB-objecten afgebroken!');
|
||
END mnnl_update_cmdb;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_eua
|
||
(
|
||
disciplineomschrijving,
|
||
groepsoortomschrijving,
|
||
objectsoortcode,
|
||
objectsoortomschrijving,
|
||
objectomschrijving,
|
||
objectopmerking,
|
||
afdeling,
|
||
persoon,
|
||
locatiecode,
|
||
gebouwcode,
|
||
verdiepingvolgnr,
|
||
ruimtenr,
|
||
status,
|
||
redenbijstatus, -- Afhankelijk van status!
|
||
serienummer,
|
||
model,
|
||
aanschafdatum,
|
||
ordernummer,
|
||
opmerkingen,
|
||
vervaldatum,
|
||
aanschafwaarde,
|
||
organisatie
|
||
)
|
||
AS
|
||
SELECT x.ins_discipline_omschrijving,
|
||
x.ins_srtgroep_omschrijving,
|
||
x.ins_srtdeel_code,
|
||
x.ins_srtdeel_omschrijving,
|
||
x.ins_deel_omschrijving,
|
||
x.ins_deel_opmerking,
|
||
x.prs_afdeling_naam,
|
||
x.prs_perslid_oslogin,
|
||
x.alg_locatie_code,
|
||
x.alg_gebouw_code,
|
||
x.alg_verdieping_volgnr,
|
||
x.alg_ruimte_nr,
|
||
(SELECT fac_usrdata_code
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE TO_CHAR (fac_usrdata_key) = sts.ins_kenmerkdeel_waarde), -- Status
|
||
(SELECT fac_usrdata_code
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE TO_CHAR (fac_usrdata_key) = rbs.ins_kenmerkdeel_waarde), -- Reden bij status
|
||
snr.ins_kenmerkdeel_waarde, -- Serienummer
|
||
mdl.ins_kenmerkdeel_waarde, -- Model
|
||
asd.ins_kenmerkdeel_waarde, -- Aanschafdatum
|
||
onr.ins_kenmerkdeel_waarde, -- Ordernummer
|
||
opm.ins_kenmerkdeel_waarde, -- Opmerkingen
|
||
x.ins_deel_vervaldatum,
|
||
asw.ins_kenmerkdeel_waarde, -- Aanschafwaarde
|
||
x.organisatie
|
||
FROM (SELECT d.ins_deel_key,
|
||
td.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
a.prs_afdeling_naam,
|
||
NULL prs_perslid_oslogin,
|
||
NULL alg_locatie_code,
|
||
NULL alg_gebouw_code,
|
||
NULL alg_verdieping_volgnr,
|
||
NULL alg_ruimte_nr,
|
||
d.ins_deel_vervaldatum,
|
||
NULL organisatie
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
prs_afdeling a
|
||
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 IN (1104, 1741) -- EndUser Asset, uitleen Assets
|
||
AND d.ins_alg_ruimte_type = 'A'
|
||
AND d.ins_alg_ruimte_key = a.prs_afdeling_key
|
||
UNION ALL
|
||
SELECT d.ins_deel_key,
|
||
td.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
NULL prs_afdeling_naam,
|
||
p.prs_perslid_oslogin,
|
||
NULL alg_locatie_code,
|
||
NULL alg_gebouw_code,
|
||
NULL alg_verdieping_volgnr,
|
||
NULL alg_ruimte_nr,
|
||
d.ins_deel_vervaldatum,
|
||
a.prs_afdeling_naam organisatie
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
prs_perslid p,
|
||
prs_afdeling a
|
||
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 IN (1104, 1741) -- EndUser Asset, uitleen Assets
|
||
AND d.ins_alg_ruimte_type = 'P'
|
||
AND d.ins_alg_ruimte_key = p.prs_perslid_key
|
||
AND a.prs_afdeling_key = p.prs_afdeling_key
|
||
UNION ALL
|
||
SELECT d.ins_deel_key,
|
||
td.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
NULL prs_afdeling_naam,
|
||
NULL prs_perslid_oslogin,
|
||
l.alg_locatie_code,
|
||
g.alg_gebouw_code,
|
||
v.alg_verdieping_volgnr,
|
||
r.alg_ruimte_nr,
|
||
d.ins_deel_vervaldatum,
|
||
NULL organisatie
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
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 IN (1104, 1741) -- EndUser Asset, uitleen Assets
|
||
AND d.ins_alg_ruimte_type = 'R'
|
||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key) x
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel sts
|
||
ON x.ins_deel_key = sts.ins_deel_key
|
||
AND sts.ins_kenmerk_key = 21 -- Status
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel rbs
|
||
ON x.ins_deel_key = rbs.ins_deel_key
|
||
AND rbs.ins_kenmerk_key = 81 -- Reden bij status
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel snr
|
||
ON x.ins_deel_key = snr.ins_deel_key
|
||
AND snr.ins_kenmerk_key = 22 -- Serienummer
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel mdl
|
||
ON x.ins_deel_key = mdl.ins_deel_key
|
||
AND mdl.ins_kenmerk_key = 23 -- Model
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel asd
|
||
ON x.ins_deel_key = asd.ins_deel_key
|
||
AND asd.ins_kenmerk_key = 24 -- Aanschafdatum
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel onr
|
||
ON x.ins_deel_key = onr.ins_deel_key
|
||
AND onr.ins_kenmerk_key = 25 -- Ordernummer
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel opm
|
||
ON x.ins_deel_key = opm.ins_deel_key
|
||
AND opm.ins_kenmerk_key = 27 -- Opmerkingen
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel asw
|
||
ON x.ins_deel_key = asw.ins_deel_key
|
||
AND asw.ins_kenmerk_key = 101 -- MNNL#53670: Aanschafwaarde
|
||
;
|
||
|
||
-- MNNL#40905: EUA-import (EndUser Asset)!
|
||
CREATE OR REPLACE PROCEDURE mnnl_import_eua (p_import_key IN NUMBER)
|
||
IS
|
||
c_delim VARCHAR2 (1) := ';';
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (500);
|
||
header_is_valid NUMBER := 0;
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_import NUMBER (10) := 0;
|
||
v_ongeldig NUMBER (1);
|
||
-- De importvelden:
|
||
v_ins_discipline_omschrijving VARCHAR2 (255); -- C30
|
||
v_ins_srtgroep_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_srtdeel_code VARCHAR2 (255); -- C10
|
||
v_ins_srtdeel_omschrijving VARCHAR2 (255); -- C100
|
||
v_ins_deel_omschrijving VARCHAR2 (255); -- C60
|
||
v_ins_deel_opmerking VARCHAR2 (2000); -- C2000
|
||
v_prs_afdeling_naam VARCHAR2 (255); -- C15
|
||
v_prs_perslid_oslogin VARCHAR2 (255); -- C30
|
||
v_alg_locatie_code VARCHAR2 (255); -- C10
|
||
v_alg_gebouw_code VARCHAR2 (255); -- C12
|
||
v_alg_verdieping_volgnr VARCHAR2 (255); -- N3
|
||
v_alg_verdieping_volgnr_n NUMBER (3); -- N3
|
||
v_alg_ruimte_nr VARCHAR2 (255); -- C10
|
||
v_sts VARCHAR2 (255); -- C60
|
||
v_rbs VARCHAR2 (255); -- C60
|
||
v_snr VARCHAR2 (255); -- C40
|
||
v_mdl VARCHAR2 (255); -- C50
|
||
v_asd VARCHAR2 (255); -- C10
|
||
v_onr VARCHAR2 (255); -- C50
|
||
v_opm VARCHAR2 (2000); -- C255!
|
||
v_ins_deel_vervaldatum VARCHAR2 (255); -- D10
|
||
v_asw VARCHAR2 (255); -- Nx
|
||
|
||
CURSOR c1
|
||
IS
|
||
SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index;
|
||
BEGIN
|
||
DELETE FROM fac_imp_ins;
|
||
COMMIT;
|
||
|
||
FOR rec1 IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_newline := rec1.fac_imp_file_line;
|
||
v_errormsg := 'Fout opvragen importregel';
|
||
v_aanduiding := '';
|
||
v_ongeldig := 0;
|
||
-- Lees alle veldwaarden
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_discipline_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtgroep_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_srtdeel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_omschrijving);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_opmerking);
|
||
fac.imp_getfield (v_newline, c_delim, v_prs_afdeling_naam);
|
||
fac.imp_getfield (v_newline, c_delim, v_prs_perslid_oslogin);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_locatie_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_gebouw_code);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_verdieping_volgnr);
|
||
fac.imp_getfield (v_newline, c_delim, v_alg_ruimte_nr);
|
||
fac.imp_getfield (v_newline, c_delim, v_sts);
|
||
fac.imp_getfield (v_newline, c_delim, v_rbs);
|
||
fac.imp_getfield (v_newline, c_delim, v_snr);
|
||
fac.imp_getfield (v_newline, c_delim, v_mdl);
|
||
fac.imp_getfield (v_newline, c_delim, v_asd);
|
||
fac.imp_getfield (v_newline, c_delim, v_onr);
|
||
fac.imp_getfield (v_newline, c_delim, v_opm);
|
||
fac.imp_getfield (v_newline, c_delim, v_ins_deel_vervaldatum);
|
||
fac.imp_getfield (v_newline, c_delim, v_asw);
|
||
|
||
v_aanduiding :=
|
||
'['
|
||
|| v_ins_discipline_omschrijving
|
||
|| '|'
|
||
|| v_ins_srtgroep_omschrijving
|
||
|| '|'
|
||
|| v_ins_srtdeel_code
|
||
|| '|'
|
||
|| v_ins_srtdeel_omschrijving
|
||
|| '|'
|
||
|| v_ins_deel_omschrijving
|
||
|| '|'
|
||
|| COALESCE (v_prs_afdeling_naam, v_prs_perslid_oslogin, v_alg_locatie_code || '-' || v_alg_gebouw_code || '-' || v_alg_verdieping_volgnr || '-' || v_alg_ruimte_nr)
|
||
|| '] ';
|
||
|
||
-- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen
|
||
-- de juiste kolomkop. Ik controleer daarbij ALLE kolommen!
|
||
-- Ik negeer alles totdat ik een geldige header ben gepasseerd.
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
IF UPPER (v_ins_discipline_omschrijving) = 'DISCIPLINEOMSCHRIJVING'
|
||
AND UPPER (v_ins_srtgroep_omschrijving) = 'GROEPSOORTOMSCHRIJVING'
|
||
AND UPPER (v_ins_srtdeel_code) = 'OBJECTSOORTCODE'
|
||
AND UPPER (v_ins_srtdeel_omschrijving) = 'OBJECTSOORTOMSCHRIJVING'
|
||
AND UPPER (v_ins_deel_omschrijving) = 'OBJECTOMSCHRIJVING'
|
||
AND UPPER (v_ins_deel_opmerking) = 'OBJECTOPMERKING'
|
||
AND UPPER (v_prs_afdeling_naam) = 'AFDELING'
|
||
AND UPPER (v_prs_perslid_oslogin) = 'PERSOON'
|
||
AND UPPER (v_alg_locatie_code) = 'LOCATIECODE'
|
||
AND UPPER (v_alg_gebouw_code) = 'GEBOUWCODE'
|
||
AND UPPER (v_alg_verdieping_volgnr) = 'VERDIEPINGVOLGNR'
|
||
AND UPPER (v_alg_ruimte_nr) = 'RUIMTENR'
|
||
AND UPPER (v_sts) = 'STATUS'
|
||
AND UPPER (v_rbs) = 'REDENBIJSTATUS'
|
||
AND UPPER (v_snr) = 'SERIENUMMER'
|
||
AND UPPER (v_mdl) = 'MODEL'
|
||
AND UPPER (v_asd) = 'AANSCHAFDATUM'
|
||
AND UPPER (v_onr) = 'ORDERNUMMER'
|
||
AND UPPER (v_opm) = 'OPMERKINGEN'
|
||
AND UPPER (v_ins_deel_vervaldatum) = 'VERVALDATUM'
|
||
AND UPPER (v_asw) = 'AANSCHAFWAARDE'
|
||
THEN
|
||
header_is_valid := 1;
|
||
END IF;
|
||
ELSE
|
||
v_count_tot := v_count_tot + 1;
|
||
|
||
-- Controleer alle veldwaarden
|
||
v_errormsg := 'Discipline ongeldig; ongedefinieerd of te lang';
|
||
v_ins_discipline_omschrijving := TRIM (v_ins_discipline_omschrijving);
|
||
|
||
IF v_ins_discipline_omschrijving IS NULL OR LENGTH (v_ins_discipline_omschrijving) > 30
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Groep ongeldig; ongedefinieerd of te lang';
|
||
v_ins_srtgroep_omschrijving := TRIM (v_ins_srtgroep_omschrijving);
|
||
|
||
IF v_ins_srtgroep_omschrijving IS NULL OR LENGTH (v_ins_srtgroep_omschrijving) > 60
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Soortcode ongeldig; ongedefinieerd of te lang';
|
||
v_ins_srtdeel_code := TRIM (v_ins_srtdeel_code);
|
||
|
||
IF v_ins_srtdeel_code IS NULL OR LENGTH (v_ins_srtdeel_code) > 100
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Soort ongeldig; ongedefinieerd of te lang';
|
||
v_ins_srtdeel_omschrijving := TRIM (v_ins_srtdeel_omschrijving);
|
||
|
||
IF v_ins_srtdeel_omschrijving IS NULL OR LENGTH (v_ins_srtdeel_omschrijving) > 100
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectid ongeldig; ongedefinieerd of te lang';
|
||
v_ins_deel_omschrijving := TRIM (v_ins_deel_omschrijving);
|
||
|
||
IF v_ins_deel_omschrijving IS NULL OR LENGTH (v_ins_deel_omschrijving) > 60
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Objectopmerking te lang';
|
||
v_ins_deel_opmerking := TRIM (v_ins_deel_opmerking);
|
||
|
||
IF LENGTH (v_ins_deel_opmerking) > 2000
|
||
THEN
|
||
v_ins_deel_opmerking := SUBSTR (v_ins_deel_opmerking, 1, 255);
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Opmerking wordt afgekapt!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Afdelingscode te lang';
|
||
v_prs_afdeling_naam := TRIM (v_prs_afdeling_naam);
|
||
|
||
IF LENGTH (v_prs_afdeling_naam) > 15
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Loginnaam te lang';
|
||
v_prs_perslid_oslogin := TRIM (v_prs_perslid_oslogin);
|
||
|
||
IF LENGTH (v_prs_perslid_oslogin) > 30
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Locatiecode te lang';
|
||
v_alg_locatie_code := TRIM (v_alg_locatie_code);
|
||
|
||
IF LENGTH (v_alg_locatie_code) > 10
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Gebouwcode te lang';
|
||
v_alg_gebouw_code := TRIM (v_alg_gebouw_code);
|
||
|
||
IF LENGTH (v_alg_gebouw_code) > 12
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Verdiepingvolgnummer ongeldig; niet numeriek';
|
||
v_alg_verdieping_volgnr := TRIM (v_alg_verdieping_volgnr);
|
||
v_alg_verdieping_volgnr_n := fac.safe_to_number (v_alg_verdieping_volgnr);
|
||
|
||
IF v_alg_verdieping_volgnr IS NOT NULL AND v_alg_verdieping_volgnr_n NOT BETWEEN -999 AND 999
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_errormsg := 'Ruimtenummer te lang';
|
||
v_alg_ruimte_nr := TRIM (v_alg_ruimte_nr);
|
||
|
||
IF LENGTH (v_alg_ruimte_nr) > 10
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_sts := TRIM (v_sts);
|
||
v_rbs := TRIM (v_rbs);
|
||
v_snr := TRIM (v_snr);
|
||
v_mdl := TRIM (v_mdl);
|
||
v_asd := TRIM (v_asd);
|
||
v_onr := TRIM (v_onr);
|
||
v_opm := TRIM (v_opm);
|
||
|
||
--
|
||
v_errormsg := 'Vervaldatum ongeldig; geen datum';
|
||
v_ins_deel_vervaldatum := TRIM (v_ins_deel_vervaldatum);
|
||
|
||
IF v_ins_deel_vervaldatum IS NOT NULL AND fac.safe_to_date (v_ins_deel_vervaldatum, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
v_ongeldig := 1;
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || v_errormsg, 'Regel wordt overgeslagen!');
|
||
END IF;
|
||
|
||
--
|
||
v_asw := TRIM (v_asw);
|
||
|
||
-- Insert geformatteerde import record
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
BEGIN
|
||
v_errormsg := 'Fout wegschrijven importregel';
|
||
|
||
INSERT INTO fac_imp_ins (ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
alg_locatie_code,
|
||
alg_gebouw_code,
|
||
alg_verdieping_volgnr,
|
||
alg_ruimte_nr,
|
||
prs_perslid_matchcode,
|
||
prs_perslid_matchwaarde,
|
||
res_discipline_kostensoort,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8)
|
||
VALUES (v_ins_discipline_omschrijving,
|
||
v_ins_srtgroep_omschrijving,
|
||
v_ins_srtdeel_code,
|
||
v_ins_srtdeel_omschrijving,
|
||
v_ins_deel_omschrijving,
|
||
v_ins_deel_opmerking,
|
||
v_alg_locatie_code,
|
||
v_alg_gebouw_code,
|
||
v_alg_verdieping_volgnr_n,
|
||
v_alg_ruimte_nr,
|
||
DECODE (v_prs_afdeling_naam, NULL, DECODE (v_prs_perslid_oslogin, NULL, NULL, 'P'), 'A'),
|
||
COALESCE (v_prs_afdeling_naam, v_prs_perslid_oslogin),
|
||
v_ins_deel_vervaldatum,
|
||
v_sts,
|
||
v_rbs,
|
||
v_snr,
|
||
v_mdl,
|
||
v_asd,
|
||
v_onr,
|
||
v_opm,
|
||
v_asw);
|
||
COMMIT;
|
||
|
||
v_count_import := v_count_import + 1;
|
||
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, 'W', v_aanduiding || v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END IF;
|
||
END IF;
|
||
END;
|
||
END LOOP;
|
||
|
||
IF (header_is_valid = 0)
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Ongeldig importbestand', 'Geen header of header niet volgens specificatie!');
|
||
ELSE
|
||
fac.imp_writelog (p_import_key, 'S', 'EUA-objecten/#ingelezen importregels: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'EUA-objecten/#ongeldige niet ingelezen importregels: ' || TO_CHAR (v_count_tot - v_count_import), '');
|
||
END IF;
|
||
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_aanduiding || v_errormsg, 'Inleesproces EUA-objecten afgebroken!');
|
||
END mnnl_import_eua;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE mnnl_update_eua (p_import_key IN NUMBER)
|
||
AS
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (500);
|
||
v_count NUMBER;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE add_insdiscipline (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
|
||
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving
|
||
FROM fac_imp_ins
|
||
GROUP BY UPPER (ins_discipline_omschrijving)
|
||
ORDER BY 1;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_update NUMBER (10) := 0;
|
||
v_discipline_key NUMBER (10);
|
||
ccount NUMBER (10);
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_errormsg := 'Fout toevoegen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM ins_tab_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_discipline_module = 'INS'
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
|
||
|
||
IF ccount = 0
|
||
THEN
|
||
INSERT INTO ins_tab_discipline (ins_discipline_module,
|
||
ins_discipline_omschrijving,
|
||
ins_discipline_min_level,
|
||
ins_discipline_kpnverplicht)
|
||
VALUES ('INS',
|
||
rec.ins_discipline_omschrijving,
|
||
1,
|
||
0)
|
||
RETURNING ins_discipline_key
|
||
INTO v_discipline_key;
|
||
|
||
INSERT INTO ins_disc_params (ins_discipline_key, ins_disc_params_type)
|
||
VALUES (v_discipline_key, 0);
|
||
COMMIT;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
END IF;
|
||
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, 'W', v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Disciplines/#ingelezen: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Disciplines/#toegevoegd: ' || TO_CHAR (v_count_update), '');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE add_srtgroep (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
|
||
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
|
||
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving,
|
||
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving
|
||
FROM fac_imp_ins
|
||
GROUP BY UPPER (ins_discipline_omschrijving),
|
||
UPPER (ins_srtgroep_omschrijving)
|
||
ORDER BY 1, 2;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_update NUMBER (10) := 0;
|
||
v_discipline_key NUMBER (10);
|
||
ccount NUMBER (10);
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_errormsg := 'Fout bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_discipline_module = 'INS'
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
|
||
|
||
v_errormsg := 'Fout toevoegen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM ins_srtgroep
|
||
WHERE ins_srtgroep_verwijder IS NULL
|
||
AND ins_discipline_key = v_discipline_key
|
||
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = rec.ins_srtgroep_upper;
|
||
|
||
IF ccount = 0
|
||
THEN
|
||
INSERT INTO ins_srtgroep (ins_discipline_key,
|
||
ins_srtgroep_module,
|
||
ins_srtgroep_omschrijving)
|
||
VALUES (v_discipline_key,
|
||
'INS',
|
||
rec.ins_srtgroep_omschrijving);
|
||
COMMIT;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
END IF;
|
||
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, 'W', v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Groepsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Groepsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE add_srtdeel (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT UPPER (ins_discipline_omschrijving) ins_discipline_upper,
|
||
UPPER (ins_srtgroep_omschrijving) ins_srtgroep_upper,
|
||
UPPER (ins_srtdeel_omschrijving) ins_srtdeel_upper,
|
||
MAX (ins_discipline_omschrijving) ins_discipline_omschrijving,
|
||
MAX (ins_srtgroep_omschrijving) ins_srtgroep_omschrijving,
|
||
MAX (ins_srtdeel_code) ins_srtdeel_code,
|
||
MAX (ins_srtdeel_omschrijving) ins_srtdeel_omschrijving
|
||
FROM fac_imp_ins
|
||
GROUP BY UPPER (ins_discipline_omschrijving),
|
||
UPPER (ins_srtgroep_omschrijving),
|
||
UPPER (ins_srtdeel_omschrijving)
|
||
ORDER BY 1, 2, 3;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_update NUMBER (10) := 0;
|
||
v_discipline_key NUMBER (10);
|
||
v_srtgroep_key NUMBER (10);
|
||
ccount NUMBER (10);
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_errormsg := 'Fout bepalen INS-discipline [' || rec.ins_discipline_omschrijving || ']';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_tab_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_discipline_module = 'INS'
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) = rec.ins_discipline_upper;
|
||
|
||
v_errormsg := 'Fout bepalen INS-groepsoort [' || rec.ins_srtgroep_omschrijving || ']';
|
||
|
||
SELECT ins_srtgroep_key
|
||
INTO v_srtgroep_key
|
||
FROM ins_srtgroep
|
||
WHERE ins_srtgroep_verwijder IS NULL
|
||
AND ins_srtgroep_module = 'INS'
|
||
AND ins_discipline_key = v_discipline_key
|
||
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = rec.ins_srtgroep_upper;
|
||
|
||
v_errormsg := 'Fout toevoegen INS-objectsoort [' || rec.ins_srtdeel_omschrijving || ']';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_verwijder IS NULL
|
||
AND ins_srtdeel_module = 'INS'
|
||
AND ins_srtgroep_key = v_srtgroep_key
|
||
AND UPPER (TRIM (ins_srtdeel_omschrijving)) = rec.ins_srtdeel_upper;
|
||
|
||
IF ccount = 0
|
||
THEN
|
||
-- Binding 25 betekent ruimte-, organisatie- of persoonsgebonden!
|
||
INSERT INTO ins_srtdeel (ins_srtgroep_key,
|
||
ins_srtdeel_module,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_srtdeel_binding)
|
||
VALUES (v_srtgroep_key,
|
||
'INS',
|
||
UPPER (rec.ins_srtdeel_code),
|
||
rec.ins_srtdeel_omschrijving,
|
||
25);
|
||
COMMIT;
|
||
|
||
v_count_update := v_count_update + 1;
|
||
END IF;
|
||
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, 'W', v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objectsoorten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objectsoorten/#toegevoegd: ' || TO_CHAR (v_count_update), '');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE upsert_inskenmerk (p_deel_key IN NUMBER,
|
||
p_srtkenmerk_key IN NUMBER,
|
||
p_waarde IN VARCHAR2)
|
||
AS
|
||
v_kenmerk_key NUMBER;
|
||
v_srtkenmerk_type VARCHAR2 (1);
|
||
ccount NUMBER;
|
||
v_waarde VARCHAR2 (255);
|
||
v_objectnaam VARCHAR2 (30);
|
||
v_kolomnaam VARCHAR2 (30);
|
||
v_kolomtxt VARCHAR2 (30);
|
||
sql_stmt VARCHAR2 (1000);
|
||
v_kenmerkdeel_key NUMBER;
|
||
l_cursor_1 INTEGER;
|
||
l_rowsprocessed NUMBER DEFAULT 0;
|
||
BEGIN
|
||
IF p_srtkenmerk_key IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout bepalen kenmerk van soort [' || p_srtkenmerk_key || ']';
|
||
|
||
SELECT k.ins_kenmerk_key, sk.ins_srtkenmerk_kenmerktype
|
||
INTO v_kenmerk_key, v_srtkenmerk_type
|
||
FROM ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_v_aanwezigkenmerk k, ins_v_aanwezigsrtkenmerk sk
|
||
WHERE d.ins_deel_key = p_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND k.ins_srtkenmerk_key = p_srtkenmerk_key
|
||
AND ((k.ins_srtinstallatie_key = sd.ins_srtdeel_key AND k.ins_kenmerk_niveau = 'S')
|
||
OR (k.ins_srtinstallatie_key = sg.ins_srtgroep_key AND k.ins_kenmerk_niveau = 'G')
|
||
OR (k.ins_srtinstallatie_key = sg.ins_discipline_key AND k.ins_kenmerk_niveau = 'D'))
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key;
|
||
|
||
IF p_waarde IS NOT NULL
|
||
THEN
|
||
IF v_srtkenmerk_type IN ('R', 'S')
|
||
THEN
|
||
v_errormsg := 'Fout bepalen eigen tabel';
|
||
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM ins_srtkenmerk sk, fac_kenmerkdomein d
|
||
WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key
|
||
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key IS NOT NULL;
|
||
|
||
v_errormsg := 'Fout bepalen nieuwe waarde [' || p_waarde || ']';
|
||
|
||
IF ccount = 1
|
||
THEN -- Eigen tabel
|
||
SELECT TO_CHAR (ud.fac_usrdata_key)
|
||
INTO v_waarde
|
||
FROM ins_srtkenmerk sk, fac_kenmerkdomein d, fac_v_aanwezigusrdata ud
|
||
WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key
|
||
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key = ud.fac_usrtab_key
|
||
AND UPPER (TRIM (ud.fac_usrdata_code)) = UPPER (p_waarde); -- Match op code in Eigen Tabel!
|
||
ELSE -- FACILITOR view/tabel
|
||
SELECT d.fac_kenmerkdomein_objectnaam, d.fac_kenmerkdomein_kolomnaam, d.fac_kenmerkdomein_kolomtxt
|
||
INTO v_objectnaam, v_kolomnaam, v_kolomtxt
|
||
FROM ins_srtkenmerk sk, fac_kenmerkdomein d
|
||
WHERE sk.ins_srtkenmerk_key = p_srtkenmerk_key
|
||
AND sk.fac_kenmerkdomein_key = d.fac_kenmerkdomein_key
|
||
AND d.fac_usrtab_key IS NULL;
|
||
|
||
sql_stmt :=
|
||
'SELECT MAX ('
|
||
|| v_kolomnaam
|
||
|| ') FROM '
|
||
|| v_objectnaam
|
||
|| ' WHERE UPPER (TRIM ('
|
||
|| v_kolomtxt
|
||
|| ')) = UPPER (:pwaarde)';
|
||
l_cursor_1 := DBMS_SQL.open_cursor;
|
||
DBMS_SQL.parse (l_cursor_1, sql_stmt, DBMS_SQL.native);
|
||
DBMS_SQL.BIND_VARIABLE (l_cursor_1, ':pwaarde', p_waarde);
|
||
DBMS_SQL.define_column (l_cursor_1, 1, v_waarde, 255);
|
||
l_rowsprocessed := DBMS_SQL.execute_and_fetch (l_cursor_1);
|
||
DBMS_SQL.COLUMN_VALUE (l_cursor_1, 1, v_waarde);
|
||
DBMS_SQL.close_cursor (l_cursor_1);
|
||
END IF;
|
||
ELSE -- C(Karakter)/D(Datum)/N(Numeriek)/X(Bestandsnaam)
|
||
v_waarde := p_waarde;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen huidige waarde';
|
||
|
||
SELECT COUNT ( * ), MAX (ins_kenmerkdeel_key)
|
||
INTO ccount, v_kenmerkdeel_key
|
||
FROM ins_v_aanwezigkenmerkdeel
|
||
WHERE ins_deel_key = p_deel_key
|
||
AND ins_kenmerk_key = v_kenmerk_key;
|
||
|
||
IF ccount = 0
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen waarde [' || v_waarde || ']';
|
||
|
||
INSERT INTO ins_kenmerkdeel (ins_deel_key, ins_kenmerk_key, ins_kenmerkdeel_waarde)
|
||
VALUES (p_deel_key, v_kenmerk_key, v_waarde);
|
||
ELSE
|
||
v_errormsg := 'Fout bijwerken waarde [' || v_waarde || ']';
|
||
|
||
UPDATE ins_kenmerkdeel
|
||
SET ins_kenmerkdeel_waarde = v_waarde
|
||
WHERE ins_kenmerkdeel_key = v_kenmerkdeel_key;
|
||
END IF;
|
||
ELSE
|
||
-- Verwijder kenmerken die als bestaan maar met de nieuwe import leeg zijn.
|
||
DELETE ins_kenmerkdeel
|
||
WHERE ins_deel_key = p_deel_key
|
||
AND ins_kenmerk_key = v_kenmerk_key;
|
||
END IF;
|
||
END IF;
|
||
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, 'W', v_aanduiding || v_errormsg, 'upsert_inskenmerk');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE add_deel (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT ins_discipline_omschrijving,
|
||
ins_srtgroep_omschrijving,
|
||
ins_srtdeel_code,
|
||
ins_srtdeel_omschrijving,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
alg_locatie_code, alg_gebouw_code, alg_verdieping_volgnr, alg_ruimte_nr,
|
||
prs_perslid_matchcode, prs_perslid_matchwaarde,
|
||
ins_kenmerkwaarde1,
|
||
ins_kenmerkwaarde2,
|
||
ins_kenmerkwaarde3,
|
||
ins_kenmerkwaarde4,
|
||
ins_kenmerkwaarde5,
|
||
ins_kenmerkwaarde6,
|
||
ins_kenmerkwaarde7,
|
||
ins_kenmerkwaarde8
|
||
FROM fac_imp_ins
|
||
WHERE res_discipline_kostensoort IS NULL
|
||
ORDER BY 1, 2, 4, 5;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (500) := '';
|
||
v_count_tot NUMBER (10) := 0;
|
||
v_count_create NUMBER (10) := 0;
|
||
v_count_update NUMBER (10) := 0;
|
||
v_discipline_key NUMBER (10);
|
||
v_srtgroep_key NUMBER (10);
|
||
v_srtdeel_key NUMBER (10);
|
||
v_srtdeel_binding NUMBER (3);
|
||
v_locatie_key NUMBER (10);
|
||
v_gebouw_key NUMBER (10);
|
||
v_verdieping_key NUMBER (10);
|
||
v_ruimte_key NUMBER (10);
|
||
v_ruimte_type VARCHAR2 (10);
|
||
v_deel_key NUMBER (10);
|
||
ccount NUMBER (10);
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_count_tot := v_count_tot + 1;
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.ins_discipline_omschrijving
|
||
|| '|'
|
||
|| rec.ins_srtgroep_omschrijving
|
||
|| '|'
|
||
|| rec.ins_srtdeel_code
|
||
|| '|'
|
||
|| rec.ins_srtdeel_omschrijving
|
||
|| '|'
|
||
|| rec.ins_deel_omschrijving
|
||
|| '|'
|
||
|| COALESCE (rec.prs_perslid_matchwaarde, rec.alg_locatie_code || '-' || rec.alg_gebouw_code || '-' || TO_CHAR (rec.alg_verdieping_volgnr) || '-' || rec.alg_ruimte_nr)
|
||
|| '] ';
|
||
v_errormsg := 'Fout bepalen INS-discipline';
|
||
|
||
SELECT ins_discipline_key
|
||
INTO v_discipline_key
|
||
FROM ins_discipline
|
||
WHERE ins_discipline_verwijder IS NULL
|
||
AND ins_discipline_module = 'INS'
|
||
AND UPPER (TRIM (ins_discipline_omschrijving)) = UPPER (rec.ins_discipline_omschrijving);
|
||
|
||
v_errormsg := 'Fout bepalen INS-groepsoort';
|
||
|
||
SELECT ins_srtgroep_key
|
||
INTO v_srtgroep_key
|
||
FROM ins_srtgroep
|
||
WHERE ins_srtgroep_verwijder IS NULL
|
||
AND ins_srtgroep_module = 'INS'
|
||
AND ins_discipline_key = v_discipline_key
|
||
AND UPPER (TRIM (ins_srtgroep_omschrijving)) = UPPER (rec.ins_srtgroep_omschrijving);
|
||
|
||
v_errormsg := 'Fout bepalen INS-objectsoort';
|
||
|
||
SELECT ins_srtdeel_key, ins_srtdeel_binding
|
||
INTO v_srtdeel_key, v_srtdeel_binding
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_verwijder IS NULL
|
||
AND ins_srtdeel_module = 'INS'
|
||
AND ins_srtgroep_key = v_srtgroep_key
|
||
AND UPPER (TRIM (ins_srtdeel_omschrijving)) = UPPER (rec.ins_srtdeel_omschrijving);
|
||
|
||
v_locatie_key := NULL;
|
||
v_gebouw_key := NULL;
|
||
v_verdieping_key := NULL;
|
||
v_ruimte_key := NULL;
|
||
v_ruimte_type := NULL;
|
||
|
||
IF BITAND (v_srtdeel_binding, 1) = 1 AND rec.alg_locatie_code IS NOT NULL
|
||
THEN -- Ruimtegebonden object
|
||
v_errormsg := 'Fout bepalen locatie [' || rec.alg_locatie_code || ']';
|
||
|
||
SELECT alg_locatie_key
|
||
INTO v_locatie_key
|
||
FROM alg_v_aanweziglocatie
|
||
WHERE UPPER (TRIM (alg_locatie_code)) = UPPER (rec.alg_locatie_code);
|
||
|
||
v_errormsg := 'Fout bepalen gebouw [' || rec.alg_gebouw_code || ']';
|
||
|
||
SELECT alg_gebouw_key
|
||
INTO v_gebouw_key
|
||
FROM alg_v_aanweziggebouw
|
||
WHERE alg_locatie_key = v_locatie_key
|
||
AND UPPER (TRIM (alg_gebouw_code)) = UPPER (rec.alg_gebouw_code);
|
||
|
||
v_errormsg := 'Fout bepalen verdieping [' || rec.alg_verdieping_volgnr || ']';
|
||
|
||
SELECT alg_verdieping_key
|
||
INTO v_verdieping_key
|
||
FROM alg_v_aanwezigverdieping
|
||
WHERE alg_gebouw_key = v_gebouw_key
|
||
AND alg_verdieping_volgnr = rec.alg_verdieping_volgnr;
|
||
|
||
v_errormsg := 'Fout bepalen ruimte [' || rec.alg_ruimte_nr || ']';
|
||
|
||
SELECT alg_ruimte_key
|
||
INTO v_ruimte_key
|
||
FROM alg_v_aanwezigruimte
|
||
WHERE alg_verdieping_key = v_verdieping_key
|
||
AND TRIM (alg_ruimte_upper_nr) = UPPER (rec.alg_ruimte_nr);
|
||
|
||
-- Ruimtegebonden objecten hebben een unieke ID (bij MN; in FACILITOR moet dat binnen locatie)!
|
||
v_ruimte_type := 'R';
|
||
v_errormsg := 'Fout (uniek) bepalen R-object';
|
||
ELSIF BITAND (v_srtdeel_binding, 8) = 8 AND rec.prs_perslid_matchcode = 'A' -- Afdelinsgebonden object
|
||
THEN
|
||
v_errormsg := 'Fout bepalen afdeling [' || rec.prs_perslid_matchwaarde || ']';
|
||
|
||
SELECT prs_afdeling_key
|
||
INTO v_ruimte_key
|
||
FROM prs_afdeling
|
||
WHERE prs_afdeling_verwijder IS NULL
|
||
AND prs_afdeling_upper = UPPER (rec.prs_perslid_matchwaarde);
|
||
|
||
-- Afdelingsgebonden objecten hebben een unieke ID!
|
||
v_ruimte_type := 'A';
|
||
v_errormsg := 'Fout (uniek) bepalen A-object';
|
||
ELSIF BITAND (v_srtdeel_binding, 16) = 16 AND rec.prs_perslid_matchcode = 'P' -- Persoonsgebonden object
|
||
THEN
|
||
v_errormsg := 'Fout bepalen persoon [' || rec.prs_perslid_matchwaarde || ']';
|
||
|
||
SELECT prs_perslid_key
|
||
INTO v_ruimte_key
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
AND prs_perslid_oslogin = UPPER (rec.prs_perslid_matchwaarde);
|
||
|
||
-- Persoonsgebonden objecten hebben een unieke ID!
|
||
v_ruimte_type := 'P';
|
||
v_errormsg := 'Fout (uniek) bepalen P-object';
|
||
END IF;
|
||
|
||
IF v_ruimte_key IS NULL
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'W', v_aanduiding || 'Fout bepalen R-, A- of P-binding', COALESCE (rec.prs_perslid_matchcode, 'R'));
|
||
ELSE
|
||
SELECT COUNT ( * )
|
||
INTO ccount
|
||
FROM ins_v_aanwezigdeel
|
||
WHERE ins_deel_module = 'INS'
|
||
AND ins_srtdeel_key = v_srtdeel_key
|
||
AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving);
|
||
|
||
IF ccount = 0 -- Object bestaat nog niet, dus toevoegen!
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen INS-object';
|
||
|
||
INSERT INTO ins_deel (ins_discipline_key,
|
||
ins_srtdeel_key,
|
||
ins_deel_module,
|
||
ins_deel_omschrijving,
|
||
ins_deel_opmerking,
|
||
ins_alg_ruimte_key,
|
||
ins_alg_ruimte_type,
|
||
ins_alg_locatie_key)
|
||
VALUES (v_discipline_key,
|
||
v_srtdeel_key,
|
||
'INS',
|
||
rec.ins_deel_omschrijving,
|
||
rec.ins_deel_opmerking,
|
||
v_ruimte_key,
|
||
v_ruimte_type,
|
||
v_locatie_key)
|
||
RETURNING ins_deel_key
|
||
INTO v_deel_key;
|
||
COMMIT;
|
||
|
||
--v_srtnoti_code := 'INSNEW';
|
||
v_count_create := v_count_create + 1;
|
||
ELSE -- Object bestaat reeds!
|
||
v_errormsg := 'Fout bijwerken INS-object';
|
||
|
||
SELECT d.ins_deel_key
|
||
INTO v_deel_key
|
||
FROM ins_deel d
|
||
WHERE ins_deel_verwijder IS NULL
|
||
AND ins_deel_module = 'INS'
|
||
AND ins_srtdeel_key = v_srtdeel_key
|
||
AND TRIM (ins_deel_upper) = UPPER (rec.ins_deel_omschrijving);
|
||
|
||
UPDATE ins_deel
|
||
SET ins_alg_ruimte_key = v_ruimte_key,
|
||
ins_alg_ruimte_type = v_ruimte_type,
|
||
ins_deel_opmerking = rec.ins_deel_opmerking,
|
||
ins_deel_vervaldatum = NULL,
|
||
ins_alg_locatie_key = v_locatie_key,
|
||
ins_alg_ruimte_key_org = NULL,
|
||
ins_alg_ruimte_type_org = NULL
|
||
WHERE ins_deel_key = v_deel_key;
|
||
COMMIT;
|
||
|
||
--v_srtnoti_code := 'INSUPD';
|
||
v_count_update := v_count_update + 1;
|
||
END IF;
|
||
|
||
-- NULL-waarden resulteren NIET in het wissen van kenmerkvelden
|
||
-- (bijwerken kan wel, maar wissen dus niet)!
|
||
upsert_inskenmerk (v_deel_key, 24, rec.ins_kenmerkwaarde1); -- Status
|
||
upsert_inskenmerk (v_deel_key, 41, rec.ins_kenmerkwaarde2); -- Reden bij status
|
||
upsert_inskenmerk (v_deel_key, 1, rec.ins_kenmerkwaarde3); -- Serienummer
|
||
upsert_inskenmerk (v_deel_key, 21, rec.ins_kenmerkwaarde4); -- Model
|
||
upsert_inskenmerk (v_deel_key, 25, rec.ins_kenmerkwaarde5); -- Aanschafdatum
|
||
upsert_inskenmerk (v_deel_key, 26, rec.ins_kenmerkwaarde6); -- Ordernummer
|
||
upsert_inskenmerk (v_deel_key, 27, rec.ins_kenmerkwaarde7); -- Opmerkingen
|
||
upsert_inskenmerk (v_deel_key, 61, rec.ins_kenmerkwaarde8); -- Aanschafwaarde
|
||
END IF;
|
||
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, 'W', v_aanduiding || v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#ingelezen: ' || TO_CHAR (v_count_tot), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#toegevoegd: ' || TO_CHAR (v_count_create), '');
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#bijgewerkt: ' || TO_CHAR (v_count_update), '');
|
||
COMMIT;
|
||
END;
|
||
|
||
-- SUBPROC
|
||
PROCEDURE del_deel (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c1
|
||
IS
|
||
SELECT id.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_key,
|
||
ic.res_discipline_kostensoort -- Vervaldatum (ingelezen)!
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_v_aanwezigsrtdeel sd,
|
||
ins_v_aanwezigsrtgroep sg,
|
||
ins_discipline id,
|
||
fac_imp_ins ic
|
||
WHERE d.ins_deel_vervaldatum IS NULL -- Vervaldatum nog niet gezet!
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key = id.ins_discipline_key
|
||
AND id.ins_discipline_key = 1104 -- EndUser Asset
|
||
AND d.ins_deel_omschrijving NOT LIKE '%NIET GEBRUIKEN%'
|
||
AND ic.res_discipline_kostensoort IS NOT NULL -- Vervaldatum gezet!
|
||
AND UPPER (ic.ins_deel_omschrijving) = d.ins_deel_upper
|
||
AND UPPER (ic.ins_srtdeel_omschrijving) = sd.ins_srtdeel_upper
|
||
AND UPPER (ic.ins_srtgroep_omschrijving) = sg.ins_srtgroep_upper
|
||
AND UPPER (ic.ins_discipline_omschrijving) = UPPER (id.ins_discipline_omschrijving)
|
||
ORDER BY 1, 2, 4, 5;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_aanduiding VARCHAR2 (500):= '';
|
||
v_count_delete NUMBER (10) := 0;
|
||
BEGIN
|
||
FOR rec IN c1
|
||
LOOP
|
||
BEGIN
|
||
v_aanduiding :=
|
||
'['
|
||
|| rec.ins_discipline_omschrijving
|
||
|| '|'
|
||
|| rec.ins_srtgroep_omschrijving
|
||
|| '|'
|
||
|| rec.ins_srtdeel_code
|
||
|| '|'
|
||
|| rec.ins_srtdeel_omschrijving
|
||
|| '|'
|
||
|| rec.ins_deel_omschrijving
|
||
|| '] ';
|
||
v_errormsg := 'Fout verwijderen INS-object';
|
||
|
||
--DELETE FROM ins_deel
|
||
-- WHERE ins_deel_key = rec.ins_deel_key;
|
||
UPDATE ins_deel
|
||
SET ins_deel_vervaldatum = fac.safe_to_date (rec.res_discipline_kostensoort, 'dd-mm-yyyy')
|
||
WHERE ins_deel_key = rec.ins_deel_key
|
||
AND ins_deel_vervaldatum IS NULL;
|
||
COMMIT;
|
||
|
||
v_count_delete := v_count_delete + 1;
|
||
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, 'W', v_aanduiding || v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.imp_writelog (p_import_key, 'S', 'INS-Objecten/#verwijderd: ' || TO_CHAR (v_count_delete), '');
|
||
COMMIT;
|
||
END;
|
||
-- MAIN
|
||
BEGIN
|
||
-- Generieke update.
|
||
SELECT COUNT ( * ) INTO v_count FROM fac_imp_ins;
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
fac.imp_writelog (p_import_key, 'E', 'Niets te importeren!', '');
|
||
RETURN;
|
||
END IF;
|
||
|
||
--add_insdiscipline (p_import_key);
|
||
add_srtgroep (p_import_key);
|
||
add_srtdeel (p_import_key);
|
||
add_deel (p_import_key);
|
||
del_deel (p_import_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 EUA-objecten afgebroken!');
|
||
END mnnl_update_eua;
|
||
/
|
||
|
||
|
||
-- MNNL#41653: Mail2Melding voor 2 stromen (nimbus@ + hr@).
|
||
-- MNNL#53176: Mail2Existing ticket/notitie (melding@).
|
||
-- MNNL#55078: Mail2Existing ticket/afmelden (melding@).
|
||
-- MNNL#61759: FASE1/ServiceNow-koppeling/Mail2Existing opdracht (sogeti@).
|
||
-- MNNL#61759: FASE2/ServiceNow-koppeling/Mail2Melding (snow@).
|
||
-- MNNL#71193: Gereed-datum op basis van content van mail (hr@).
|
||
CREATE OR REPLACE PROCEDURE MNNL_processemail (
|
||
pfrom IN VARCHAR2,
|
||
pto IN VARCHAR2,
|
||
psubject IN VARCHAR2,
|
||
pbody IN VARCHAR2,
|
||
psessionid IN VARCHAR2,
|
||
pemailkey IN NUMBER)
|
||
AS
|
||
-- soortmeldingen 681+682 onder vakgroepen 1321+1322 onder vakgroeptype 81!
|
||
c_sogeti_key NUMBER (10) := 22824;
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER (10);
|
||
v_vakgroep VARCHAR2 (255) := '';
|
||
v_message VARCHAR2 (255) := '';
|
||
v_ci VARCHAR2 (255) := '';
|
||
v_leidinggevende VARCHAR2 (255) := '';
|
||
v_melding VARCHAR2 (255) := '';
|
||
v_medewerker VARCHAR2 (255) := '';
|
||
v_ingangsdatum VARCHAR2 (255) := '';
|
||
v_vrijstellingsdatum VARCHAR2 (255) := '';
|
||
v_exist_ticket VARCHAR2 (255) := '';
|
||
v_afmeldactie NUMBER (10);
|
||
v_afmeldtekst VARCHAR2 (4000) := '';
|
||
v_perslid_key NUMBER (10);
|
||
v_perslid_naam_friendly VARCHAR2 (255);
|
||
v_kostenplaats_key NUMBER (10);
|
||
v_discipline_key NUMBER (10);
|
||
v_stdmelding_key NUMBER (10);
|
||
v_onderwerp VARCHAR2 (255);
|
||
v_deel_key NUMBER (10);
|
||
--v_onrgoed_keys NUMBER (10);
|
||
--v_onrgoed_type VARCHAR2 (1);
|
||
--v_locatie_key NUMBER (10);
|
||
v_melding_key NUMBER (10);
|
||
v_melding_status NUMBER (10);
|
||
v_open_opdr NUMBER (10);
|
||
v_opdracht_id VARCHAR2 (30) := '';
|
||
v_opdracht_key NUMBER (10);
|
||
v_opdracht_status NUMBER (10);
|
||
v_kenmerk_key NUMBER (10);
|
||
v_kenmerkopdr_key NUMBER (10);
|
||
v_refnr_lev VARCHAR2 (30);
|
||
--v_kosten NUMBER (9, 2);
|
||
v_behandeling VARCHAR2 (4000) := '';
|
||
v_afhandeling VARCHAR2 (4000) := '';
|
||
BEGIN
|
||
CASE
|
||
WHEN UPPER (pto) LIKE 'NIMBUS@%'
|
||
THEN
|
||
v_errormsg := 'Fout bepalen Nimbus-vakgroep';
|
||
IF INSTR (pbody, '@VAKGROEP:') > 0
|
||
THEN
|
||
v_vakgroep := TRIM (SUBSTR (pbody,
|
||
INSTR (pbody, '@VAKGROEP:') + 10,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@VAKGROEP:') + 10), '#') - 1));
|
||
ELSE
|
||
v_vakgroep := '';
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen Nimbus-message';
|
||
IF INSTR (pbody, '@MESSAGE:') > 0
|
||
THEN
|
||
v_message := TRIM (SUBSTR (pbody,
|
||
INSTR (pbody, '@MESSAGE:') + 9,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@MESSAGE:') + 9), '#') - 1));
|
||
ELSE
|
||
v_message := '';
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen Nimbus-CI';
|
||
IF INSTR (pbody, '@CI:') > 0
|
||
THEN
|
||
v_ci := TRIM (SUBSTR (pbody,
|
||
INSTR (pbody, '@CI:') + 4,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@CI:') + 4), '#') - 1));
|
||
ELSE
|
||
v_ci := '';
|
||
END IF;
|
||
|
||
-- Bepaal persoon met key=12784 (Monitoring NimBUS)?
|
||
v_errormsg := 'Fout bepalen Nimbus-melder';
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
|
||
INTO v_perslid_key, v_kostenplaats_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
||
WHERE p.prs_perslid_key = 12784
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key;
|
||
|
||
-- Bepaal MIN (soortmelding) onder vakgroep met omschrijving zoals in
|
||
-- pbody achter @VAKGROEP?
|
||
v_errormsg := 'Fout bepalen Nimbus-soortmelding ' || COALESCE (v_vakgroep, '???');
|
||
SELECT sm.mld_ins_discipline_key, MIN (sm.mld_stdmelding_key)
|
||
INTO v_discipline_key, v_stdmelding_key
|
||
FROM mld_discipline md, mld_stdmelding sm
|
||
WHERE md.ins_discipline_verwijder IS NULL
|
||
AND md.ins_srtdiscipline_key = 81 -- Event
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND UPPER (md.ins_discipline_omschrijving) LIKE UPPER (v_vakgroep) || '%'
|
||
GROUP BY sm.mld_ins_discipline_key;
|
||
|
||
v_errormsg := 'Fout bepalen Nimbus-onderwerp';
|
||
v_onderwerp := v_message;
|
||
|
||
-- Bepaal evt. object met omschrijving zoals in pbody achter @CI?
|
||
-- Alleen objecten onder Applicatie/Server/Database/EndUser Asset met
|
||
-- keys 1101 t/m 1104 worden beschouwd!
|
||
v_errormsg := 'Fout bepalen Nimbus-CI ' || COALESCE (v_ci, '???');
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM ins_v_aanwezigdeel d, ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg
|
||
WHERE d.ins_deel_vervaldatum IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key IN (1101, 1102, 1103, 1104)
|
||
AND d.ins_deel_upper = UPPER (v_ci);
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
SELECT d.ins_deel_key--, d.ins_alg_ruimte_key, d.ins_alg_ruimte_type
|
||
INTO v_deel_key--, v_onrgoed_keys, v_onrgoed_type
|
||
FROM ins_v_aanwezigdeel d, ins_v_aanwezigsrtdeel sd, ins_v_aanwezigsrtgroep sg
|
||
WHERE d.ins_deel_vervaldatum IS NULL
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
|
||
AND sg.ins_discipline_key IN (1101, 1102, 1103, 1104)
|
||
AND d.ins_deel_upper = UPPER (v_ci);
|
||
ELSIF v_ci IS NOT NULL
|
||
THEN
|
||
fac.writelog ('PROCESSEMAIL', 'W', v_errormsg, '');
|
||
END IF;
|
||
|
||
-- 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
|
||
v_errormsg := 'Fout toevoegen Nimbus-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)
|
||
VALUES ('MLD',
|
||
4, -- email
|
||
2, --v_locatie_key,
|
||
NULL, --v_onrgoed_keys,
|
||
SYSDATE,
|
||
SUBSTR (pfrom || CHR (13) || CHR (10) || pbody, 1, 4000),
|
||
v_stdmelding_key,
|
||
NULL,
|
||
v_kostenplaats_key,
|
||
v_perslid_key,
|
||
v_perslid_key,
|
||
NULL,
|
||
3, -- prio normaal
|
||
SUBSTR (v_onderwerp, 1, 80))
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
IF v_deel_key IS NOT NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen Nimbus-object';
|
||
INSERT INTO mld_melding_object (mld_melding_key, ins_deel_key)
|
||
VALUES (v_melding_key, v_deel_key);
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bijwerken melding-status';
|
||
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);
|
||
WHEN UPPER (pto) LIKE 'HR@%'
|
||
THEN
|
||
v_errormsg := 'Fout bepalen HR-leidinggevende';
|
||
IF INSTR (pbody, '@LEIDINGGEVENDE:') > 0
|
||
THEN
|
||
--v_leidinggevende := TRIM (SUBSTR (pbody,
|
||
-- INSTR (pbody, '@LEIDINGGEVENDE:') + 16,
|
||
-- INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@LEIDINGGEVENDE:') + 16), '#') - 1));
|
||
v_leidinggevende := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '@LEIDINGGEVENDE:') + 16)),
|
||
1,
|
||
REGEXP_INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '@LEIDINGGEVENDE:') + 16)) || ' ', '\s') - 1);
|
||
ELSE
|
||
v_leidinggevende := '';
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen HR-melding';
|
||
IF INSTR (pbody, '@MELDING:') > 0
|
||
THEN
|
||
-- Pak 100 tekens (anders dan whitespace) in pbody na 1e voorkomen van @MELDING: en plaats daarachter een '#'.
|
||
-- Een standaardmelding is max. 60 tekens, dus buffer is groot genoeg!
|
||
v_melding := TRIM (SUBSTR (pbody, INSTR (pbody, '@MELDING:') + 9, 100)) || '#';
|
||
-- Vervang newlines [CHR (13) en/of CHR (10)] door # en pak gedeelte tot 1e #.
|
||
-- In principe dus tot 1e newline en anders tot # geplaatst op eind van buffer.
|
||
v_melding := SUBSTR (v_melding, 1, INSTR (REPLACE (REPLACE (v_melding, CHR (13), '#'), CHR (10), '#'), '#') - 1);
|
||
ELSE
|
||
v_melding := '';
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen HR-medewerker';
|
||
IF INSTR (pbody, '@MEDEWERKER:') > 0
|
||
THEN
|
||
-- Pak 100 tekens (anders dan whitespace) in pbody na 1e voorkomen van @MEDEWERKER: en plaats daarachter een '#'.
|
||
-- @MEDEWERKER komt in onderwerp en is max. 80 tekens, dus buffer is groot genoeg!
|
||
v_medewerker := TRIM (SUBSTR (pbody, INSTR (pbody, '@MEDEWERKER:') + 12, 100)) || '#';
|
||
-- Vervang newlines [CHR (13) en/of CHR (10)] door # en pak gedeelte tot 1e #.
|
||
-- In principe dus tot 1e newline en anders tot # geplaatst op eind van buffer.
|
||
v_medewerker := SUBSTR (v_medewerker, 1, INSTR (REPLACE (REPLACE (v_medewerker, CHR (13), '#'), CHR (10), '#'), '#') - 1);
|
||
ELSE
|
||
v_medewerker := '?';
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen HR-ingangsdatum';
|
||
IF INSTR (pbody, '@INGANGSDATUM:') > 0
|
||
THEN
|
||
--v_ingangsdatum := TRIM (SUBSTR (pbody,
|
||
-- INSTR (pbody, '@INGANGSDATUM:') + 14,
|
||
-- INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@INGANGSDATUM:') + 14), '#') - 1));
|
||
v_ingangsdatum := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '@INGANGSDATUM:') + 14)),
|
||
1,
|
||
REGEXP_INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '@INGANGSDATUM:') + 14)) || ' ', '\s') - 1);
|
||
ELSE
|
||
v_ingangsdatum := '?';
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen HR-vrijstellingsdatum';
|
||
IF INSTR (pbody, '@VRIJSTELLINGSDATUM:') > 0
|
||
THEN
|
||
--v_vrijstellingsdatum := TRIM (SUBSTR (pbody,
|
||
-- INSTR (pbody, '@VRIJSTELLINGSDATUM:') + 20,
|
||
-- INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (pbody, '@VRIJSTELLINGSDATUM:') + 20), '#') - 1));
|
||
v_vrijstellingsdatum := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '@VRIJSTELLINGSDATUM:') + 20)),
|
||
1,
|
||
REGEXP_INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '@VRIJSTELLINGSDATUM:') + 20)) || ' ', '\s') - 1);
|
||
ELSE
|
||
v_vrijstellingsdatum := '';
|
||
END IF;
|
||
|
||
-- Bepaal de melder op basis van loginnaam zoals in pbody achter
|
||
-- @LEIDINGGEVENDE?
|
||
v_errormsg := 'Fout bepalen HR-melder ' || COALESCE (v_leidinggevende, '???');
|
||
SELECT p.prs_perslid_key, pf.prs_perslid_naam_friendly, a.prs_kostenplaats_key
|
||
INTO v_perslid_key, v_perslid_naam_friendly, v_kostenplaats_key
|
||
FROM prs_v_aanwezigperslid p, prs_v_perslid_fullnames_all pf, prs_afdeling a
|
||
WHERE p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_perslid_oslogin = UPPER (v_leidinggevende);
|
||
|
||
-- Bepaal MIN (soortmelding) onder vakgroep met omschrijving zoals in
|
||
-- pbody achter @MELDING?
|
||
v_errormsg := 'Fout bepalen HR-soortmelding ' || COALESCE (v_melding, '???');
|
||
SELECT sm.mld_ins_discipline_key, MIN (sm.mld_stdmelding_key)
|
||
INTO v_discipline_key, v_stdmelding_key
|
||
FROM mld_discipline md, mld_stdmelding sm
|
||
WHERE md.ins_discipline_verwijder IS NULL
|
||
AND md.ins_srtdiscipline_key = 21 -- Service Request
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sm.mld_stdmelding_upper = UPPER (v_melding)
|
||
GROUP BY sm.mld_ins_discipline_key;
|
||
|
||
v_errormsg := 'Fout bepalen HR-onderwerp';
|
||
v_onderwerp := v_melding || ': ' || v_medewerker || ' per ' || v_ingangsdatum;
|
||
|
||
-- 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
|
||
v_errormsg := 'Fout toevoegen HR-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,
|
||
mld_melding_einddatum,
|
||
prs_kostenplaats_key,
|
||
prs_perslid_key,
|
||
prs_perslid_key_voor,
|
||
mld_melding_status,
|
||
mld_melding_spoed,
|
||
mld_melding_onderwerp)
|
||
VALUES ('MLD',
|
||
4, -- email
|
||
2, --v_locatie_key,
|
||
NULL, --v_onrgoed_keys,
|
||
SYSDATE,
|
||
pfrom || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000),
|
||
v_stdmelding_key,
|
||
NULL,
|
||
COALESCE (fac.safe_to_date (SUBSTR (v_vrijstellingsdatum, 1, 10), 'dd-mm-yyyy'), fac.safe_to_date (SUBSTR (v_ingangsdatum, 1, 10), 'dd-mm-yyyy')),
|
||
v_kostenplaats_key,
|
||
v_perslid_key,
|
||
v_perslid_key,
|
||
NULL,
|
||
DECODE (fac.safe_to_date (SUBSTR (v_vrijstellingsdatum, 1, 10), 'dd-mm-yyyy'), NULL, 3, 2), -- prio normaal of hoog
|
||
SUBSTR (v_onderwerp, 1, 80))
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
|
||
v_errormsg := 'Fout bijwerken melding-status';
|
||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||
|
||
-- Handle workflow actions for completion.
|
||
MLD.mld_nextworkflowstep (v_melding_key, -1); -- -1=Initial
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
||
WHEN UPPER (pto) LIKE 'MELDING@%'
|
||
THEN
|
||
v_errormsg := 'Fout bepalen existing ticket';
|
||
IF INSTR (UPPER (psubject), 'MELDING') > 0
|
||
THEN
|
||
v_exist_ticket := TRIM (SUBSTR (psubject, INSTR (UPPER (psubject), 'MELDING') + 7)); -- Gedeelte vanaf eerste voorkomen van 'MELDING' in psubject!
|
||
IF REGEXP_INSTR (v_exist_ticket, '\d') > 0
|
||
THEN
|
||
v_exist_ticket := SUBSTR (v_exist_ticket, REGEXP_INSTR (v_exist_ticket, '\d')) || 'x'; -- Gedeelte vanaf eerste cijfer in v_exist_ticket plus 'x'!
|
||
v_exist_ticket := SUBSTR (v_exist_ticket, 1, REGEXP_INSTR (v_exist_ticket, '\D') - 1); -- Gedeelte tot eerste niet-cijfer in v_exist_ticket!
|
||
ELSE
|
||
v_exist_ticket := 'x';
|
||
END IF;
|
||
ELSE
|
||
v_exist_ticket := 'x';
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen afmeldactie';
|
||
v_afmeldactie := INSTR (UPPER (psubject), '#AFMELDEN');
|
||
|
||
v_errormsg := 'Fout bepalen afmeldtekst';
|
||
IF INSTR (UPPER (pbody), '@AFMELDTEKST:') > 0
|
||
THEN
|
||
v_afmeldtekst := TRIM (SUBSTR (pbody,
|
||
INSTR (UPPER (pbody), '@AFMELDTEKST:') + 13,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (UPPER (pbody), '@AFMELDTEKST:') + 13), '#') - 1));
|
||
ELSE
|
||
v_afmeldtekst := '';
|
||
END IF;
|
||
|
||
-- Bepaal de noteur op basis van e-mail adres zoals in pfrom?
|
||
v_errormsg := 'Fout bepalen noteur ' || COALESCE (pfrom, '???');
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
|
||
INTO v_perslid_key, v_kostenplaats_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND UPPER (p.prs_perslid_email) LIKE '%' || UPPER (pfrom) || '%';
|
||
|
||
-- Bepaal bestaande melding?
|
||
v_errormsg := 'Fout bepalen melding ' || COALESCE (v_exist_ticket, '???');
|
||
SELECT m.mld_melding_key, m.mld_melding_status,
|
||
(SELECT COUNT ( * )
|
||
FROM mld_opdr
|
||
WHERE TO_CHAR (mld_melding_key) = v_exist_ticket
|
||
AND mld_statusopdr_key NOT IN (1, 2, 6, 7)), -- Open
|
||
sm.mld_ins_discipline_key
|
||
INTO v_melding_key, v_melding_status, v_open_opdr, v_discipline_key
|
||
FROM mld_melding m, mld_stdmelding sm
|
||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND TO_CHAR (m.mld_melding_key) = v_exist_ticket;
|
||
|
||
-- Als bestaande Sogeti-opdracht, dan ook toevoegen Opdracht-notitie
|
||
-- en eventueel afmelden!
|
||
v_errormsg := 'Fout bepalen Sogeti-opdracht';
|
||
v_opdracht_id := SUBSTR (TRIM (SUBSTR (psubject, INSTR (psubject, 'MELDING') + 7)), 1, REGEXP_INSTR (TRIM (SUBSTR (psubject, INSTR (psubject, 'MELDING') + 7)) || ' ', '\s') - 1);
|
||
|
||
v_errormsg := 'Fout bepalen Sogeti-opdracht ' || v_opdracht_id;
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM mld_opdr
|
||
WHERE mld_uitvoerende_keys = 22644 -- Sogeti
|
||
AND TO_CHAR (mld_melding_key) || '/' || TO_CHAR (mld_opdr_bedrijfopdr_volgnr) = SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d'));
|
||
|
||
IF v_count = 1
|
||
THEN
|
||
SELECT mld_opdr_key, mld_statusopdr_key
|
||
INTO v_opdracht_key, v_opdracht_status
|
||
FROM mld_opdr
|
||
WHERE mld_uitvoerende_keys = 22644 -- Sogeti
|
||
AND TO_CHAR (mld_melding_key) || '/' || TO_CHAR (mld_opdr_bedrijfopdr_volgnr) = SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d'));
|
||
|
||
v_errormsg := 'Fout toevoegen opdracht-notitie';
|
||
INSERT INTO mld_opdr_note (mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving)
|
||
VALUES (v_opdracht_key, v_perslid_key, pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000));
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Notitie onder exist-opdracht ' || v_opdracht_id);
|
||
|
||
-- Sogeti-opdracht afmelden?
|
||
IF v_afmeldactie > 0
|
||
THEN
|
||
-- Bepaal of noteur deze opdracht zou mogen afmelden?
|
||
v_errormsg := 'Fout bepalen opdracht-autorisaties';
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM fac_gebruikersgroep gg, fac_groeprechten gr
|
||
WHERE gg.prs_perslid_key = v_perslid_key
|
||
AND gr.fac_groep_key = gg.fac_groep_key
|
||
AND gr.fac_functie_key IN (38, 39, 321) -- ORDBOF/ORDBO2/EXTORD
|
||
AND gr.ins_discipline_key = v_discipline_key
|
||
AND gr.fac_gebruiker_prs_level_write < 9
|
||
AND gr.fac_gebruiker_alg_level_write < 9;
|
||
|
||
-- Opdracht is Toegekend/Geaccepteerd <20>n geautoriseerd?
|
||
IF v_opdracht_status IN (5, 8) AND v_count > 0
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen opdracht-afmeldtekst';
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking = v_afmeldtekst || CHR (13) || CHR (10) || SUBSTR (mld_opdr_opmerking, 1, 1995)
|
||
WHERE mld_opdr_key = v_opdracht_key;
|
||
|
||
v_errormsg := 'Fout afmelden opdracht';
|
||
MLD.setopdrachtstatus (v_opdracht_key, 6, v_perslid_key); -- Afgemeld
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Exist-opdracht naar afgemeld ' || v_opdracht_id);
|
||
ELSE
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Exist-opdracht NIET afgemeld ' || v_opdracht_id);
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout toevoegen melding-notitie';
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
prs_perslid_key,
|
||
mld_melding_note_omschrijving,
|
||
mld_melding_note_flag)
|
||
VALUES (v_melding_key,
|
||
v_perslid_key,
|
||
pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000),
|
||
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', 'Notitie onder exist-melding ' || v_melding_key);
|
||
|
||
-- Als Sogeti de noteur is, dan vlaggetjes zetten zoals mld_edit_note.asp dat doet!
|
||
BEGIN
|
||
IF v_perslid_key = c_sogeti_key AND 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;
|
||
|
||
-- Melding afmelden?
|
||
IF v_afmeldactie > 0
|
||
THEN
|
||
-- Bepaal of noteur deze melding zou mogen afmelden?
|
||
v_errormsg := 'Fout bepalen autorisaties';
|
||
SELECT COUNT (*)
|
||
INTO v_count
|
||
FROM fac_gebruikersgroep gg, fac_groeprechten gr
|
||
WHERE gg.prs_perslid_key = v_perslid_key
|
||
AND gr.fac_groep_key = gg.fac_groep_key
|
||
AND gr.fac_functie_key = 34 -- MLDBOF
|
||
AND gr.ins_discipline_key = v_discipline_key
|
||
AND gr.fac_gebruiker_prs_level_write < 9
|
||
AND gr.fac_gebruiker_alg_level_write < 9;
|
||
|
||
-- Melding is niet al Afgemeld/Verwerkt, g<><67>n open opdrachten <20>n geautoriseerd?
|
||
IF v_melding_status NOT IN (5, 6) AND v_open_opdr = 0 AND v_count > 0
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen afmeldtekst';
|
||
UPDATE mld_melding
|
||
SET mld_melding_opmerking = v_afmeldtekst
|
||
WHERE mld_melding_key = v_melding_key;
|
||
|
||
v_errormsg := 'Fout afmelden melding';
|
||
mld.setmeldingstatus (v_melding_key, 5, v_perslid_key);
|
||
mld.mld_nextworkflowstep (v_melding_key, 1); -- 1=Completed
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Exist-melding naar afgemeld ' || v_melding_key);
|
||
ELSE
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Exist-melding NIET afgemeld ' || v_melding_key);
|
||
END IF;
|
||
END IF;
|
||
WHEN UPPER (pto) LIKE 'SOGETI@%'
|
||
THEN
|
||
-- Controleer bestaan afgesproken Sogeti-user!
|
||
v_errormsg := 'Fout bepalen Sogeti-user';
|
||
SELECT prs_perslid_key
|
||
INTO v_count
|
||
FROM prs_v_aanwezigperslid
|
||
WHERE prs_perslid_key = c_sogeti_key;
|
||
|
||
v_errormsg := 'Fout bepalen Sogeti-opdracht';
|
||
IF INSTR (psubject, '##FID:') > 0
|
||
THEN
|
||
v_opdracht_id := SUBSTR (TRIM (SUBSTR (psubject, INSTR (psubject, '##FID:') + 6)), 1, REGEXP_INSTR (TRIM (SUBSTR (psubject, INSTR (psubject, '##FID:') + 6)) || ' ', '\s') - 1);
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen Sogeti-opdracht ' || v_opdracht_id;
|
||
SELECT o.mld_melding_key, o.mld_opdr_key, o.mld_statusopdr_key, COALESCE (o2k.mld_kenmerk_key, -1)
|
||
INTO v_melding_key, v_opdracht_key, v_opdracht_status, v_kenmerk_key
|
||
FROM mld_opdr o,
|
||
(SELECT mld_typeopdr_key, mld_kenmerk_key
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_verwijder IS NULL
|
||
AND mld_srtkenmerk_key = 2141) o2k -- Refnr. leverancier
|
||
WHERE o.mld_uitvoerende_keys = 22644 -- Sogeti
|
||
AND TO_CHAR (o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) = SUBSTR (v_opdracht_id, REGEXP_INSTR (v_opdracht_id, '\d'))
|
||
AND o.mld_typeopdr_key = o2k.mld_typeopdr_key(+);
|
||
|
||
v_errormsg := 'Fout bepalen Sogeti-ref';
|
||
IF INSTR (pbody, '##SNID:') > 0 AND v_kenmerk_key IS NOT NULL
|
||
THEN
|
||
SELECT MAX (mld_kenmerkopdr_key)
|
||
INTO v_kenmerkopdr_key
|
||
FROM mld_v_aanwezigkenmerkopdr
|
||
WHERE mld_opdr_key = v_opdracht_key
|
||
AND mld_kenmerk_key = v_kenmerk_key;
|
||
|
||
v_refnr_lev := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##SNID:') + 7)), 1, REGEXP_INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##SNID:') + 7)) || ' ', '\s') - 1);
|
||
|
||
IF v_kenmerkopdr_key IS NULL
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen Sogeti-ref';
|
||
INSERT INTO mld_kenmerkopdr (mld_opdr_key, mld_kenmerk_key, mld_kenmerkopdr_waarde)
|
||
VALUES (v_opdracht_key, v_kenmerk_key, v_refnr_lev);
|
||
ELSE
|
||
v_errormsg := 'Fout bijwerken Sogeti-ref';
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = v_refnr_lev
|
||
WHERE mld_kenmerkopdr_key = v_kenmerkopdr_key;
|
||
END IF;
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen behandeling';
|
||
IF INSTR (pbody, '##BEHANDELING:') > 0
|
||
THEN
|
||
v_behandeling := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##BEHANDELING:') + 14)), 1, LEAST (INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##BEHANDELING:') + 14)) || '##', '##') - 1, 2000));
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout toevoegen opdracht-notitie';
|
||
INSERT INTO mld_opdr_note (mld_opdr_key, prs_perslid_key, mld_opdr_note_omschrijving)
|
||
VALUES (v_opdracht_key, c_sogeti_key, pfrom || CHR (13) || CHR (10) || psubject || CHR (13) || CHR (10) || v_behandeling);
|
||
|
||
v_errormsg := 'Fout bepalen afhandeling';
|
||
IF INSTR (pbody, '##AFHANDELING:') > 0
|
||
THEN
|
||
v_afhandeling := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##AFHANDELING:') + 14)), 1, LEAST (INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##AFHANDELING:') + 14)) || '##', '##') - 1, 2000));
|
||
IF INSTR (UPPER (v_afhandeling), 'RESOLUTION NOTES:') > 0
|
||
THEN
|
||
v_afhandeling := TRIM (SUBSTR (v_afhandeling, INSTR (UPPER (v_afhandeling), 'RESOLUTION NOTES:') + 17));
|
||
IF INSTR (UPPER (v_afhandeling), 'REF:', -1) > 0
|
||
THEN
|
||
v_afhandeling := TRIM (SUBSTR (v_afhandeling, 1, INSTR (UPPER (v_afhandeling), 'REF:', -1) - 1));
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
IF INSTR (UPPER (psubject), '##AFMELDEN') > 0 AND v_opdracht_status IN (5, 8) -- Toegekend/Geaccepteerd
|
||
THEN
|
||
v_errormsg := 'Fout toevoegen opdracht-afhandeling';
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_opmerking = v_afhandeling || CHR (13) || CHR (10) || SUBSTR (mld_opdr_opmerking, 1, 1995)
|
||
WHERE mld_opdr_key = v_opdracht_key;
|
||
|
||
--v_errormsg := 'Fout toevoegen melding-afhandeling';
|
||
--UPDATE mld_melding
|
||
-- SET mld_melding_opmerking = v_afhandeling || CHR (13) || CHR (10) || SUBSTR (mld_melding_opmerking, 1, 1995)
|
||
-- WHERE mld_melding_key = v_melding_key;
|
||
|
||
v_errormsg := 'Fout toevoegen melding-notitie';
|
||
INSERT INTO mld_melding_note (mld_melding_key,
|
||
prs_perslid_key,
|
||
mld_melding_note_omschrijving,
|
||
mld_melding_note_flag)
|
||
VALUES (v_melding_key,
|
||
c_sogeti_key,
|
||
v_afhandeling,
|
||
0);
|
||
|
||
v_errormsg := 'Fout bijwerken opdracht-status';
|
||
MLD.setopdrachtstatus (v_opdracht_key, 6, c_sogeti_key); -- Afgemeld
|
||
|
||
--v_errormsg := 'Fout bijwerken melding-status'; -- MNNL#61759: Besloten de bovenliggende melding niet te sluiten!
|
||
--MLD.updatemeldingstatus (v_melding_key, 1, NULL);
|
||
END IF;
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Status/voortgang bijgewerkt bij opdracht: ' || v_opdracht_id);
|
||
WHEN UPPER (pto) LIKE 'SNOW@%'
|
||
THEN
|
||
-- Controleer bestaan afgesproken Sogeti-user!
|
||
v_errormsg := 'Fout bepalen Sogeti-user';
|
||
SELECT p.prs_perslid_key, a.prs_kostenplaats_key
|
||
INTO v_perslid_key, v_kostenplaats_key
|
||
FROM prs_v_aanwezigperslid p, prs_afdeling a
|
||
WHERE p.prs_perslid_key = c_sogeti_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key;
|
||
|
||
v_errormsg := 'Fout bepalen melding';
|
||
IF INSTR (UPPER (pbody), '@MELDING:') > 0
|
||
THEN
|
||
v_melding := TRIM (SUBSTR (pbody,
|
||
INSTR (UPPER (pbody), '@MELDING:') + 9,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (UPPER (pbody), '@MELDING:') + 9), '#') - 1));
|
||
ELSE
|
||
v_melding := '';
|
||
END IF;
|
||
|
||
v_errormsg := 'Fout bepalen onderwerp';
|
||
IF INSTR (UPPER (pbody), '@SHORT DESCRIPTION:') > 0
|
||
THEN
|
||
v_onderwerp := TRIM (SUBSTR (pbody,
|
||
INSTR (UPPER (pbody), '@SHORT DESCRIPTION:') + 19,
|
||
INSTR (SUBSTR (REPLACE (REPLACE (pbody, CHR (13), '#'), CHR (10), '#') || '#', INSTR (UPPER (pbody), '@SHORT DESCRIPTION:') + 19), '#') - 1));
|
||
ELSE
|
||
v_onderwerp := '';
|
||
END IF;
|
||
|
||
-- Bepaal MIN (soortmelding) onder vakgroep met omschrijving zoals in
|
||
-- pbody achter @MELDING?
|
||
v_errormsg := 'Fout bepalen soortmelding ' || COALESCE (v_melding, '???');
|
||
SELECT sm.mld_ins_discipline_key, MIN (sm.mld_stdmelding_key), MIN (COALESCE (m2k.mld_kenmerk_key, -1))
|
||
INTO v_discipline_key, v_stdmelding_key, v_kenmerk_key
|
||
FROM mld_discipline md, mld_stdmelding sm,
|
||
(SELECT mld_stdmelding_key, mld_kenmerk_key
|
||
FROM mld_kenmerk
|
||
WHERE mld_kenmerk_verwijder IS NULL
|
||
AND mld_srtkenmerk_key = -1) m2k -- Refnr. leverancier
|
||
WHERE md.ins_discipline_verwijder IS NULL
|
||
--AND md.ins_srtdiscipline_key = 21 -- Service Request
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
AND sm.mld_stdmelding_verwijder IS NULL
|
||
AND sm.mld_stdmelding_upper = UPPER (v_melding)
|
||
AND sm.mld_stdmelding_key = m2k.mld_stdmelding_key(+)
|
||
GROUP BY sm.mld_ins_discipline_key;
|
||
|
||
-- Suggested extensions:
|
||
-- - Check for MLDUSE-write autorisations
|
||
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)
|
||
VALUES ('MLD',
|
||
4, -- email
|
||
2, --v_locatie_key,
|
||
NULL, --v_onrgoed_keys,
|
||
SYSDATE,
|
||
pfrom || CHR (13) || CHR (10) || SUBSTR (pbody, 1, 2000),
|
||
v_stdmelding_key,
|
||
NULL,
|
||
v_kostenplaats_key,
|
||
v_perslid_key,
|
||
v_perslid_key,
|
||
NULL,
|
||
3, -- prio normaal
|
||
SUBSTR (v_onderwerp, 1, 80))
|
||
RETURNING mld_melding_key
|
||
INTO v_melding_key;
|
||
/*
|
||
v_errormsg := 'Fout bepalen Sogeti-ref';
|
||
IF INSTR (pbody, '##SNID:') > 0 AND v_kenmerk_key IS NOT NULL
|
||
THEN
|
||
v_refnr_lev := SUBSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##SNID:') + 7)), 1, REGEXP_INSTR (TRIM (SUBSTR (pbody, INSTR (pbody, '##SNID:') + 7)) || ' ', '\s') - 1);
|
||
|
||
v_errormsg := 'Fout toevoegen Sogeti-ref';
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_melding_key, v_kenmerk_key, v_refnr_lev);
|
||
END IF;
|
||
*/
|
||
v_errormsg := 'Fout bijwerken melding-status';
|
||
mld.setmeldingstatus (v_melding_key, 2, v_perslid_key);
|
||
|
||
-- Handle workflow actions for completion.
|
||
MLD.mld_nextworkflowstep (v_melding_key, -1); -- -1=Initial
|
||
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_melding_key);
|
||
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', 'MNNL_processemail afgebroken!', '[' || pfrom || '] ' || v_errormsg);
|
||
INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde)
|
||
VALUES (psessionid, 'maillog', 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;
|
||
/
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_mail_error
|
||
(
|
||
hide_f_offset,
|
||
datum,
|
||
hint,
|
||
error
|
||
)
|
||
AS
|
||
SELECT SYSDATE - imp_log_datum, imp_log_datum, imp_log_hint, imp_log_omschrijving
|
||
FROM imp_log
|
||
WHERE imp_log_applicatie = 'PROCESSEMAIL' AND imp_log_datum > ADD_MONTHS (TRUNC (SYSDATE, 'mm'), -1);
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_incident_xref
|
||
(
|
||
mld_melding_key,
|
||
incident_xref
|
||
)
|
||
AS
|
||
SELECT m.mld_melding_key, TO_CHAR (m.mld_melding_key) || ' [' || s.mld_statuses_omschrijving || ']'
|
||
FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline td, mld_statuses s
|
||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = td.ins_discipline_key
|
||
AND td.ins_srtdiscipline_key = 22 -- Incident
|
||
AND m.mld_melding_status = s.mld_statuses_key;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_udr_deel
|
||
(
|
||
deel_key,
|
||
discipline,
|
||
soort,
|
||
groep,
|
||
soortcode,
|
||
omschrijving,
|
||
plaatseigenaar,
|
||
plaatseigenaartype,
|
||
plaatsaanduiding,
|
||
eigenaar,
|
||
afdeling,
|
||
opmerking,
|
||
regio,
|
||
district,
|
||
locatie_code,
|
||
locatie_omschrijving,
|
||
locatie_plaats,
|
||
gebouwcode,
|
||
gebouw,
|
||
terreinsectorcode,
|
||
terreinsector,
|
||
verdiepingcode,
|
||
ruimtenr,
|
||
werkplekvolgnr,
|
||
werkplek,
|
||
uitleenbaar,
|
||
uitgeleend,
|
||
res_opmerking,
|
||
beheerder,
|
||
vervaldatum,
|
||
actief,
|
||
aantal,
|
||
state,
|
||
statedate,
|
||
fclt_3d_discipline_key,
|
||
fclt_3d_afdeling_key,
|
||
fclt_3d_locatie_key,
|
||
status
|
||
)
|
||
AS
|
||
SELECT ii.ins_deel_key,
|
||
lcl.x ('ins_discipline_omschrijving',
|
||
id.ins_discipline_key,
|
||
id.ins_discipline_omschrijving),
|
||
lcl.x ('ins_srtdeel_omschrijving',
|
||
s.ins_srtdeel_key,
|
||
s.ins_srtdeel_omschrijving),
|
||
lcl.x ('ins_srtgroep_omschrijving',
|
||
sg.ins_srtgroep_key,
|
||
sg.ins_srtgroep_omschrijving),
|
||
s.ins_srtdeel_code,
|
||
ii.ins_deel_omschrijving,
|
||
COALESCE (ii.plaats, ii.eigenaar),
|
||
ii.ins_alg_ruimte_type,
|
||
ii.plaats,
|
||
ii.eigenaar,
|
||
ii.afdeling,
|
||
ii.ins_deel_opmerking,
|
||
ii.regio,
|
||
ii.district,
|
||
ii.locatie_code,
|
||
ii.locatie_omschrijving,
|
||
ii.locatie_plaats,
|
||
ii.alg_gebouw_code,
|
||
ii.alg_gebouw_omschrijving,
|
||
ii.alg_terreinsector_code,
|
||
ii.alg_terreinsector_omschrijving,
|
||
ii.alg_verdieping_code,
|
||
ii.alg_ruimte_nr,
|
||
ii.prs_werkplek_volgnr,
|
||
ii.prs_werkplek_omschrijving,
|
||
DECODE (s.ins_srtdeel_uitleenbaar,
|
||
1, lcl.l ('lcl_yes'),
|
||
lcl.l ('lcl_no')),
|
||
DECODE (ii.ins_alg_ruimte_key_org,
|
||
NULL, lcl.l ('lcl_no'),
|
||
lcl.l ('lcl_yes')),
|
||
ii.res_deel_opmerking,
|
||
pf.prs_perslid_naam_full,
|
||
ii.ins_deel_vervaldatum,
|
||
DECODE (ii.ins_deel_actief, 1, lcl.l ('lcl_yes'), lcl.l ('lcl_no')),
|
||
ii.ins_deel_aantal,
|
||
ii.ins_deel_state,
|
||
ii.ins_deel_statedate,
|
||
sg.ins_discipline_key,
|
||
ii.ins_alg_ruimte_key,
|
||
ii.alg_locatie_key,
|
||
(SELECT fu.fac_usrdata_omschr
|
||
FROM ins_kenmerkdeel kd, ins_kenmerk k, fac_usrdata fu
|
||
WHERE k.ins_kenmerk_key = kd.ins_kenmerk_key
|
||
AND k.ins_srtkenmerk_key = 24
|
||
AND fu.fac_usrtab_key = 204
|
||
AND TO_CHAR (fac_usrdata_key) = kd.ins_kenmerkdeel_waarde
|
||
AND ii.ins_deel_key = kd.ins_deel_key) stat
|
||
FROM (SELECT i.ins_deel_key,
|
||
i.ins_deel_omschrijving,
|
||
i.ins_srtdeel_key,
|
||
i.prs_perslid_key_beh,
|
||
TO_CHAR (NULL) plaats,
|
||
i.ins_deel_opmerking,
|
||
i.ins_alg_ruimte_type,
|
||
NULL regio,
|
||
NULL district,
|
||
NULL locatie_code,
|
||
NULL locatie_omschrijving,
|
||
NULL locatie_plaats,
|
||
NULL alg_gebouw_code,
|
||
NULL alg_gebouw_omschrijving,
|
||
NULL alg_terreinsector_code,
|
||
NULL alg_terreinsector_omschrijving,
|
||
NULL alg_verdieping_code,
|
||
NULL alg_ruimte_nr,
|
||
NULL prs_werkplek_volgnr,
|
||
NULL prs_werkplek_omschrijving,
|
||
rd.res_deel_opmerking,
|
||
i.ins_deel_vervaldatum,
|
||
(SELECT d.prs_afdeling_omschrijving
|
||
FROM prs_v_afdeling d
|
||
WHERE prs_afdeling_key = i.ins_alg_ruimte_key)
|
||
eigenaar,
|
||
(SELECT d.prs_afdeling_naam
|
||
FROM prs_v_afdeling d
|
||
WHERE prs_afdeling_key = i.ins_alg_ruimte_key)
|
||
afdeling,
|
||
i.ins_discipline_key,
|
||
i.ins_alg_ruimte_key,
|
||
NULL alg_locatie_key,
|
||
i.ins_deel_actief,
|
||
i.ins_deel_aantal,
|
||
i.ins_alg_ruimte_key_org,
|
||
i.ins_deel_state,
|
||
i.ins_deel_statedate
|
||
FROM ins_deel i,
|
||
(SELECT res_deel_key,
|
||
res_ins_deel_key,
|
||
res_deel_opmerking res_deel_opmerking
|
||
FROM res_deel
|
||
WHERE res_deel_verwijder IS NULL) rd,
|
||
prs_v_afdeling_boom d,
|
||
prs_bedrijf b
|
||
WHERE i.ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_key = rd.res_ins_deel_key(+)
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND i.ins_alg_ruimte_key = d.prs_afdeling_key
|
||
AND i.ins_alg_ruimte_type = 'A'
|
||
UNION
|
||
SELECT i.ins_deel_key,
|
||
i.ins_deel_omschrijving,
|
||
i.ins_srtdeel_key,
|
||
i.prs_perslid_key_beh,
|
||
TO_CHAR (NULL) plaats,
|
||
i.ins_deel_opmerking,
|
||
i.ins_alg_ruimte_type,
|
||
NULL regio,
|
||
NULL district,
|
||
NULL locatie_code,
|
||
NULL locatie_omschrijving,
|
||
NULL locatie_plaats,
|
||
NULL alg_gebouw_code,
|
||
NULL alg_gebouw_omschrijving,
|
||
NULL alg_terreinsector_code,
|
||
NULL alg_terreinsector_omschrijving,
|
||
NULL alg_verdieping_code,
|
||
NULL alg_ruimte_nr,
|
||
NULL prs_werkplek_volgnr,
|
||
NULL prs_werkplek_omschrijving,
|
||
rd.res_deel_opmerking,
|
||
i.ins_deel_vervaldatum,
|
||
pf.prs_perslid_naam_full eigenaar,
|
||
(SELECT d.prs_afdeling_naam
|
||
FROM prs_v_afdeling d
|
||
WHERE prs_afdeling_key = p.prs_afdeling_key),
|
||
i.ins_discipline_key,
|
||
p.prs_afdeling_key,
|
||
NULL alg_locatie_key,
|
||
i.ins_deel_actief,
|
||
i.ins_deel_aantal,
|
||
i.ins_alg_ruimte_key_org,
|
||
i.ins_deel_state,
|
||
i.ins_deel_statedate
|
||
FROM ins_deel i,
|
||
(SELECT res_deel_key,
|
||
res_ins_deel_key,
|
||
res_deel_opmerking res_deel_opmerking
|
||
FROM res_deel
|
||
WHERE res_deel_verwijder IS NULL) rd,
|
||
prs_perslid p,
|
||
prs_v_perslid_fullnames_all pf,
|
||
prs_v_afdeling_boom d
|
||
WHERE i.ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_key = rd.res_ins_deel_key(+)
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND i.ins_alg_ruimte_key = p.prs_perslid_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND p.prs_afdeling_key = d.prs_afdeling_key
|
||
AND i.ins_alg_ruimte_type = 'P'
|
||
UNION
|
||
SELECT i.ins_deel_key,
|
||
i.ins_deel_omschrijving,
|
||
i.ins_srtdeel_key,
|
||
i.prs_perslid_key_beh,
|
||
TO_CHAR (NULL) plaats,
|
||
i.ins_deel_opmerking,
|
||
i.ins_alg_ruimte_type,
|
||
NULL regio,
|
||
NULL district,
|
||
NULL locatie_code,
|
||
NULL locatie_omschrijving,
|
||
NULL locatie_plaats,
|
||
NULL alg_gebouw_code,
|
||
NULL alg_gebouw_omschrijving,
|
||
NULL alg_terreinsector_code,
|
||
NULL alg_terreinsector_omschrijving,
|
||
NULL alg_verdieping_code,
|
||
NULL alg_ruimte_nr,
|
||
NULL prs_werkplek_volgnr,
|
||
NULL prs_werkplek_omschrijving,
|
||
rd.res_deel_opmerking,
|
||
i.ins_deel_vervaldatum,
|
||
c.prs_contactpersoon_naam eigenaar,
|
||
NULL afdeling,
|
||
NULL discipline_key,
|
||
NULL,
|
||
NULL alg_locatie_key,
|
||
i.ins_deel_actief,
|
||
i.ins_deel_aantal,
|
||
i.ins_alg_ruimte_key_org,
|
||
i.ins_deel_state,
|
||
i.ins_deel_statedate
|
||
FROM ins_deel i,
|
||
(SELECT res_deel_key,
|
||
res_ins_deel_key,
|
||
res_deel_opmerking res_deel_opmerking
|
||
FROM res_deel
|
||
WHERE res_deel_verwijder IS NULL) rd,
|
||
prs_contactpersoon c
|
||
WHERE i.ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_key = rd.res_ins_deel_key(+)
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND i.ins_alg_ruimte_key = c.prs_contactpersoon_key
|
||
AND i.ins_alg_ruimte_type = 'C'
|
||
UNION
|
||
SELECT i.ins_deel_key,
|
||
i.ins_deel_omschrijving,
|
||
i.ins_srtdeel_key,
|
||
i.prs_perslid_key_beh,
|
||
o.alg_plaatsaanduiding,
|
||
i.ins_deel_opmerking,
|
||
i.ins_alg_ruimte_type,
|
||
re.alg_regio_omschrijving,
|
||
di.alg_district_omschrijving,
|
||
l.alg_locatie_code locatie_code,
|
||
l.alg_locatie_omschrijving locatie_omschrijving,
|
||
l.alg_locatie_plaats locatie_plaats,
|
||
o.alg_gebouw_code,
|
||
o.alg_gebouw_omschrijving,
|
||
o.alg_terreinsector_code,
|
||
o.alg_terreinsector_omschrijving,
|
||
o.alg_verdieping_code,
|
||
o.alg_ruimte_nr,
|
||
o.prs_werkplek_volgnr,
|
||
o.prs_werkplek_omschrijving,
|
||
rd.res_deel_opmerking,
|
||
i.ins_deel_vervaldatum,
|
||
NULL eigenaar,
|
||
NULL afdeling,
|
||
i.ins_discipline_key,
|
||
NULL,
|
||
l.alg_locatie_key,
|
||
i.ins_deel_actief,
|
||
i.ins_deel_aantal,
|
||
i.ins_alg_ruimte_key_org,
|
||
i.ins_deel_state,
|
||
i.ins_deel_statedate
|
||
FROM ins_deel i,
|
||
ins_v_alg_overzicht o,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
alg_regio re,
|
||
(SELECT res_deel_key,
|
||
res_ins_deel_key,
|
||
res_deel_opmerking res_deel_opmerking
|
||
FROM res_deel
|
||
WHERE res_deel_verwijder IS NULL) rd
|
||
WHERE i.ins_deel_verwijder IS NULL
|
||
AND i.ins_deel_module = 'INS'
|
||
AND i.ins_deel_key = rd.res_ins_deel_key(+)
|
||
AND i.ins_deel_parent_key IS NULL
|
||
AND o.alg_onroerendgoed_keys = i.ins_alg_ruimte_key
|
||
AND o.alg_onroerendgoed_type = i.ins_alg_ruimte_type
|
||
AND i.ins_alg_ruimte_type IN ('T', 'R', 'W')
|
||
AND o.alg_locatie_key = i.ins_alg_locatie_key
|
||
AND i.ins_alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key
|
||
AND di.alg_regio_key = re.alg_regio_key) ii,
|
||
ins_srtdeel s,
|
||
ins_srtgroep sg,
|
||
ins_discipline id,
|
||
prs_v_perslid_fullnames pf
|
||
WHERE sg.ins_srtgroep_key = s.ins_srtgroep_key
|
||
AND id.ins_discipline_key = sg.ins_discipline_key
|
||
AND ii.prs_perslid_key_beh = pf.prs_perslid_key(+)
|
||
AND s.ins_srtdeel_key = ii.ins_srtdeel_key;
|
||
|
||
-- MNNL#41772: Stakeholders voor small changes.
|
||
CREATE OR REPLACE VIEW mnnl_v_perslid_small_changes
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_naam_log_full,
|
||
prs_perslid_naam_log_friendly,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full || ' [' || a.prs_afdeling_naam || ']',
|
||
pf.prs_perslid_naam_friendly || ' [' || a.prs_afdeling_naam || ']',
|
||
pf.prs_perslid_naam_full || ' [' || p.prs_perslid_oslogin || ']' || ' [' || a.prs_afdeling_naam || ']',
|
||
pf.prs_perslid_naam_friendly || ' [' || p.prs_perslid_oslogin || ']' || ' [' || a.prs_afdeling_naam || ']',
|
||
p.prs_perslid_verwijder
|
||
FROM prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames_all pf
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM fac_gebruikersgroep
|
||
WHERE fac_groep_key IN (441, 442, 443, 444, 445, 447, 456, 453, 462) -- ITL Rechtenbeheer/Unix/Werkplekbeheer (ICT)/Wintel/Oracle/Netwerken/Technisch Applicatiebeheer+MDT Procesbesturing&Integratie+IV Security
|
||
AND prs_perslid_key = pf.prs_perslid_key);
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_perslid_all
|
||
(
|
||
prs_perslid_key,
|
||
prs_perslid_naam_full,
|
||
prs_perslid_naam_friendly,
|
||
prs_perslid_naam_log_full,
|
||
prs_perslid_naam_log_friendly,
|
||
prs_perslid_verwijder
|
||
)
|
||
AS
|
||
SELECT pf.prs_perslid_key,
|
||
pf.prs_perslid_naam_full || ' [' || a.prs_afdeling_naam || ']',
|
||
pf.prs_perslid_naam_friendly || ' [' || a.prs_afdeling_naam || ']',
|
||
pf.prs_perslid_naam_full || ' [' || p.prs_perslid_oslogin || ']' || ' [' || a.prs_afdeling_naam || ']',
|
||
pf.prs_perslid_naam_friendly || ' [' || p.prs_perslid_oslogin || ']' || ' [' || a.prs_afdeling_naam || ']',
|
||
p.prs_perslid_verwijder
|
||
FROM prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames_all pf
|
||
WHERE p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- MNNL#58785: Kenmerkdomein met alle objecten.
|
||
CREATE OR REPLACE VIEW mnnl_v_objecten
|
||
(
|
||
ins_deel_key,
|
||
ins_deel_oms,
|
||
ins_deel_verwijder
|
||
)
|
||
AS SELECT d.ins_deel_key,
|
||
--td.ins_discipline_omschrijving || '-' || sg.ins_srtgroep_omschrijving || '-' || sd.ins_srtdeel_omschrijving || '-' || d.ins_deel_omschrijving ins_deel_oms,
|
||
d.ins_deel_omschrijving || ' (' || sd.ins_srtdeel_omschrijving || ')' ins_deel_oms,
|
||
d.ins_deel_verwijder
|
||
FROM ins_deel d, ins_srtdeel sd, ins_srtgroep sg, ins_discipline td
|
||
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;
|
||
|
||
-- MNNL#59416: Kenmerkdomein met lopende Service Request/Incident-meldingen.
|
||
CREATE OR REPLACE VIEW mnnl_v_mld_uitleen
|
||
(
|
||
mld_melding_key,
|
||
mld_melding_oms,
|
||
mld_melding_tht
|
||
)
|
||
AS SELECT m.mld_melding_key,
|
||
TO_CHAR (m.mld_melding_key) || '/' || m.mld_melding_onderwerp || '/' || pf.prs_perslid_naam_full,
|
||
DECODE (m.mld_melding_status, 1, TRUNC (SYSDATE), 5, TRUNC (SYSDATE), 6, TRUNC (SYSDATE), NULL)
|
||
FROM mld_melding m, mld_stdmelding sm, mld_discipline md, prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key IN (21, 22) -- Service Request/Incident
|
||
AND m.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_change_appr
|
||
(
|
||
--fclt_3d_discipline_key,
|
||
mld_melding_key,
|
||
changenr,
|
||
soortchange,
|
||
onderwerp,
|
||
aanvrager,
|
||
urgent,
|
||
datum_gereed, -- MNNL#67050: Wijzigen naar datum_gereed (ipv. uitvoering).
|
||
appr_infra_op,
|
||
appr_infra_wn,
|
||
appr_infra_wp,
|
||
appr_peba,
|
||
appr_pepa,
|
||
appr_vz,
|
||
appr_vb,
|
||
appr_fds,
|
||
appr_port,
|
||
appr_pega,
|
||
appr_doc,
|
||
appr_ota,
|
||
appr_pi,
|
||
appr_bi,
|
||
appr_rpa,
|
||
appr_fac,
|
||
appr_cbv,
|
||
appr_sec,
|
||
appr_infra_nw,
|
||
appr_ccc,
|
||
besproken_in_cab
|
||
)
|
||
AS
|
||
SELECT --m.mld_ins_discipline_key,
|
||
m.mld_melding_key,
|
||
TO_CHAR (m.mld_melding_key),
|
||
m.mld_stdmelding_omschrijving,
|
||
m.mld_melding_onderwerp,
|
||
m.prs_perslid_naam_friendly,
|
||
DECODE (urgent.mld_kenmerkmelding_waarde, NULL, NULL, 'Ja') urgent,
|
||
--duv.mld_kenmerkmelding_waarde,
|
||
mld_melding_einddatum,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = op.mld_kenmerkmelding_waarde) op,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = wn.mld_kenmerkmelding_waarde) wn,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = wp.mld_kenmerkmelding_waarde) wp,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = peba.mld_kenmerkmelding_waarde) peba,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pepa.mld_kenmerkmelding_waarde) pepa,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = vz.mld_kenmerkmelding_waarde) vz,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = vb.mld_kenmerkmelding_waarde) vb,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = fds.mld_kenmerkmelding_waarde) fds,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = port.mld_kenmerkmelding_waarde) port,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pega.mld_kenmerkmelding_waarde) pega,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = doc.mld_kenmerkmelding_waarde) doc,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = ota.mld_kenmerkmelding_waarde) ota,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pi.mld_kenmerkmelding_waarde) pi,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = bi.mld_kenmerkmelding_waarde) bi,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = rpa.mld_kenmerkmelding_waarde) rpa,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = fac.mld_kenmerkmelding_waarde) fac,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = cbv.mld_kenmerkmelding_waarde) cbv,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = sec.mld_kenmerkmelding_waarde) sec,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = nw.mld_kenmerkmelding_waarde) nw,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = ccc.mld_kenmerkmelding_waarde) ccc,
|
||
NULL
|
||
FROM (SELECT sm.mld_ins_discipline_key, m.mld_melding_key, sm.mld_stdmelding_omschrijving, m.mld_melding_onderwerp, pf.prs_perslid_naam_friendly, m.mld_melding_einddatum
|
||
FROM mld_melding m, mld_stdmelding sm, prs_v_perslid_fullnames_all pf
|
||
WHERE m.mld_melding_status IN (2, 3, 0) -- 1-Ingevoerd, 3-Ingezien, 0-Pending (zolang nog niet Geaccepteerd/Afgewezen)
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key IN (502, 501, 2141, 2381, 2401) -- RFC Medium change/RFC Large change/Vastlegging CAB approvals/RFC Medium/RFC Large
|
||
AND m.prs_perslid_key = pf.prs_perslid_key) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding urgent
|
||
ON m.mld_melding_key = urgent.mld_melding_key
|
||
AND urgent.mld_kenmerk_key = 381 -- Urgent change
|
||
--LEFT JOIN mld_v_aanwezigkenmerkmelding duv
|
||
-- ON m.mld_melding_key = duv.mld_melding_key
|
||
-- AND duv.mld_kenmerk_key IN (387, 386) -- Gewenste datum uitvoering
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding op
|
||
ON m.mld_melding_key = op.mld_melding_key
|
||
AND op.mld_kenmerk_key IN (251, 252, 3121, 3841, 3822) -- Approval Infra Oracle Platform
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding wn
|
||
ON m.mld_melding_key = wn.mld_melding_key
|
||
AND wn.mld_kenmerk_key IN (255, 256, 3122, 3842, 3823) -- Approval Infra Wintel en Netwerken
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding wp
|
||
ON m.mld_melding_key = wp.mld_melding_key
|
||
AND wp.mld_kenmerk_key IN (253, 254, 3124, 3844, 3824) -- Approval Infra Werkplekbeheer
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding peba
|
||
ON m.mld_melding_key = peba.mld_melding_key
|
||
AND peba.mld_kenmerk_key IN (246, 245, 3126, 3846, 3826) -- Approval Basisadministratie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding pepa
|
||
ON m.mld_melding_key = pepa.mld_melding_key
|
||
AND pepa.mld_kenmerk_key IN (259, 260, 3127, 3847, 3827) -- Approval Pensioenadministratie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding vz
|
||
ON m.mld_melding_key = vz.mld_melding_key
|
||
AND vz.mld_kenmerk_key IN (266, 265, 3129, 3849, 3829) -- Approval Verzekeringen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding vb
|
||
ON m.mld_melding_key = vb.mld_melding_key
|
||
AND vb.mld_kenmerk_key IN (264, 263, 3182, 3850, 3830) -- Approval Vermogensbeheer
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding fds
|
||
ON m.mld_melding_key = fds.mld_melding_key
|
||
AND fds.mld_kenmerk_key IN (250, 249, 3123, 3851, 3831) -- Approval Finance, Risk en HR
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding port
|
||
ON m.mld_melding_key = port.mld_melding_key
|
||
AND port.mld_kenmerk_key IN (262, 261, 3130, 3852, 3832) -- Approval Portalen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding pega
|
||
ON m.mld_melding_key = pega.mld_melding_key
|
||
AND pega.mld_kenmerk_key IN (2681, 2683, 3131, 3853, 3833) -- Approval PEGA
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding doc
|
||
ON m.mld_melding_key = doc.mld_melding_key
|
||
AND doc.mld_kenmerk_key IN (248, 247, 3132, 3854, 3834) -- Approval Document Services
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ota
|
||
ON m.mld_melding_key = ota.mld_melding_key
|
||
AND ota.mld_kenmerk_key IN (257, 258, 3133, 3855, 3835) -- Approval Ontwikkelstraat
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding pi
|
||
ON m.mld_melding_key = pi.mld_melding_key
|
||
AND pi.mld_kenmerk_key IN (1102, 1122, 3134, 3856, 3836) -- Approval Procesbesturing en Integratie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding bi
|
||
ON m.mld_melding_key = bi.mld_melding_key
|
||
AND bi.mld_kenmerk_key IN (1204, 1203, 3135, 3857, 3837) -- Approval Business Intelligence
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding rpa
|
||
ON m.mld_melding_key = rpa.mld_melding_key
|
||
AND rpa.mld_kenmerk_key IN (2785, 2782, 3128, 3848, 3828) -- Approval Robotics
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding fac
|
||
ON m.mld_melding_key = fac.mld_melding_key
|
||
AND fac.mld_kenmerk_key IN (3081, 3103, 3125, 3845, 3825) -- Approval Facilities
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding cbv
|
||
ON m.mld_melding_key = cbv.mld_melding_key
|
||
AND cbv.mld_kenmerk_key IN (3163, 3162, 3181, 3821, 3803) -- Approval Batchverwerking en Implementatie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding sec
|
||
ON m.mld_melding_key = sec.mld_melding_key
|
||
AND sec.mld_kenmerk_key IN (4102, 4161) -- Approval Security
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding nw
|
||
ON m.mld_melding_key = nw.mld_melding_key
|
||
AND nw.mld_kenmerk_key IN (4942, 4941) -- Approval Infra Netwerken
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ccc
|
||
ON m.mld_melding_key = ccc.mld_melding_key
|
||
AND ccc.mld_kenmerk_key IN (5701, 5724) -- Approval CCC
|
||
;
|
||
|
||
-- MNNL#63830: Soortgelijke rapportage als hierboven, maar dan kijkend naar de
|
||
-- 'CAB Testakkoord'- ipv. 'CAB Appr'-reeks van kenmerksoorten.
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_change_test
|
||
(
|
||
--fclt_3d_discipline_key,
|
||
mld_melding_key,
|
||
changenr,
|
||
soortchange,
|
||
onderwerp,
|
||
aanvrager,
|
||
urgent,
|
||
datum_gereed, -- MNNL#67050: Wijzigen naar datum_gereed (ipv. uitvoering).
|
||
testakoord_infra_op,
|
||
testakoord_infra_wn,
|
||
testakoord_infra_wp,
|
||
testakoord_peba,
|
||
testakoord_pepa,
|
||
testakoord_vz,
|
||
testakoord_vb,
|
||
testakoord_fds,
|
||
testakoord_port,
|
||
testakoord_pega,
|
||
testakoord_doc,
|
||
testakoord_ota,
|
||
testakoord_pi,
|
||
testakoord_bi,
|
||
testakoord_rpa,
|
||
testakoord_fac,
|
||
testakoord_cbv,
|
||
testakoord_sec,
|
||
testakoord_infra_nw,
|
||
testakoord_ccc,
|
||
besproken_in_cab,
|
||
status
|
||
)
|
||
AS
|
||
SELECT --m.mld_ins_discipline_key,
|
||
m.mld_melding_key,
|
||
TO_CHAR (m.mld_melding_key),
|
||
m.mld_stdmelding_omschrijving,
|
||
m.mld_melding_onderwerp,
|
||
m.prs_perslid_naam_friendly,
|
||
DECODE (urgent.mld_kenmerkmelding_waarde, NULL, NULL, 'Ja') urgent,
|
||
--duv.mld_kenmerkmelding_waarde,
|
||
mld_melding_einddatum,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = op.mld_kenmerkmelding_waarde) op,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = wn.mld_kenmerkmelding_waarde) wn,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = wp.mld_kenmerkmelding_waarde) wp,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = peba.mld_kenmerkmelding_waarde) peba,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pepa.mld_kenmerkmelding_waarde) pepa,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = vz.mld_kenmerkmelding_waarde) vz,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = vb.mld_kenmerkmelding_waarde) vb,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = fds.mld_kenmerkmelding_waarde) fds,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = port.mld_kenmerkmelding_waarde) port,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pega.mld_kenmerkmelding_waarde) pega,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = doc.mld_kenmerkmelding_waarde) doc,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = ota.mld_kenmerkmelding_waarde) ota,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = pi.mld_kenmerkmelding_waarde) pi,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = bi.mld_kenmerkmelding_waarde) bi,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = rpa.mld_kenmerkmelding_waarde) rpa,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = fac.mld_kenmerkmelding_waarde) fac,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = cbv.mld_kenmerkmelding_waarde) cbv,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = sec.mld_kenmerkmelding_waarde) sec,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = nw.mld_kenmerkmelding_waarde) nw,
|
||
(SELECT fac_usrdata_code FROM fac_v_aanwezigusrdata WHERE TO_CHAR (fac_usrdata_key) = ccc.mld_kenmerkmelding_waarde) ccc,
|
||
NULL,
|
||
m.mld_statuses_omschrijving status
|
||
FROM (SELECT sm.mld_ins_discipline_key, m.mld_melding_key, sm.mld_stdmelding_omschrijving, m.mld_melding_onderwerp, pf.prs_perslid_naam_friendly, ms.mld_statuses_omschrijving, m.mld_melding_einddatum
|
||
FROM mld_melding m, mld_stdmelding sm, prs_v_perslid_fullnames_all pf, mld_statuses ms
|
||
WHERE EXISTS (SELECT 1 FROM mld_opdr WHERE mld_melding_key = m.mld_melding_key) -- Zodra opdracht aangemaakt
|
||
AND m.mld_melding_status NOT IN (1, 5, 6) -- 1-Afgewezen, 5-Afgemeld, 6-Verwerkt (totdat RFC gesloten)
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_stdmelding_key IN (502, 501, 2381, 2401) -- RFC Medium change/RFC Large change/RFC Medium/RFC Large
|
||
AND m.prs_perslid_key = pf.prs_perslid_key
|
||
AND m.mld_melding_status = ms.mld_statuses_key) m
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding urgent
|
||
ON m.mld_melding_key = urgent.mld_melding_key
|
||
AND urgent.mld_kenmerk_key = 381 -- Urgent change
|
||
--LEFT JOIN mld_v_aanwezigkenmerkmelding duv
|
||
-- ON m.mld_melding_key = duv.mld_melding_key
|
||
-- AND duv.mld_kenmerk_key IN (387, 386) -- Gewenste datum uitvoering
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding op
|
||
ON m.mld_melding_key = op.mld_melding_key
|
||
AND op.mld_kenmerk_key IN (3961, 3978) -- Testakkoord Infra Oracle Platform
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding wn
|
||
ON m.mld_melding_key = wn.mld_melding_key
|
||
AND wn.mld_kenmerk_key IN (3962, 3979) -- Testakkoord Infra Wintel en Netwerken
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding wp
|
||
ON m.mld_melding_key = wp.mld_melding_key
|
||
AND wp.mld_kenmerk_key IN (3963, 3980) -- Testakkoord Infra Werkplekbeheer
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding peba
|
||
ON m.mld_melding_key = peba.mld_melding_key
|
||
AND peba.mld_kenmerk_key IN (3965, 3982) -- Testakkoord Basisadministratie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding pepa
|
||
ON m.mld_melding_key = pepa.mld_melding_key
|
||
AND pepa.mld_kenmerk_key IN (3966, 3983) -- Testakkoord Pensioenadministratie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding vz
|
||
ON m.mld_melding_key = vz.mld_melding_key
|
||
AND vz.mld_kenmerk_key IN (3968, 3985) -- Testakkoord Verzekeringen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding vb
|
||
ON m.mld_melding_key = vb.mld_melding_key
|
||
AND vb.mld_kenmerk_key IN (3969, 3986) -- Testakkoord Vermogensbeheer
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding fds
|
||
ON m.mld_melding_key = fds.mld_melding_key
|
||
AND fds.mld_kenmerk_key IN (3970, 3987) -- Testakkoord Finance, Risk en HR
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding port
|
||
ON m.mld_melding_key = port.mld_melding_key
|
||
AND port.mld_kenmerk_key IN (3971, 3988) -- Testakkoord Portalen
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding pega
|
||
ON m.mld_melding_key = pega.mld_melding_key
|
||
AND pega.mld_kenmerk_key IN (3972, 3989) -- Testakkoord PEGA
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding doc
|
||
ON m.mld_melding_key = doc.mld_melding_key
|
||
AND doc.mld_kenmerk_key IN (3973, 3990) -- Testakkoord Document Services
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ota
|
||
ON m.mld_melding_key = ota.mld_melding_key
|
||
AND ota.mld_kenmerk_key IN (3974, 3991) -- Testakkoord Ontwikkelstraat
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding pi
|
||
ON m.mld_melding_key = pi.mld_melding_key
|
||
AND pi.mld_kenmerk_key IN (3975, 3992) -- Testakkoord Procesbesturing en Integratie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding bi
|
||
ON m.mld_melding_key = bi.mld_melding_key
|
||
AND bi.mld_kenmerk_key IN (3976, 3993) -- Testakkoord Business Intelligence
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding rpa
|
||
ON m.mld_melding_key = rpa.mld_melding_key
|
||
AND rpa.mld_kenmerk_key IN (3967, 3984) -- Testakkoord Robotics
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding fac
|
||
ON m.mld_melding_key = fac.mld_melding_key
|
||
AND fac.mld_kenmerk_key IN (3964, 3981) -- Testakkoord Facilities
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding cbv
|
||
ON m.mld_melding_key = cbv.mld_melding_key
|
||
AND cbv.mld_kenmerk_key IN (3941, 3977) -- Testakkoord Batchverwerking en Implementatie
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding sec
|
||
ON m.mld_melding_key = sec.mld_melding_key
|
||
AND sec.mld_kenmerk_key IN (4121, 4163) -- Testakkoord Security
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding nw
|
||
ON m.mld_melding_key = nw.mld_melding_key
|
||
AND nw.mld_kenmerk_key IN (4962, 4982) -- Testakkoord Infra Netwerken
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding ccc
|
||
ON m.mld_melding_key = ccc.mld_melding_key
|
||
AND ccc.mld_kenmerk_key IN (5722, 5726) -- Testakkoord CCC
|
||
;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_noti_change_appr
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xsender,
|
||
xemail,
|
||
xmobile,
|
||
attachments
|
||
)
|
||
AS -- Ter info naar enkele medewerkers voor alle medium en large changes!
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##', TO_CHAR (m.mld_melding_key)),
|
||
'##DISC##', md.ins_discipline_omschrijving),
|
||
'##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
'##SUBJECT##', m.mld_melding_onderwerp),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
k.mld_kenmerk_hint,
|
||
NULL,
|
||
NULL
|
||
FROM fac_tracking t,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE t.fac_srtnotificatie_key = 43 -- MLDNEW
|
||
AND t.fac_tracking_refkey = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND INSTR (UPPER (k.mld_kenmerk_hint), '@MN.NL') > 0
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_kenmerktype = 'V' -- Checkbox
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_discipline_key = 1261 -- IV Changemanagement
|
||
AND sn.fac_srtnotificatie_code = 'CUST01'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_APPR'
|
||
AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
|
||
UNION ALL -- Ter approval naar approver volgens hint als 'Impact'-kenmerk gezet op 'Moet approven'!
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##', TO_CHAR (m.mld_melding_key)),
|
||
'##DISC##', md.ins_discipline_omschrijving),
|
||
'##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
'##SUBJECT##', m.mld_melding_onderwerp),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
k.mld_kenmerk_hint,
|
||
NULL,
|
||
NULL
|
||
FROM mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
fac_v_aanwezigusrdata ud,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND INSTR (UPPER (k.mld_kenmerk_hint), '@MN.NL') > 0
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND INSTR (sk.mld_srtkenmerk_upper, 'IMPACT') > 0
|
||
AND sk.fac_kenmerkdomein_key IS NOT NULL -- Referentie-kenmerk
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_discipline_key = 1261 -- IV Changemanagement
|
||
--AND m.mld_melding_status NOT IN (1, 5, 6) -- 1-Afgewezen, 5-Afgemeld, 6-Verwerkt (zolang nog niet Gesloten)
|
||
AND m.mld_melding_status IN (2, 3, 0) -- 1-Ingevoerd, 3-Ingezien, 0-Pending (zolang nog niet Geaccepteerd/Afgewezen)
|
||
AND km.mld_kenmerkmelding_waarde = TO_CHAR (ud.fac_usrdata_key)
|
||
AND UPPER (TRIM (ud.fac_usrdata_omschr)) = 'MOET APPROVEN'
|
||
AND sn.fac_srtnotificatie_code = 'CUST02'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
|
||
UNION ALL -- Ter info naar enkele medewerkers volgens checkbox-hint (generieke notificatie voor alle vakgroepen/statussen)!
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##', TO_CHAR (m.mld_melding_key)),
|
||
'##DISC##', md.ins_discipline_omschrijving),
|
||
'##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
'##SUBJECT##', m.mld_melding_onderwerp),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
k.mld_kenmerk_hint,
|
||
NULL,
|
||
NULL
|
||
FROM mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND INSTR (UPPER (k.mld_kenmerk_hint), '@MN.NL') > 0
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sk.mld_srtkenmerk_kenmerktype = 'V' -- Checkbox
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_discipline_key != 1261 -- Anders dan IV Changemanagement
|
||
AND sn.fac_srtnotificatie_code = 'CUST04'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
|
||
UNION ALL -- Ter approval naar approver zoals voor small changes ingevuld bij 'Approval van collega'!
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##', TO_CHAR (m.mld_melding_key)),
|
||
'##DISC##', md.ins_discipline_omschrijving),
|
||
'##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
'##SUBJECT##', m.mld_melding_onderwerp),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
p.prs_perslid_email,
|
||
NULL,
|
||
NULL
|
||
FROM mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 241 -- Approval van collega
|
||
AND km.mld_melding_key = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = 503 -- RFC Small change
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
--AND m.mld_melding_status NOT IN (1, 5, 6) -- 1-Afgewezen, 5-Afgemeld, 6-Verwerkt (zolang nog niet Gesloten)
|
||
AND m.mld_melding_status IN (2, 3, 0) -- 1-Ingevoerd, 3-Ingezien, 0-Pending (zolang nog niet Geaccepteerd/Afgewezen)
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = p.prs_perslid_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST07'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_APPR'
|
||
AND km.mld_kenmerkmelding_aanmaak BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_noti_jira
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xsender,
|
||
xemail,
|
||
xmobile,
|
||
attachments
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (sn.fac_srtnotificatie_oms, '##TEAM##', TRIM (SUBSTR (sk.mld_srtkenmerk_omschrijving, INSTR (sk.mld_srtkenmerk_omschrijving, ' ')))),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
k.mld_kenmerk_hint,
|
||
NULL,
|
||
NULL
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
mld_v_aanwezigkenmerkmelding km,
|
||
mld_kenmerk k,
|
||
mld_srtkenmerk sk,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
||
AND t.fac_tracking_refkey = m.mld_melding_key
|
||
AND m.mld_stdmelding_key = 763 -- Intake business verzoek
|
||
AND m.mld_melding_key = km.mld_melding_key
|
||
AND km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_kenmerk_key IN (1049, 1040, 1042, 1045, 1046, 1038, 1501, 1502, 1563)
|
||
AND INSTR (UPPER (k.mld_kenmerk_hint), '@') > 0 -- TODO: Preciezer?
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key
|
||
AND sn.fac_srtnotificatie_code = 'CUST03'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_JIRA'
|
||
AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;
|
||
|
||
-- MNNL#67354: Inzage medewerkers tbv. Jira (alleen key + oslogin)!
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_prs_api (id, login)
|
||
AS
|
||
SELECT prs_perslid_key, prs_perslid_oslogin FROM prs_v_aanwezigperslid;
|
||
|
||
-- MNNL#62675: Volgens configuratie in Eigen tabel met key=1081 reminders naar
|
||
-- <email> als <soortmelding> met <prio> op <percentage van SLA>.
|
||
-- MNNL#71193: CUST10-noti op SLA_DREMPEL3 (initieel 110%=10% overschrijding).
|
||
CREATE OR REPLACE VIEW mnnl_v_noti_mld_sla
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xsender,
|
||
xemail,
|
||
xmobile,
|
||
attachments
|
||
)
|
||
AS
|
||
WITH m2m
|
||
AS (SELECT sm.mld_stdmelding_key,
|
||
SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, ':') + 1, 1) drempel,
|
||
ud.fac_usrdata_prijs prio,
|
||
ud.fac_usrdata_omschr mailto
|
||
FROM fac_v_aanwezigusrdata ud, mld_discipline md, mld_stdmelding sm
|
||
WHERE fac_usrtab_key = 1081
|
||
AND SUBSTR (fac_usrdata_code, 1, 1) = 'V'
|
||
AND fac.safe_to_number (SUBSTR (ud.fac_usrdata_code, 2, INSTR (ud.fac_usrdata_code, ':') - 2)) = md.ins_discipline_key
|
||
AND md.ins_discipline_key = sm.mld_ins_discipline_key
|
||
UNION ALL
|
||
SELECT sm.mld_stdmelding_key,
|
||
SUBSTR (ud.fac_usrdata_code, INSTR (ud.fac_usrdata_code, ':') + 1, 1) drempel,
|
||
ud.fac_usrdata_prijs prio,
|
||
ud.fac_usrdata_omschr mailto
|
||
FROM fac_v_aanwezigusrdata ud, mld_stdmelding sm
|
||
WHERE fac_usrtab_key = 1081
|
||
AND SUBSTR (ud.fac_usrdata_code, 1, 1) = 'M'
|
||
AND fac.safe_to_number (SUBSTR (ud.fac_usrdata_code, 2, INSTR (ud.fac_usrdata_code, ':') - 2)) = sm.mld_stdmelding_key),
|
||
drempel1 AS (SELECT fac.safe_to_number (fac_usrdata_omschr) waarde FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 1081 AND fac_usrdata_key = 2841), -- SLA_DREMPEL1
|
||
drempel2 AS (SELECT fac.safe_to_number (fac_usrdata_omschr) waarde FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 1081 AND fac_usrdata_key = 2842), -- SLA_DREMPEL2
|
||
drempel3 AS (SELECT fac.safe_to_number (fac_usrdata_omschr) waarde FROM fac_v_aanwezigusrdata WHERE fac_usrtab_key = 1081 AND fac_usrdata_key = 4081) -- SLA_DREMPEL3
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##',
|
||
TO_CHAR (m.mld_melding_key)),
|
||
'##SUBJECT##',
|
||
m.mld_melding_onderwerp),
|
||
'##DREMPEL1##',
|
||
TO_CHAR (100 * m.waarde)),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (m.mailto, '##BEHANDELAAR##', p.prs_perslid_email),
|
||
NULL,
|
||
NULL
|
||
FROM (SELECT m.mld_melding_key,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_behandelaar_key,
|
||
m2m.mailto,
|
||
drempel1.waarde,
|
||
mld.geteinddatum (
|
||
m.mld_melding_datum,
|
||
m.mld_stdmelding_key,
|
||
m.mld_melding_spoed,
|
||
NULL, -- Plaats binnen/kleiner locatie!
|
||
NULL, -- Object met laagste uitvoertijd
|
||
MLD_T_UITVOERTIJD (drempel1.waarde * m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid))
|
||
dat50pct
|
||
FROM mld_melding m, m2m, drempel1
|
||
WHERE m.mld_melding_status NOT IN (1, 5, 6) -- Lopende meldingen!
|
||
AND m.mld_melding_einddatum_std > SYSDATE
|
||
AND m.mld_stdmelding_key = m2m.mld_stdmelding_key
|
||
AND m2m.drempel = '1' -- Initieel 50%
|
||
AND drempel1.waarde > 0 -- Drempel gedefinieerd
|
||
AND BITAND (m2m.prio, POWER (2, m.mld_melding_spoed - 1)) > 0) m,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
|
||
AND sn.fac_srtnotificatie_code = 'CUST05'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_MLD_SLA'
|
||
--AND TO_CHAR (m.dat50pct, 'yyyymmddhh24') = TO_CHAR (SYSDATE, 'yyyymmddhh24')
|
||
AND m.dat50pct BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##',
|
||
TO_CHAR (m.mld_melding_key)),
|
||
'##SUBJECT##',
|
||
m.mld_melding_onderwerp),
|
||
'##DREMPEL2##',
|
||
TO_CHAR (100 * m.waarde)),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (m.mailto, '##BEHANDELAAR##', p.prs_perslid_email),
|
||
NULL,
|
||
NULL
|
||
FROM (SELECT m.mld_melding_key,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_behandelaar_key,
|
||
m2m.mailto,
|
||
drempel2.waarde,
|
||
mld.geteinddatum (
|
||
m.mld_melding_datum,
|
||
m.mld_stdmelding_key,
|
||
m.mld_melding_spoed,
|
||
NULL, -- Plaats binnen/kleiner locatie!
|
||
NULL, -- Object met laagste uitvoertijd
|
||
MLD_T_UITVOERTIJD (drempel2.waarde * m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid))
|
||
dat80pct
|
||
FROM mld_melding m, m2m, drempel2
|
||
WHERE m.mld_melding_status NOT IN (1, 5, 6) -- Lopende meldingen!
|
||
AND m.mld_melding_einddatum_std > SYSDATE
|
||
AND m.mld_stdmelding_key = m2m.mld_stdmelding_key
|
||
AND m2m.drempel = '2' -- Initieel 80%
|
||
AND drempel2.waarde > 0 -- Drempel gedefinieerd
|
||
AND BITAND (m2m.prio, POWER (2, m.mld_melding_spoed - 1)) > 0) m,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
|
||
AND sn.fac_srtnotificatie_code = 'CUST06'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_MLD_SLA'
|
||
--AND TO_CHAR (m.dat80pct, 'yyyymmddhh24') = TO_CHAR (SYSDATE, 'yyyymmddhh24')
|
||
AND m.dat80pct BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun
|
||
UNION ALL
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##',
|
||
TO_CHAR (m.mld_melding_key)),
|
||
'##SUBJECT##',
|
||
m.mld_melding_onderwerp),
|
||
'##DREMPEL3##',
|
||
TO_CHAR (100 * m.waarde)),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (m.mailto, '##BEHANDELAAR##', p.prs_perslid_email),
|
||
NULL,
|
||
NULL
|
||
FROM (SELECT m.mld_melding_key,
|
||
m.mld_melding_onderwerp,
|
||
m.mld_melding_behandelaar_key,
|
||
m2m.mailto,
|
||
drempel3.waarde,
|
||
mld.geteinddatum (
|
||
m.mld_melding_datum,
|
||
m.mld_stdmelding_key,
|
||
m.mld_melding_spoed,
|
||
NULL, -- Plaats binnen/kleiner locatie!
|
||
NULL, -- Object met laagste uitvoertijd
|
||
MLD_T_UITVOERTIJD (drempel3.waarde * m.mld_melding_t_uitvoertijd.tijdsduur, m.mld_melding_t_uitvoertijd.eenheid))
|
||
dat110pct
|
||
FROM mld_melding m, m2m, drempel3
|
||
WHERE m.mld_melding_status NOT IN (1, 5, 6) -- Lopende meldingen!
|
||
AND m.mld_melding_einddatum_std > SYSDATE
|
||
AND m.mld_stdmelding_key = m2m.mld_stdmelding_key
|
||
AND m2m.drempel = '3' -- Initieel 110%
|
||
AND drempel3.waarde > 0 -- Drempel gedefinieerd
|
||
AND BITAND (m2m.prio, POWER (2, m.mld_melding_spoed - 1)) > 0) m,
|
||
prs_perslid p,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE m.mld_melding_behandelaar_key = p.prs_perslid_key(+)
|
||
AND sn.fac_srtnotificatie_code = 'CUST10'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_MLD_SLA'
|
||
--AND TO_CHAR (m.dat110pct, 'yyyymmddhh24') = TO_CHAR (SYSDATE, 'yyyymmddhh24')
|
||
AND m.dat110pct BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;
|
||
|
||
-- MNNL#61759: Notificatie van status/voortgang tbv. Sogeti/ServiceNow!
|
||
CREATE OR REPLACE VIEW mnnl_v_noti_sogeti
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xsender,
|
||
xemail,
|
||
xmobile,
|
||
attachments
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##SNID##', TRIM (ko.mld_kenmerkopdr_waarde)),
|
||
'##SUBJECT##', m.mld_melding_onderwerp),
|
||
mn.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
'sogeti@service-now.com',
|
||
NULL,
|
||
NULL
|
||
FROM mld_melding_note mn,
|
||
mld_melding m,
|
||
--mld_stdmelding sm,
|
||
--mld_discipline md,
|
||
mld_opdr o,
|
||
mld_v_aanwezigkenmerkopdr ko,
|
||
mld_kenmerk k,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE mn.mld_melding_note_flag = 0 -- Hidden notitie
|
||
AND mn.prs_perslid_key != 22824 -- Mail-user tbv. Sogeti/Werkplekbeheer
|
||
AND mn.mld_melding_key = m.mld_melding_key
|
||
--AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
--AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND mn.mld_melding_key = o.mld_melding_key
|
||
AND o.mld_uitvoerende_keys = 22644 -- Sogeti
|
||
AND o.mld_opdr_key = ko.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND k.mld_srtkenmerk_key = 2141 -- Refnr. leverancier
|
||
AND NOT EXISTS (SELECT 1 FROM mld_opdr WHERE mld_melding_key = o.mld_melding_key AND mld_opdr_bedrijfopdr_volgnr > o.mld_opdr_bedrijfopdr_volgnr)
|
||
AND sn.fac_srtnotificatie_code = 'CUST08'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_SOGETI'
|
||
AND mn.mld_melding_note_aanmaak BETWEEN nj.fac_notificatie_job_nextrun - (nj.fac_notificatie_job_interval / 24) AND nj.fac_notificatie_job_nextrun;
|
||
|
||
-- MMNL#54758: RAPPORT met alle (INCIDENT) meldingen met en of zonder object (regel per object).
|
||
CREATE OR REPLACE VIEW mnnl_v_udr_meldingen
|
||
(
|
||
melding_key,
|
||
melding_nr,
|
||
melder,
|
||
melder_key,
|
||
melder_afd,
|
||
melder_afd_omschr,
|
||
melding_soort,
|
||
melding_productgroep,
|
||
melding_subproductgroep,
|
||
melding_behandelgroep,
|
||
melding_behandelaar,
|
||
melding_behandelaar_key,
|
||
melding_subproductgroepgroep,
|
||
melding_status,
|
||
melding_sla_nvt,
|
||
melding_sla_werkdgn,
|
||
melding_sla_werkuren,
|
||
melding_sla_accptdgn,
|
||
melding_sla_accpturen,
|
||
melding_sla_plan_uitvoertijd,
|
||
melding_datum,
|
||
melding_einddatum,
|
||
melding_acceptdatum,
|
||
melding_afgemeld,
|
||
melding_accepted,
|
||
melding_doorlooptijd_dgn,
|
||
melding_doorloopijd_uren,
|
||
melding_onderwerp,
|
||
melding_vomschrijving,
|
||
melding_opmerking,
|
||
melding_prioriteit,
|
||
melding_prioriteittxt,
|
||
melding_rating,
|
||
melding_rating_opmerking,
|
||
melding_uitvoering_sla_dagen,
|
||
melding_uitvoering_sla_uren,
|
||
melding_afspraak_sla_dagen,
|
||
melding_afspraak_sla_uren,
|
||
melding_accept_sla_optijd,
|
||
melding_uitvoering_sla_optijd,
|
||
melding_afspraak_sla_optijd,
|
||
melding_selfservice,
|
||
object_discipline,
|
||
object_soort,
|
||
object_groep,
|
||
object_omschrijving,
|
||
object_plaatseigenaar,
|
||
storing_scope,
|
||
storing_blokkerend,
|
||
storing_sinds,
|
||
storing_frequency,
|
||
storing_type
|
||
)
|
||
AS
|
||
SELECT DISTINCT m.melding_key,
|
||
m.meldingnummer,
|
||
m.melder,
|
||
m.melder_key,
|
||
m.afdeling,
|
||
m.afdeling_omschrijving,
|
||
m.soortmelding,
|
||
m.productgroep,
|
||
m.subproductgroep,
|
||
m.behandelgroep,
|
||
m.behandelaar,
|
||
m.behandelaar_key,
|
||
m.subproductgroepgroep,
|
||
m.melding_status,
|
||
m.sla_nvt,
|
||
m.sla_werkdgn,
|
||
m.sla_werkuren,
|
||
m.sla_accptdgn,
|
||
m.sla_accpturen,
|
||
m.plan_uitvoertijd_sla,
|
||
m.melding_datum,
|
||
m.melding_einddatum,
|
||
m.melding_acceptdatum,
|
||
m.melding_afgemeld,
|
||
m.melding_accepted,
|
||
m.doorlooptijd_werkdgn,
|
||
m.doorlooptijd_werkuren,
|
||
m.onderwerp,
|
||
m.vomschrijving,
|
||
m.melding_opmerking,
|
||
m.prioriteit,
|
||
m.prioriteittxt,
|
||
m.rating,
|
||
m.rating_opmerking,
|
||
m.uitvoering_sla_dagen,
|
||
m.uitvoering_sla_uren,
|
||
m.afspraak_sla_dagen,
|
||
m.afspraak_sla_uren,
|
||
m.accept_sla_optijd,
|
||
m.uitvoering_sla_optijd,
|
||
m.afspraak_sla_optijd,
|
||
m.selfservice,
|
||
dg.ins_discipline_omschrijving discipline,
|
||
dg.ins_srtgroep_omschrijving groep,
|
||
dg.ins_srtdeel_omschrijving soort,
|
||
dg.ins_deel_omschrijving omschrijving,
|
||
dg.alg_plaatsaanduiding plaatseigenaar,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
(SELECT fac.safe_to_number(mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 143))
|
||
waarde143,
|
||
DECODE (
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 145),
|
||
1, 'ja',
|
||
' ')
|
||
waarde145,
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.MLD_KENMERK_KEY = 146) waarde146, -- storing_sinds,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
(SELECT fac.safe_to_number(mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 147))
|
||
waarde147, -- storing_frequency,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
(SELECT fac.safe_to_number(mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 2441))
|
||
waarde2441
|
||
FROM mld_v_udr_melding m, mld_melding_object mo, ins_v_deel_gegevens dg
|
||
WHERE m.melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND UPPER (m.soortmelding) = 'INCIDENT'
|
||
AND m.melding_key = mo.mld_melding_key(+)
|
||
AND mo.ins_deel_key = dg.ins_deel_key(+);
|
||
|
||
-- MMNL#54758: RAPPORT met alle (INCIDENT) meldingen met en of zonder object (regel per melding).
|
||
CREATE OR REPLACE VIEW mnnl_v_udr_meldingen2
|
||
(
|
||
melding_key,
|
||
melding_nr,
|
||
melder,
|
||
melder_key,
|
||
melder_afd,
|
||
melder_afd_omschr,
|
||
melding_soort,
|
||
melding_productgroep,
|
||
melding_subproductgroep,
|
||
melding_behandelgroep,
|
||
melding_behandelaar,
|
||
melding_behandelaar_key,
|
||
melding_subproductgroepgroep,
|
||
melding_status,
|
||
melding_sla_nvt,
|
||
melding_sla_werkdgn,
|
||
melding_sla_werkuren,
|
||
melding_sla_accptdgn,
|
||
melding_sla_accpturen,
|
||
melding_sla_plan_uitvoertijd,
|
||
melding_datum,
|
||
melding_einddatum,
|
||
melding_acceptdatum,
|
||
melding_afgemeld,
|
||
melding_accepted,
|
||
melding_doorlooptijd_dgn,
|
||
melding_doorloopijd_uren,
|
||
melding_onderwerp,
|
||
melding_vomschrijving,
|
||
melding_opmerking,
|
||
melding_prioriteit,
|
||
melding_prioriteittxt,
|
||
melding_rating,
|
||
melding_rating_opmerking,
|
||
melding_uitvoering_sla_dagen,
|
||
melding_uitvoering_sla_uren,
|
||
melding_afspraak_sla_dagen,
|
||
melding_afspraak_sla_uren,
|
||
melding_accept_sla_optijd,
|
||
melding_uitvoering_sla_optijd,
|
||
melding_afspraak_sla_optijd,
|
||
melding_selfservice,
|
||
melding_objecten,
|
||
storing_scope,
|
||
storing_blokkerend,
|
||
storing_sinds,
|
||
storing_frequency,
|
||
storing_type
|
||
)
|
||
AS
|
||
SELECT DISTINCT m.melding_key,
|
||
m.meldingnummer,
|
||
m.melder,
|
||
m.melder_key,
|
||
m.afdeling,
|
||
m.afdeling_omschrijving,
|
||
m.soortmelding,
|
||
m.productgroep,
|
||
m.subproductgroep,
|
||
m.behandelgroep,
|
||
m.behandelaar,
|
||
m.behandelaar_key,
|
||
m.subproductgroepgroep,
|
||
m.melding_status,
|
||
m.sla_nvt,
|
||
m.sla_werkdgn,
|
||
m.sla_werkuren,
|
||
m.sla_accptdgn,
|
||
m.sla_accpturen,
|
||
m.plan_uitvoertijd_sla,
|
||
m.melding_datum,
|
||
m.melding_einddatum,
|
||
m.melding_acceptdatum,
|
||
m.melding_afgemeld,
|
||
m.melding_accepted,
|
||
m.doorlooptijd_werkdgn,
|
||
m.doorlooptijd_werkuren,
|
||
m.onderwerp,
|
||
m.vomschrijving,
|
||
m.melding_opmerking,
|
||
m.prioriteit,
|
||
m.prioriteittxt,
|
||
m.rating,
|
||
m.rating_opmerking,
|
||
m.uitvoering_sla_dagen,
|
||
m.uitvoering_sla_uren,
|
||
m.afspraak_sla_dagen,
|
||
m.afspraak_sla_uren,
|
||
m.accept_sla_optijd,
|
||
m.uitvoering_sla_optijd,
|
||
m.afspraak_sla_optijd,
|
||
m.selfservice,
|
||
mo.objecten,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 143))
|
||
waarde143,
|
||
DECODE (
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 145),
|
||
1, 'ja',
|
||
' ')
|
||
waarde145,
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 146)
|
||
waarde146, -- storing_sinds,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 147))
|
||
waarde147, -- storing_frequency,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 2441))
|
||
waarde2441
|
||
FROM mld_v_udr_melding m,
|
||
( SELECT mo.mld_melding_key,
|
||
LISTAGG (dg.ins_deel_omschrijving || ' (' || dg.ins_srtdeel_omschrijving || ')', ', ')
|
||
WITHIN GROUP (ORDER BY dg.ins_deel_omschrijving)
|
||
objecten
|
||
FROM mld_melding_object mo, ins_v_deel_gegevens dg
|
||
WHERE mo.ins_deel_key = dg.ins_deel_key
|
||
GROUP BY mo.mld_melding_key) mo
|
||
WHERE m.melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND UPPER (m.soortmelding) = 'INCIDENT'
|
||
AND m.melding_key = mo.mld_melding_key(+);
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_udr_meldingen3
|
||
(
|
||
melding_key,
|
||
melding_nr,
|
||
melder,
|
||
melder_key,
|
||
melder_afd,
|
||
melder_afd_omschr,
|
||
melding_soort,
|
||
melding_productgroep,
|
||
melding_subproductgroep,
|
||
melding_behandelgroep,
|
||
melding_behandelaar,
|
||
melding_behandelaar_key,
|
||
melding_subproductgroepgroep,
|
||
melding_status,
|
||
melding_sla_nvt,
|
||
melding_sla_werkdgn,
|
||
melding_sla_werkuren,
|
||
melding_sla_accptdgn,
|
||
melding_sla_accpturen,
|
||
melding_sla_plan_uitvoertijd,
|
||
melding_datum,
|
||
melding_einddatum,
|
||
melding_acceptdatum,
|
||
melding_afgemeld,
|
||
melding_accepted,
|
||
melding_doorlooptijd_dgn,
|
||
melding_doorloopijd_uren,
|
||
melding_onderwerp,
|
||
melding_vomschrijving,
|
||
melding_opmerking,
|
||
melding_prioriteit,
|
||
melding_prioriteittxt,
|
||
melding_rating,
|
||
melding_rating_opmerking,
|
||
melding_uitvoering_sla_dagen,
|
||
melding_uitvoering_sla_uren,
|
||
melding_afspraak_sla_dagen,
|
||
melding_afspraak_sla_uren,
|
||
melding_accept_sla_optijd,
|
||
melding_uitvoering_sla_optijd,
|
||
melding_afspraak_sla_optijd,
|
||
melding_selfservice,
|
||
melding_objecten,
|
||
storing_scope,
|
||
storing_blokkerend,
|
||
storing_sinds,
|
||
storing_frequency,
|
||
storing_type,
|
||
aant_onderliggend,
|
||
problem_eigenaar,
|
||
behandelteam,
|
||
actieve_behandelaar
|
||
)
|
||
AS
|
||
WITH onderliggend AS ( SELECT mld_melding_mldgroup_key, COUNT (*) aant
|
||
FROM mld_melding
|
||
WHERE mld_melding_mldgroup_key IS NOT NULL
|
||
GROUP BY mld_melding_mldgroup_key)
|
||
SELECT DISTINCT
|
||
m.melding_key,
|
||
m.meldingnummer,
|
||
m.melder,
|
||
m.melder_key,
|
||
m.afdeling,
|
||
m.afdeling_omschrijving,
|
||
m.soortmelding,
|
||
m.productgroep,
|
||
m.subproductgroep,
|
||
m.behandelgroep,
|
||
m.behandelaar,
|
||
m.behandelaar_key,
|
||
m.subproductgroepgroep,
|
||
m.melding_status,
|
||
m.sla_nvt,
|
||
m.sla_werkdgn,
|
||
m.sla_werkuren,
|
||
m.sla_accptdgn,
|
||
m.sla_accpturen,
|
||
m.plan_uitvoertijd_sla,
|
||
m.melding_datum,
|
||
m.melding_einddatum,
|
||
m.melding_acceptdatum,
|
||
m.melding_afgemeld,
|
||
m.melding_accepted,
|
||
m.doorlooptijd_werkdgn,
|
||
m.doorlooptijd_werkuren,
|
||
m.onderwerp,
|
||
m.vomschrijving,
|
||
m.melding_opmerking,
|
||
m.prioriteit,
|
||
m.prioriteittxt,
|
||
m.rating,
|
||
m.rating_opmerking,
|
||
m.uitvoering_sla_dagen,
|
||
m.uitvoering_sla_uren,
|
||
m.afspraak_sla_dagen,
|
||
m.afspraak_sla_uren,
|
||
m.accept_sla_optijd,
|
||
m.uitvoering_sla_optijd,
|
||
m.afspraak_sla_optijd,
|
||
m.selfservice,
|
||
mo.objecten,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 143))
|
||
waarde143,
|
||
DECODE (
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 145),
|
||
1, 'ja',
|
||
' ')
|
||
waarde145,
|
||
(SELECT mld_kenmerkmelding_waarde
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 146)
|
||
waarde146, -- storing_sinds,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 147))
|
||
waarde147, -- storing_frequency,
|
||
(SELECT fac_usrdata_omschr
|
||
FROM fac_usrdata
|
||
WHERE fac_usrdata_key =
|
||
(SELECT fac.safe_to_number (mld_kenmerkmelding_waarde)
|
||
FROM mld_kenmerkmelding km
|
||
WHERE km.mld_melding_key = m.melding_key
|
||
AND km.mld_kenmerk_key = 2441))
|
||
waarde2441,
|
||
onderliggend.aant,
|
||
pe.prs_perslid_naam_full problem_eigenaar,
|
||
m.actieve_behandelgroep behandelteam,
|
||
pfab.prs_perslid_naam_full act_behandelaar
|
||
FROM mld_v_udr_melding m,
|
||
( SELECT mo.mld_melding_key,
|
||
LISTAGG (dg.ins_deel_omschrijving || ' (' || dg.ins_srtdeel_omschrijving || ')', ', ')
|
||
WITHIN GROUP (ORDER BY dg.ins_deel_omschrijving)
|
||
objecten
|
||
FROM mld_melding_object mo, ins_v_deel_gegevens dg
|
||
WHERE mo.ins_deel_key = dg.ins_deel_key
|
||
GROUP BY mo.mld_melding_key) mo,
|
||
onderliggend,
|
||
(SELECT km.mld_melding_key, pf.prs_perslid_naam_full
|
||
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, prs_v_perslid_fullnames_all pf
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = 1217 -- Problem eigenaar
|
||
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key) pe,
|
||
prs_v_perslid_fullnames pfab
|
||
WHERE m.melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND m.melding_key = mo.mld_melding_key(+)
|
||
AND m.melding_key = onderliggend.mld_melding_mldgroup_key(+)
|
||
AND m.melding_key = pe.mld_melding_key(+)
|
||
AND m.actieve_behandelaar_key = pfab.prs_perslid_key(+);
|
||
|
||
-- MNNL#53038: Basisrapport met alle Intake-meldingen incl. kenmerken.
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_mld_intake
|
||
(
|
||
melding_key,
|
||
meldingnummer,
|
||
melding_regio,
|
||
melding_district,
|
||
melding_locatiecode,
|
||
melding_locatie,
|
||
melding_locatieplaats,
|
||
fclt_3d_locatie_key,
|
||
melding_gebouwcode,
|
||
melding_gebouw,
|
||
melding_verdieping,
|
||
melding_ruimtenr,
|
||
melding_ruimte,
|
||
melding_ordernr,
|
||
kostensoortgroep,
|
||
kostensoort,
|
||
kostenplaats,
|
||
kostenplaats_oms,
|
||
melder,
|
||
melder_key,
|
||
afdeling,
|
||
afdeling_omschrijving,
|
||
fclt_3d_afdeling_key,
|
||
bedrijf_key,
|
||
invoerder,
|
||
meldbron,
|
||
soortmelding,
|
||
fclt_3d_discipline_key,
|
||
productgroep,
|
||
subproductgroep,
|
||
behandelgroep,
|
||
behandelaar,
|
||
behandelaar_key,
|
||
subproductgroepgroep,
|
||
fclt_3d_discipline2_key,
|
||
actieve_behandelgroep,
|
||
actieve_behandelaar_key,
|
||
actieve_behandelaar,
|
||
melding_status,
|
||
sla_nvt,
|
||
sla_werkdgn,
|
||
sla_werkuren,
|
||
sla_respijtdgn,
|
||
sla_respijturen,
|
||
sla_accptdgn,
|
||
sla_accpturen,
|
||
plan_uitvoertijd_sla,
|
||
melding_datum,
|
||
melding_einddatum,
|
||
melding_acceptdatum,
|
||
melding_afgemeld,
|
||
melding_accepted,
|
||
doorlooptijd_werkdgn,
|
||
doorlooptijd_werkuren,
|
||
onderwerp,
|
||
vomschrijving,
|
||
melding_opmerking,
|
||
prioriteit,
|
||
prioriteittxt,
|
||
rating,
|
||
rating_opmerking,
|
||
bolletje,
|
||
accept_sla_dagen,
|
||
accept_sla_uren,
|
||
uitvoering_sla_dagen,
|
||
uitvoering_sla_uren,
|
||
afspraak_sla_dagen,
|
||
afspraak_sla_uren,
|
||
accept_sla_optijd,
|
||
uitvoering_sla_optijd,
|
||
afspraak_sla_optijd,
|
||
selfservice,
|
||
reden_aanvraag, --kenmerk1,
|
||
aanvullende_acties, --kenmerk2,
|
||
afronding_intake, --kenmerk3,
|
||
jira_ticket, --kenmerk4,
|
||
cap_bestelling, --kenmerk5,
|
||
gewenst_gereed, --kenmerk6,
|
||
leverancier, --kenmerk7,
|
||
teaminzet_netwerken, --kenmerk8,
|
||
teaminzet_oracle_dba, --kenmerk9,
|
||
teaminzet_oracle_mw, --kenmerk10,
|
||
teaminzet_unix_linux, --kenmerk11,
|
||
teaminzet_wpbeheer, --kenmerk12,
|
||
teaminzet_wintel, --kenmerk13,
|
||
wens, --kenmerk14,
|
||
stappen_genomen, --kenmerk15,
|
||
bpost_niet_aanmaken, --kenmerk16,
|
||
uren_bestelling, --kenmerk17,
|
||
teaminzet_tab, --kenmerk18,
|
||
teaminzet_security, --kenmerk19,
|
||
afronding_ontwerp, --kenmerk20,
|
||
teaminzet_cloud_comp, --kenmerk21,
|
||
service_ontwerp, --kenmerk22,
|
||
link_naar_ontwerp, --kenmerk23,
|
||
coord_ontwerpfase, --kenmerk24,
|
||
kenmerk25,
|
||
kenmerk26,
|
||
kenmerk27,
|
||
kenmerk28,
|
||
kenmerk29,
|
||
kenmerk30
|
||
)
|
||
AS
|
||
WITH mk AS (SELECT sk.vnr, sk.mld_srtkenmerk_key, sk.mld_srtkenmerk_omschrijving, kw.mld_melding_key melding_key, kw.waarde
|
||
FROM (SELECT ROWNUM vnr, mld_srtkenmerk_key, mld_srtkenmerk_omschrijving
|
||
FROM ( SELECT sk.mld_srtkenmerk_key, sk.mld_srtkenmerk_omschrijving, sk.mld_srtkenmerk_aanmaak
|
||
FROM mld_srtkenmerk sk
|
||
WHERE sk.mld_srtkenmerk_kenmerktype IN ('C', 'D', 'N', 'R', 'S', 'X', 'B', 'V')
|
||
AND COALESCE (sk.mld_srtkenmerk_verwijder, SYSDATE) > TO_DATE ('010118', 'ddmmyy')
|
||
AND EXISTS (SELECT 1 -- Alleen Intake-kenmerksoorten
|
||
FROM mld_stdmelding sm, mld_discipline md, mld_kenmerk k
|
||
WHERE sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_srtdiscipline_key = 121 -- Intake!
|
||
AND ((k.mld_kenmerk_niveau = 'S' AND k.mld_stdmelding_key = sm.mld_stdmelding_key)
|
||
OR (k.mld_kenmerk_niveau = 'D' AND k.mld_stdmelding_key = md.ins_discipline_key)
|
||
OR (k.mld_kenmerk_niveau = 'T' AND k.mld_stdmelding_key = 121)) -- Intake!
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key)
|
||
AND sk.mld_srtkenmerk_key != 1061 -- VERWIJDERD/Co<43>rdinator van Ontwerp fase
|
||
ORDER BY 3, 1)) sk
|
||
LEFT JOIN
|
||
(SELECT sk.mld_srtkenmerk_key, km.mld_melding_key,
|
||
DECODE (sk.mld_srtkenmerk_kenmerktype,
|
||
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
|
||
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
|
||
km.mld_kenmerkmelding_waarde)
|
||
waarde
|
||
FROM mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key) kw
|
||
ON sk.mld_srtkenmerk_key = kw.mld_srtkenmerk_key)
|
||
SELECT x.melding_key,
|
||
x.meldingnummer,
|
||
x.melding_regio,
|
||
x.melding_district,
|
||
x.melding_locatiecode,
|
||
x.melding_locatie,
|
||
x.melding_locatieplaats,
|
||
x.fclt_3d_locatie_key,
|
||
x.melding_gebouwcode,
|
||
x.melding_gebouw,
|
||
x.melding_verdieping,
|
||
x.melding_ruimtenr,
|
||
x.melding_ruimte,
|
||
x.melding_ordernr,
|
||
x.kostensoortgroep,
|
||
x.kostensoort,
|
||
x.kostenplaats,
|
||
x.kostenplaats_oms,
|
||
x.melder,
|
||
x.melder_key,
|
||
x.afdeling,
|
||
x.afdeling_omschrijving,
|
||
x.fclt_3d_afdeling_key,
|
||
x.bedrijf_key,
|
||
x.invoerder,
|
||
x.meldbron,
|
||
x.soortmelding,
|
||
x.fclt_3d_discipline_key,
|
||
x.productgroep,
|
||
x.subproductgroep,
|
||
x.behandelgroep,
|
||
x.behandelaar,
|
||
x.behandelaar_key,
|
||
x.subproductgroepgroep,
|
||
x.fclt_3d_discipline2_key,
|
||
x.actieve_behandelgroep,
|
||
x.actieve_behandelaar_key,
|
||
x.actieve_behandelaar,
|
||
x.melding_status,
|
||
x.sla_nvt,
|
||
x.sla_werkdgn,
|
||
x.sla_werkuren,
|
||
x.sla_respijtdgn,
|
||
x.sla_respijturen,
|
||
x.sla_accptdgn,
|
||
x.sla_accpturen,
|
||
x.plan_uitvoertijd_sla,
|
||
x.melding_datum,
|
||
x.melding_einddatum,
|
||
x.melding_acceptdatum,
|
||
x.melding_afgemeld,
|
||
x.melding_accepted,
|
||
x.doorlooptijd_werkdgn,
|
||
x.doorlooptijd_werkuren,
|
||
x.onderwerp,
|
||
x.vomschrijving,
|
||
x.melding_opmerking,
|
||
x.prioriteit,
|
||
x.prioriteittxt,
|
||
x.rating,
|
||
x.rating_opmerking,
|
||
x.bolletje,
|
||
x.accept_sla_dagen,
|
||
x.accept_sla_uren,
|
||
x.uitvoering_sla_dagen,
|
||
x.uitvoering_sla_uren,
|
||
x.afspraak_sla_dagen,
|
||
x.afspraak_sla_uren,
|
||
x.accept_sla_optijd,
|
||
x.uitvoering_sla_optijd,
|
||
x.afspraak_sla_optijd,
|
||
x.selfservice,
|
||
k1.waarde kenmerk1,
|
||
k2.waarde kenmerk2,
|
||
k3.waarde kenmerk3,
|
||
k4.waarde kenmerk4,
|
||
k5.waarde kenmerk5,
|
||
k6.waarde kenmerk6,
|
||
k7.waarde kenmerk7,
|
||
k8.waarde kenmerk8,
|
||
k9.waarde kenmerk9,
|
||
k10.waarde kenmerk10,
|
||
k11.waarde kenmerk11,
|
||
k12.waarde kenmerk12,
|
||
k13.waarde kenmerk13,
|
||
k14.waarde kenmerk14,
|
||
k15.waarde kenmerk15,
|
||
k16.waarde kenmerk16,
|
||
k17.waarde kenmerk17,
|
||
k18.waarde kenmerk18,
|
||
k19.waarde kenmerk19,
|
||
k20.waarde kenmerk20,
|
||
k21.waarde kenmerk21,
|
||
k22.waarde kenmerk22,
|
||
k23.waarde kenmerk23,
|
||
k24.waarde kenmerk24,
|
||
k25.waarde kenmerk25,
|
||
k26.waarde kenmerk26,
|
||
k27.waarde kenmerk27,
|
||
k28.waarde kenmerk28,
|
||
k29.waarde kenmerk29,
|
||
k30.waarde kenmerk30
|
||
FROM (SELECT v.* FROM mld_v_udr_melding v WHERE UPPER (v.soortmelding) = 'INTAKE') x
|
||
LEFT JOIN mk k1 ON x.melding_key = k1.melding_key AND k1.vnr = 1
|
||
LEFT JOIN mk k2 ON x.melding_key = k2.melding_key AND k2.vnr = 2
|
||
LEFT JOIN mk k3 ON x.melding_key = k3.melding_key AND k3.vnr = 3
|
||
LEFT JOIN mk k4 ON x.melding_key = k4.melding_key AND k4.vnr = 4
|
||
LEFT JOIN mk k5 ON x.melding_key = k5.melding_key AND k5.vnr = 5
|
||
LEFT JOIN mk k6 ON x.melding_key = k6.melding_key AND k6.vnr = 6
|
||
LEFT JOIN mk k7 ON x.melding_key = k7.melding_key AND k7.vnr = 7
|
||
LEFT JOIN mk k8 ON x.melding_key = k8.melding_key AND k8.vnr = 8
|
||
LEFT JOIN mk k9 ON x.melding_key = k9.melding_key AND k9.vnr = 9
|
||
LEFT JOIN mk k10 ON x.melding_key = k10.melding_key AND k10.vnr = 10
|
||
LEFT JOIN mk k11 ON x.melding_key = k11.melding_key AND k11.vnr = 11
|
||
LEFT JOIN mk k12 ON x.melding_key = k12.melding_key AND k12.vnr = 12
|
||
LEFT JOIN mk k13 ON x.melding_key = k13.melding_key AND k13.vnr = 13
|
||
LEFT JOIN mk k14 ON x.melding_key = k14.melding_key AND k14.vnr = 14
|
||
LEFT JOIN mk k15 ON x.melding_key = k15.melding_key AND k15.vnr = 15
|
||
LEFT JOIN mk k16 ON x.melding_key = k16.melding_key AND k16.vnr = 16
|
||
LEFT JOIN mk k17 ON x.melding_key = k17.melding_key AND k17.vnr = 17
|
||
LEFT JOIN mk k18 ON x.melding_key = k18.melding_key AND k18.vnr = 18
|
||
LEFT JOIN mk k19 ON x.melding_key = k19.melding_key AND k19.vnr = 19
|
||
LEFT JOIN mk k20 ON x.melding_key = k20.melding_key AND k20.vnr = 20
|
||
LEFT JOIN mk k21 ON x.melding_key = k21.melding_key AND k21.vnr = 21
|
||
LEFT JOIN mk k22 ON x.melding_key = k22.melding_key AND k22.vnr = 22
|
||
LEFT JOIN mk k23 ON x.melding_key = k23.melding_key AND k23.vnr = 23
|
||
LEFT JOIN mk k24 ON x.melding_key = k24.melding_key AND k24.vnr = 24
|
||
LEFT JOIN mk k25 ON x.melding_key = k25.melding_key AND k25.vnr = 25
|
||
LEFT JOIN mk k26 ON x.melding_key = k26.melding_key AND k26.vnr = 26
|
||
LEFT JOIN mk k27 ON x.melding_key = k27.melding_key AND k27.vnr = 27
|
||
LEFT JOIN mk k28 ON x.melding_key = k28.melding_key AND k28.vnr = 28
|
||
LEFT JOIN mk k29 ON x.melding_key = k29.melding_key AND k29.vnr = 29
|
||
LEFT JOIN mk k30 ON x.melding_key = k30.melding_key AND k30.vnr = 30;
|
||
|
||
CREATE OR REPLACE VIEW MNNL_V_PERSLID_NAAMTEL
|
||
(
|
||
PERSLID_KEY,
|
||
NAAMTEL
|
||
)
|
||
AS
|
||
SELECT prs_perslid_key,
|
||
prs_perslid_naam
|
||
|| ' ('
|
||
|| prs_perslid_voornaam
|
||
|| ') - '
|
||
|| prs_perslid_oslogin
|
||
|| ' - '
|
||
|| prs_perslid_telefoonnr
|
||
FROM prs_perslid
|
||
WHERE prs_perslid_verwijder IS NULL
|
||
AND prs_perslid_voornaam NOT LIKE '%Leverancier%'
|
||
AND prs_perslid_voornaam NOT LIKE '%Algemeen%'
|
||
AND prs_perslid_naam NOT LIKE '%test%'
|
||
AND prs_perslid_naam NOT LIKE '%INACTIEF%'
|
||
AND prs_perslid_oslogin NOT LIKE '%LEV_%'
|
||
AND prs_perslid_email LIKE '%@mn.nl%'
|
||
ORDER BY prs_perslid_naam;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_overwerk
|
||
(
|
||
res_key,
|
||
res_rsv_ruimte_key,
|
||
datum_overwerk,
|
||
start_tijd,
|
||
eind_tijd,
|
||
soort_overwerk,
|
||
verdieping,
|
||
interne_deelnemers,
|
||
externe_deelnemers
|
||
)
|
||
AS
|
||
SELECT DISTINCT
|
||
rsv.res_reservering_key,
|
||
rsv.res_rsv_ruimte_key,
|
||
TRUNC (rsv.res_rsv_ruimte_van),
|
||
TO_CHAR (rsv.res_rsv_ruimte_van, 'HH24:MI'),
|
||
TO_CHAR (rsv.res_rsv_ruimte_tot, 'HH24:MI'),
|
||
ra.res_activiteit_omschrijving,
|
||
x.fac_usrdata_omschr,
|
||
pers.deelnemer,
|
||
(SELECT LISTAGG (bez_afspraak_naam || ' (' || bez_afspraak_bedrijf || ')' , ', ')
|
||
WITHIN GROUP (ORDER BY bez_afspraak_naam)
|
||
FROM bez_bezoekers b, bez_afspraak a
|
||
WHERE b.bez_afspraak_key = a.bez_afspraak_key
|
||
AND a.res_rsv_ruimte_key = rsv.res_rsv_ruimte_key) -- Externe deelnemers
|
||
FROM res_rsv_ruimte rsv,
|
||
res_activiteit ra,
|
||
res_kenmerkwaarde rkw,
|
||
mnnl_v_perslid_naamtel pt,
|
||
(SELECT DISTINCT f.fac_usrdata_omschr, f.fac_usrdata_key
|
||
FROM fac_usrdata f, res_kenmerk rk, res_kenmerkwaarde rkw
|
||
WHERE rkw.res_kenmerk_key = rk.res_kenmerk_key
|
||
AND rk.res_srtkenmerk_key = 164 -- Verdieping
|
||
AND rkw.res_kenmerkwaarde_verwijder IS NULL
|
||
AND f.fac_usrtab_key = 621) x,
|
||
(SELECT DISTINCT
|
||
LISTAGG (pt.naamtel, ', ')
|
||
WITHIN GROUP (ORDER BY pt.naamtel)
|
||
deelnemer,
|
||
rkw.res_rsv_ruimte_key
|
||
FROM mnnl_v_perslid_naamtel pt,
|
||
res_kenmerk rk,
|
||
res_kenmerkwaarde rkw
|
||
WHERE rkw.res_kenmerk_key = rk.res_kenmerk_key
|
||
AND rk.res_srtkenmerk_key = 162 -- Deelnemer
|
||
AND rkw.res_kenmerkwaarde_verwijder IS NULL
|
||
AND rkw.res_kenmerkreservering_waarde = pt.perslid_key
|
||
GROUP BY rkw.res_rsv_ruimte_key) pers
|
||
WHERE ra.res_activiteit_key IN (210, 211) -- Overwerk, Overwerk Weekend
|
||
AND rsv.res_activiteit_key = ra.res_activiteit_key
|
||
AND rsv.res_rsv_ruimte_key = rkw.res_rsv_ruimte_key
|
||
AND x.fac_usrdata_key =
|
||
fac.safe_to_number (rkw.res_kenmerkreservering_waarde)
|
||
AND pers.res_rsv_ruimte_key = rkw.res_rsv_ruimte_key;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_ins_qrc_ruimte
|
||
(
|
||
FCLT_3D_LOCATIE_KEY,
|
||
FCLT_F_LOCATIE,
|
||
FCLT_F_GEBOUW,
|
||
PLAATS,
|
||
SOORTRUIMTE,
|
||
INS_ALG_RUIMTE_TYPE,
|
||
ALG_DISTRICT_KEY,
|
||
ALG_RUIMTE_KEY,
|
||
HIDE_F_BOOKMARK_ID
|
||
)
|
||
AS
|
||
SELECT l.alg_locatie_key,
|
||
l.alg_locatie_omschrijving,
|
||
x.alg_gebouw_naam,
|
||
SUBSTR (x.alg_plaatsaanduiding, 7) plaats,
|
||
x.alg_ruimte_omschrijving soortruimte,
|
||
sr.alg_srtruimte_omschrijving,
|
||
l.alg_district_key,
|
||
x.alg_ruimte_key,
|
||
b.fac_bookmark_id
|
||
FROM alg_v_allonrgoed_gegevens x,
|
||
alg_locatie l,
|
||
alg_district di,
|
||
fac_bookmark b,
|
||
alg_ruimte r,
|
||
alg_srtruimte sr
|
||
WHERE b.fac_bookmark_naam = 'QRC naar ruimte'
|
||
AND x.alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_srtruimte_key = sr.alg_srtruimte_key
|
||
AND x.alg_locatie_key = l.alg_locatie_key
|
||
AND l.alg_district_key = di.alg_district_key;
|
||
|
||
-- Dummy export NACHTWERK!
|
||
-- MNNL#54328: Automatisch verwerken alle afgemelde meldingen.
|
||
CREATE OR REPLACE PROCEDURE mnnl_select_nachtwerk (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Auto-afmelden alle afgemelde meldingen in de nacht na afmelden!
|
||
CURSOR c_mldver
|
||
IS
|
||
SELECT '[' || TO_CHAR (m.mld_melding_key) || '] ' aanduiding,
|
||
m.mld_melding_key
|
||
FROM mld_melding m
|
||
WHERE m.mld_melding_status = 5 -- Afgemeld
|
||
ORDER BY m.mld_melding_key;
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_bedrijf_key NUMBER;
|
||
v_count NUMBER;
|
||
BEGIN
|
||
v_count := 0;
|
||
|
||
-- Auto-verwerken alle afgemelde meldingen in de nacht na afmelden!
|
||
FOR rec IN c_mldver
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout auto-verwerken';
|
||
|
||
MLD.setmeldingstatus (rec.mld_melding_key, 6, NULL);
|
||
v_count := v_count + 1;
|
||
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 (p_applname, 'W', rec.aanduiding || v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', 'Meldingen/#verwerkt: ' || TO_CHAR (v_count), '');
|
||
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 (p_applname, 'E', 'Proces NACHTWERK afgebroken!', v_errormsg);
|
||
END mnnl_select_nachtwerk;
|
||
/
|
||
|
||
-- MNNL#72704: Export naar SNOW (= Servicenow) die telkens voorafgaand aan
|
||
-- putOrders het volgende doet:
|
||
-- 1. Relevante wijzigingen in opdracht (anders dan vanuit SNOW
|
||
-- via API) opnieuw uitgeven via orderqueue.
|
||
-- 2. Laatste sync-datum registreren, zodat eerdere wijzigingen
|
||
-- niet nogmaals worden doorgezet.
|
||
CREATE OR REPLACE PROCEDURE MNNL_SELECT_SNOW (p_applname IN VARCHAR2,
|
||
p_applrun IN VARCHAR2)
|
||
AS
|
||
-- Nieuwe notitie(s) sinds laatste sync!
|
||
CURSOR c_sync
|
||
IS
|
||
SELECT '[' || TO_CHAR (mld_melding_key) || '/' || TO_CHAR (mld_opdr_bedrijfopdr_volgnr) || '] '
|
||
aanduiding,
|
||
mld_opdr_key,
|
||
COALESCE (syncdate_old, TRUNC (SYSDATE)) syncdate_old,
|
||
MAX (syncdate_new) syncdate_new,
|
||
MAX (actie) actie
|
||
FROM (SELECT o.mld_melding_key, -- Door te zetten Notities?
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_externsyncdate syncdate_old,
|
||
GREATEST (mon.mld_opdr_note_aanmaak, mon.mld_opdr_note_wijzigdatum)
|
||
syncdate_new,
|
||
'1Notitie(s) naar SNOW' actie
|
||
FROM mld_opdr o, mld_opdr_note mon
|
||
WHERE o.mld_uitvoerende_keys = 22644 -- Sogeti
|
||
AND o.mld_statusopdr_key IN (5, 8) -- Toegekend/Geaccepteerd
|
||
AND o.mld_opdr_verzonden IS NOT NULL
|
||
AND o.mld_opdr_key = mon.mld_opdr_key
|
||
AND mon.prs_perslid_key != 29124 -- API-user tbv. Sogeti
|
||
AND GREATEST (mon.mld_opdr_note_aanmaak, mon.mld_opdr_note_wijzigdatum) >
|
||
COALESCE (o.mld_opdr_externsyncdate, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT o.mld_melding_key, -- Reopen als 'Klant niet akkoord' aangevinkt?
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_externsyncdate syncdate_old,
|
||
ko.mld_kenmerkopdr_aanmaak syncdate_new,
|
||
'2Ticket reopen naar SNOW' actie
|
||
FROM mld_opdr o, mld_v_aanwezigkenmerkopdr ko
|
||
WHERE o.mld_uitvoerende_keys = 22644 -- Sogeti
|
||
AND o.mld_statusopdr_key IN (5, 8) -- Toegekend/Geaccepteerd
|
||
AND o.mld_opdr_verzonden IS NOT NULL
|
||
AND o.mld_opdr_key = ko.mld_opdr_key
|
||
AND ko.mld_kenmerk_key = 5501 -- Klant niet akkoord
|
||
AND ko.mld_kenmerkopdr_aanmaak >
|
||
COALESCE (o.mld_opdr_externsyncdate, TRUNC (SYSDATE))
|
||
UNION ALL
|
||
SELECT o.mld_melding_key, -- Close als ORDAFM vanuit MN (klant akkoord)?
|
||
o.mld_opdr_bedrijfopdr_volgnr,
|
||
o.mld_opdr_key,
|
||
o.mld_opdr_externsyncdate syncdate_old,
|
||
t.fac_tracking_datum syncdate_new,
|
||
'3Ticket closed naar SNOW' actie
|
||
FROM mld_opdr o, fac_tracking t
|
||
WHERE o.mld_uitvoerende_keys = 22644 -- Sogeti
|
||
AND o.mld_opdr_verzonden IS NOT NULL
|
||
AND o.mld_opdr_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 58 -- ORDAFM
|
||
AND t.prs_perslid_key != 29124 -- API-user tbv. Sogeti
|
||
AND t.fac_tracking_datum >
|
||
COALESCE (o.mld_opdr_externsyncdate, TRUNC (SYSDATE)))
|
||
GROUP BY '[' || TO_CHAR (mld_melding_key) || '/' || TO_CHAR (mld_opdr_bedrijfopdr_volgnr) || '] ',
|
||
mld_opdr_key,
|
||
COALESCE (syncdate_old, TRUNC (SYSDATE));
|
||
|
||
v_errormsg VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_count NUMBER;
|
||
v_exist NUMBER;
|
||
v_kenmerkopdr_key NUMBER(10);
|
||
BEGIN
|
||
v_count := 0;
|
||
|
||
-- Sync-en wijziging(en)!
|
||
FOR rec IN c_sync
|
||
LOOP
|
||
BEGIN
|
||
v_errormsg := 'Fout sync-en wijziging(en)';
|
||
|
||
-- TRUC: Zet wijzigdatum van te notificeren notities op syncdate_new!
|
||
-- Bij 1 notitie zal gelden syncdate_new = wijzigdatum (en wijzigt er
|
||
-- niets), maar truc gaat pas echt werken als er >1 notities zijn!
|
||
UPDATE mld_opdr_note
|
||
SET mld_opdr_note_wijzigdatum = rec.syncdate_new
|
||
WHERE mld_opdr_key = rec.mld_opdr_key
|
||
AND GREATEST (mld_opdr_note_aanmaak, mld_opdr_note_wijzigdatum) > rec.syncdate_old;
|
||
|
||
-- Als klant niet akkoord, dan wissen 'Klant niet akkoord'-kenmerk en
|
||
-- vullen 'Laatst heropend'-kenmerk!
|
||
IF SUBSTR (rec.actie, 1, 1) = '2' -- Reopen (incl. evt. Notities)
|
||
THEN
|
||
DELETE FROM mld_kenmerkopdr
|
||
WHERE mld_kenmerk_key = 5501 -- Klant niet akkoord
|
||
AND mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
SELECT COUNT ( * )
|
||
INTO v_exist
|
||
FROM mld_v_aanwezigkenmerkopdr
|
||
WHERE mld_kenmerk_key = 5502 -- Laatst heropend
|
||
AND mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
IF v_exist = 0
|
||
THEN
|
||
INSERT INTO mld_kenmerkopdr (mld_kenmerk_key,
|
||
mld_opdr_key,
|
||
mld_kenmerkopdr_waarde)
|
||
VALUES (5502,
|
||
rec.mld_opdr_key,
|
||
TO_CHAR (rec.syncdate_new, 'dd-mm-yyyy hh24:mi:ss'));
|
||
ELSE
|
||
SELECT mld_kenmerkopdr_key
|
||
INTO v_kenmerkopdr_key
|
||
FROM mld_v_aanwezigkenmerkopdr
|
||
WHERE mld_kenmerk_key = 5502 -- Laatst heropend
|
||
AND mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
UPDATE mld_kenmerkopdr
|
||
SET mld_kenmerkopdr_waarde = TO_CHAR (rec.syncdate_new, 'dd-mm-yyyy hh24:mi:ss')
|
||
WHERE mld_kenmerkopdr_key = v_kenmerkopdr_key;
|
||
END IF;
|
||
END IF;
|
||
|
||
UPDATE mld_opdr
|
||
SET mld_opdr_teverzenden = 2,
|
||
mld_opdr_verzonden = NULL,
|
||
mld_opdr_teverzenden_datum = NULL, -- TODO:Navragen???
|
||
mld_opdr_externsyncdate = rec.syncdate_new
|
||
WHERE mld_opdr_key = rec.mld_opdr_key;
|
||
|
||
fac.trackaction ('ORDUPD', rec.mld_opdr_key, NULL, NULL, SUBSTR (rec.actie, 2));
|
||
COMMIT;
|
||
|
||
v_count := v_count + 1;
|
||
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 (p_applname, 'W', rec.aanduiding || v_errormsg, '');
|
||
COMMIT;
|
||
END;
|
||
END LOOP;
|
||
|
||
fac.writelog (p_applname, 'S', 'Opdrachten/#sync: ' || TO_CHAR (v_count), '');
|
||
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 (p_applname, 'E', 'SNOW-export afgebroken!', v_errormsg);
|
||
END MNNL_SELECT_SNOW;
|
||
/
|
||
|
||
-- MNNL#63195 MJOB IMPORT
|
||
CREATE OR REPLACE PROCEDURE mnnl_import_insp_mjob (p_import_key IN NUMBER)
|
||
IS
|
||
c_fielddelimitor VARCHAR2 (1) := ';';
|
||
|
||
v_newline VARCHAR2 (4000); -- Input line
|
||
v_errormsg VARCHAR (1000);
|
||
v_hint VARCHAR2 (1000);
|
||
oracle_err_num NUMBER;
|
||
oracle_err_mes VARCHAR2 (200);
|
||
v_ongeldig NUMBER (1);
|
||
v_aanduiding VARCHAR2 (200);
|
||
v_header_is_valid NUMBER (1);
|
||
v_dummy VARCHAR2 (1000);
|
||
v_count NUMBER;
|
||
v_count_rec NUMBER := 0 ; -- totaal aantal record in csv
|
||
v_count_verwerk NUMBER ; -- aantal te verwerken regels
|
||
v_count_n_taak NUMBER ; -- aantal nieuw aan te maken basistaken
|
||
v_count_n_taakobject NUMBER ; -- aantal nieuw aan te maken objecttaken
|
||
v_count_w_taak NUMBER ; -- aantal bestaande taken te wijzigen
|
||
|
||
-- De importvelden:
|
||
v_locatiecode VARCHAR2(1000);
|
||
v_objectomschrijving VARCHAR2(1000);
|
||
v_taakcategorie VARCHAR2(1000);
|
||
v_taakomschrijving VARCHAR2(1000);
|
||
v_taakomschrijving_nieuw VARCHAR2(1000); -- Vullen we in kolom extra_veld5
|
||
v_taakopmerking VARCHAR2(1000);
|
||
v_taakgroep VARCHAR2(1000);
|
||
v_taakprioriteit VARCHAR2(1000);
|
||
v_taakobjectpercentage VARCHAR2(1000);
|
||
v_taakobjectopmerking VARCHAR2(1000);
|
||
v_taakobjectperiode VARCHAR2(1000);
|
||
v_taakobjectstartjaar VARCHAR2(1000); -- Startjaar uit CSV
|
||
v_taakobjectstartjaar_d DATE;
|
||
v_object_aanmaak DATE; -- Datum aanmaak van Object
|
||
|
||
v_taakobjecteindjaar VARCHAR2(1000);
|
||
v_taakobjecteindjaar_d DATE;
|
||
v_taakobjectmateriaal VARCHAR2(1000);
|
||
v_taakobjectkosten VARCHAR2(1000);
|
||
v_taakobjecteenheid VARCHAR2(1000);
|
||
v_taakdienst VARCHAR2(1000);
|
||
v_deel_key NUMBER(10);
|
||
v_discipline_key NUMBER(10);
|
||
v_ismjob NUMBER;
|
||
v_taak_geschiedenis NUMBER (10); -- Vullen we in kolom extra_veld4
|
||
|
||
v_srtcontrole_key NUMBER(10);
|
||
v_srtcontrole_teller NUMBER(10);
|
||
v_ins_srtdeel_key NUMBER(10);
|
||
v_ins_srtdeel_code VARCHAR2(10);
|
||
v_ins_srtcontroledl_xcp_key NUMBER(10);
|
||
v_taakobject_startjaar_d DATE; -- Startjaar van de reeds in Facilitor gekoppelde objecttaak
|
||
|
||
CURSOR c
|
||
IS
|
||
SELECT *
|
||
FROM fac_imp_file
|
||
WHERE fac_import_key = p_import_key
|
||
ORDER BY fac_imp_file_index;
|
||
|
||
BEGIN
|
||
-- Eerst opruiming
|
||
|
||
DELETE FROM tmp_imp_mjb;
|
||
|
||
COMMIT;
|
||
|
||
v_header_is_valid := 0;
|
||
v_ongeldig := 0;
|
||
|
||
FOR rec IN c
|
||
LOOP
|
||
|
||
BEGIN
|
||
v_ongeldig := 0;
|
||
v_taak_geschiedenis := NULL ;
|
||
v_deel_key := NULL ;
|
||
v_ins_srtdeel_key := NULL ;
|
||
v_ins_srtdeel_code := NULL ;
|
||
v_srtcontrole_key := NULL ;
|
||
v_ins_srtcontroledl_xcp_key := NULL;
|
||
|
||
v_errormsg := 'Fout FETCH te importeren rij';
|
||
v_newline := rec.fac_imp_file_line;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij:' || SUBSTR (v_newline, 1, 200);
|
||
v_aanduiding := '';
|
||
|
||
-- OUD: 'OBJECTOMSCHRIJVING;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKBTW;TAAKKOSTENPLAATSNR;TAAKKOSTENPLAATSOMSCHRIJVING;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN%
|
||
-- NIEUW (vanaf 2020-6): OBJECTIDENTIFICATIE;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW;
|
||
|
||
IF (REPLACE(UPPER (v_newline), ' ') LIKE 'OBJECTIDENTIFICATIE;TAAKCATEGORIE;TAAKOMSCHRIJVING;TAAKOPMERKING;TAAKGROEP;TAAKPRIORITEIT;TAAKOBJECTPERCENTAGE;TAAKOBJECTOPMERKING;TAAKOBJECTEENHEID;TAAKOBJECTPERIODE;TAAKOBJECTSTARTJAAR;TAAKOBJECTEINDJAAR;TAAKOBJECTKOSTEN;DIENST;TAAKOMSCHRIJVINGNIEUW%')
|
||
THEN
|
||
v_header_is_valid := 1;
|
||
ELSE
|
||
-- Lees alle veldwaarden
|
||
v_count_rec := v_count_rec + 1 ;
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (object)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_objectomschrijving);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (discipline)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakcategorie);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijving)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakopmerking)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakopmerking);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakgroep)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakgroep);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (prioriteit)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakprioriteit);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (percentage)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectpercentage);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (opmerking)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectopmerking);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (eenheid)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteenheid);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (periode)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectperiode);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (startjaar)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectstartjaar);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (eindjaar)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjecteindjaar);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (materiaal)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakobjectmateriaal);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (dienst)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakdienst);
|
||
|
||
v_errormsg := 'Fout opvragen te importeren rij (taakomschrijvingnieuw)';
|
||
fac.imp_getfield (v_newline, c_fielddelimitor, v_taakomschrijving_nieuw);
|
||
|
||
|
||
IF v_header_is_valid = 1 THEN -- Als geldige header gepasseerd en csv-recordvelden gevuld dan gaan we eerst checken of data klopt
|
||
|
||
-- Controleer of het object bestaat
|
||
-- Controleer of object er meerdere keren in staat (valt terug naar OTHERS, regel 300)
|
||
BEGIN
|
||
v_errormsg :=
|
||
'Fout bij opzoeken object: ' || v_objectomschrijving ||' komt vaker dan 1 keer voor';
|
||
|
||
SELECT ins_deel_key
|
||
INTO v_deel_key
|
||
FROM ins_deel
|
||
WHERE UPPER (ins_deel_omschrijving) = UPPER (v_objectomschrijving)
|
||
AND ins_deel_verwijder IS NULL;
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Object bestaat niet - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
||
v_ongeldig := 1;
|
||
END;
|
||
|
||
-- Controleer de taakcategorie
|
||
v_errormsg :=
|
||
'Fout bij controleren taakcategorie ' ;
|
||
BEGIN
|
||
SELECT ins_discipline_key, ctr_disc_params_ismjob
|
||
INTO v_discipline_key, v_ismjob
|
||
FROM ins_tab_discipline d, ctr_disc_params dp
|
||
WHERE dp.ctr_ins_discipline_key = d.ins_discipline_key
|
||
AND UPPER (d.ins_discipline_omschrijving) = TRIM(UPPER(v_taakcategorie));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Inspectie discipline niet gevonden - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_taakcategorie);
|
||
v_ongeldig := 1;
|
||
END;
|
||
|
||
-- Controleer de eenheid
|
||
IF v_ismjob = 1
|
||
THEN
|
||
v_taakobjecteenheid := '4'; -- jaar
|
||
END IF;
|
||
|
||
IF v_taakobjecteenheid IS NOT NULL AND v_taakobjecteenheid NOT IN ('1', '2', '3', '4')
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Eenheid is niet correct gevuld (of leeg of 1,2,3,4) - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer dienst
|
||
v_errormsg :=
|
||
'Fout controleren dienst ';
|
||
|
||
IF v_taakdienst IS NOT NULL
|
||
THEN
|
||
SELECT count(*)
|
||
INTO v_count
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(v_taakdienst);
|
||
|
||
IF v_count = 0
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'W', 'Dienst onbekend - zal bij verwerken aangemaakt worden.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakdienst);
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Controleer de kosten - leeg of numeriek
|
||
v_errormsg :=
|
||
'Fout controleren kosten ';
|
||
|
||
IF v_taakobjectmateriaal IS NOT NULL AND fac.safe_to_number (REPLACE (v_taakobjectmateriaal, ',', '.')) IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Kosten taakobject niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakobjectmateriaal);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer de taakperiode - Leeg of numeriek
|
||
v_errormsg :=
|
||
'Fout controleren taakperiode ';
|
||
|
||
IF v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer de taakprioriteit - Leeg of numeriek
|
||
v_errormsg :=
|
||
'Fout controleren taakprioriteit ';
|
||
|
||
IF v_taakprioriteit IS NOT NULL AND fac.safe_to_number (v_taakprioriteit) IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Prioriteit taak niet goed ingevuld - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || 'Kosten csv: ' || v_taakprioriteit);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
-- Controleer de startdatum
|
||
v_errormsg :=
|
||
'Fout bij controle startdatum ';
|
||
|
||
-- In geval jaar-invoer op datum zetten..
|
||
IF LENGTH (v_taakobjectstartjaar) = 4
|
||
THEN
|
||
v_taakobjectstartjaar := '01-01-' || v_taakobjectstartjaar;
|
||
END IF;
|
||
|
||
IF v_taakobjectstartjaar IS NOT NULL AND fac.safe_to_date (v_taakobjectstartjaar, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Startdatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjectstartjaar);
|
||
v_ongeldig := 1;
|
||
ELSE
|
||
v_taakobjectstartjaar_d := fac.safe_to_date(v_taakobjectstartjaar, 'dd-mm-yyyy') ;
|
||
END IF;
|
||
|
||
-- Hier controleren of de startdatum voor de Objectregisratiedatum ligt
|
||
v_errormsg :=
|
||
'Fout bij controle start- en objectregistratiedatum ';
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
||
THEN
|
||
|
||
SELECT ins_deel_aanmaak
|
||
INTO v_object_aanmaak
|
||
FROM ins_deel
|
||
WHERE ins_deel_key = v_deel_key ;
|
||
END IF;
|
||
|
||
-- Controleer de einddatum
|
||
v_errormsg :=
|
||
'Fout bij controle einddatum ';
|
||
|
||
-- In geval jaar-invoer op datum zetten..
|
||
IF LENGTH (v_taakobjecteindjaar) = 4
|
||
THEN
|
||
v_taakobjecteindjaar := '31-12-' || v_taakobjecteindjaar;
|
||
END IF;
|
||
|
||
IF v_taakobjecteindjaar IS NOT NULL AND fac.safe_to_date (v_taakobjecteindjaar, 'dd-mm-yyyy') IS NULL
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Einddatum ongeldige invoer - Regel wordt niet verwerkt.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - Datum csv: ' || v_taakobjecteindjaar);
|
||
v_ongeldig := 1;
|
||
ELSE
|
||
v_taakobjecteindjaar_d := fac.safe_to_date(v_taakobjecteindjaar, 'dd-mm-yyyy') ;
|
||
END IF;
|
||
|
||
-- Hier controleren of de taak al bestaat...
|
||
v_errormsg :=
|
||
'Fout controleren nieuwe of bestaande taak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ;
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0
|
||
THEN
|
||
|
||
-- Eerst ins_srtdeel_code bepalen
|
||
SELECT d.ins_srtdeel_key, sd.ins_srtdeel_code
|
||
INTO v_ins_srtdeel_key, v_ins_srtdeel_code
|
||
FROM ins_deel d, ins_srtdeel sd
|
||
WHERE d.ins_deel_key = v_deel_key
|
||
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
|
||
AND ins_deel_verwijder IS NULL;
|
||
|
||
-- Vervolgens kijken of er al een taak op aangemaakt is
|
||
|
||
SELECT count(*)
|
||
INTO v_srtcontrole_teller
|
||
FROM ins_srtcontrole
|
||
WHERE LOWER(ins_srtcontrole_omschrijving) =
|
||
SUBSTR (
|
||
TRIM (
|
||
v_ins_srtdeel_code
|
||
|| ' - '
|
||
|| LOWER(v_taakomschrijving)),
|
||
1,
|
||
60);
|
||
|
||
-- Zo ja, dan gaan we de srt_controle_key vullen
|
||
--- Ps. Komt soms bij heyday voor dat eenzelfde basistaak er meer dan 1 keer in staat (per ongeluk) en daarom pakken we hier dan de max(key).
|
||
IF v_srtcontrole_teller >0 THEN
|
||
|
||
SELECT max(ins_srtcontrole_key)
|
||
INTO v_srtcontrole_key
|
||
FROM ins_srtcontrole
|
||
WHERE LOWER(ins_srtcontrole_omschrijving) =
|
||
SUBSTR (
|
||
TRIM (
|
||
v_ins_srtdeel_code
|
||
|| ' - '
|
||
|| LOWER(v_taakomschrijving)),
|
||
1,
|
||
60) ;
|
||
|
||
ELSE -- Zo niet, dan is het dus geen bestaande standaard taak en gaan we straks in de update NIEUWE taak aanmaken
|
||
|
||
-- En passen dan ook maar gelijk taakomschrijving goed aan
|
||
v_errormsg := 'Fout bij aanpassen taakomschrijving ';
|
||
|
||
IF (LENGTH (TRIM(v_ins_srtdeel_code)) + 3 + LENGTH(TRIM(v_taakomschrijving))) > 60
|
||
THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'W', 'Nieuwe taak - Aangepast ivm lengte groter dan 60 ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' wordt: ' || SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) );
|
||
END IF;
|
||
|
||
v_taakomschrijving := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || v_taakomschrijving), 1, 60) ;
|
||
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Hier controleren of voor de bestaande taak ook de objecttaak al bestaat...
|
||
v_errormsg :=
|
||
'Fout controleren nieuwe of bestaande objecttaak ' || rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving ;
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL THEN
|
||
|
||
SELECT max(t.ins_srtcontroledl_xcp_key), max(t.ins_srtcontroledl_xcp_startdat)
|
||
INTO v_ins_srtcontroledl_xcp_key, v_taakobject_startjaar_d
|
||
FROM ins_srtcontroledl_xcp t
|
||
WHERE t.ins_srtcontrole_key = v_srtcontrole_key AND t.ins_deel_key = v_deel_key ;
|
||
|
||
END IF;
|
||
|
||
-- Hier controleren of alle verplichte velden voor de nieuwe objecttaak correct zijn gevuld
|
||
---- Dit zijn: Startdatum + Eenheid + Periode + Taakgroep(?) + Percentage (?) + Kosten (?)
|
||
v_errormsg := 'Fout controleren verplichte velden bij nieuwe objecttaak ';
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_ins_srtcontroledl_xcp_key IS NULL THEN
|
||
|
||
-- startdatum mag ook leeg zijn, dan is het automatich object registratie + cyclus
|
||
-- IF v_taakobjectstartjaar IS NULL THEN
|
||
-- fac.imp_writelog (
|
||
-- p_import_key, 'E', 'Startdatum niet ingevuld - Regel wordt niet verwerkt.. ',
|
||
-- rec.fac_imp_file_index || ' - ' || v_objectomschrijving);
|
||
-- v_ongeldig := 1;
|
||
-- END IF;
|
||
|
||
IF v_taakobjecteenheid IS NULL or v_taakobjecteenheid NOT IN ('1', '2', '3', '4') THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Geen of ongeldige eenheid gevonden - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjecteenheid);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
IF (v_taakobjectperiode IS NULL) OR (v_taakobjectperiode IS NOT NULL AND fac.safe_to_number (v_taakobjectperiode) IS NULL) THEN
|
||
fac.imp_writelog (
|
||
p_import_key, 'E', 'Geen of ongeldige taakobjectperiode - Regel wordt niet verwerkt ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakobjectperiode);
|
||
v_ongeldig := 1;
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Hier controleren of er al geschiedenis op de objecttaak zit en de startdatum afwijkt van degene meegegeven in csv
|
||
v_errormsg :=
|
||
'Fout controleren geschiedenis op objecttaak ';
|
||
|
||
IF v_deel_key IS NOT NULL AND v_ongeldig = 0 AND v_srtcontrole_key IS NOT NULL AND v_ins_srtcontroledl_xcp_key IS NOT NULL THEN
|
||
|
||
v_taak_geschiedenis := 0;
|
||
|
||
SELECT count(*)
|
||
INTO v_taak_geschiedenis
|
||
FROM ins_deelsrtcontrole
|
||
WHERE ins_deel_key = v_deel_key and ins_srtcontrole_key = v_srtcontrole_key ;
|
||
|
||
IF v_taak_geschiedenis > 0 AND v_taakobjectstartjaar IS NOT NULL AND v_taakobjectstartjaar_d <> v_taakobject_startjaar_d
|
||
THEN
|
||
|
||
fac.imp_writelog (
|
||
p_import_key, 'W', 'Op deze objecttaak zit al geschiedenis - afwijkende startdatum zal niet aangepast worden.. ',
|
||
rec.fac_imp_file_index || ' - ' || v_objectomschrijving || ' - ' || v_taakomschrijving || ' - ' || v_taakobjectstartjaar_d || ' vs. ' || v_taakobject_startjaar_d) ;
|
||
|
||
END IF;
|
||
END IF;
|
||
|
||
-- Aangezien de taken altijd een startdatum hebben, en objecten niet altijd een aanmaakdatum, gaan we die hier gelijk trekken.
|
||
-- Daarna maken we de taak startdatum leeg, zodat de cyclus gaat lopen vanaf de bijgewerkte ins_deel_aanmaak.
|
||
-- Zo blijft het mogelijk om taken in de MJOB console te verslepen naar jaartallen eerder dan het aangegeven startjaar.
|
||
|
||
IF v_taakobjectstartjaar_d < SYSDATE
|
||
THEN
|
||
UPDATE ins_deel
|
||
SET ins_deel_aanmaak = v_taakobjectstartjaar_d
|
||
WHERE ins_deel_key = v_deel_key;
|
||
END IF;
|
||
|
||
-- v_taakobjectstartjaar_d := NULL;
|
||
|
||
-- Nu kunnen we de tussentabel vullen
|
||
v_errormsg :=
|
||
'Fout bij toevoegen regel aan tabel '
|
||
|| v_objectomschrijving;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
|
||
INSERT INTO tmp_imp_mjb (locatiecode,
|
||
objectomschrijving ,
|
||
taakcategorie,
|
||
taakomschrijving,
|
||
taakopmerking,
|
||
taakgroep,
|
||
taakprioriteit,
|
||
taakobjectpercentage,
|
||
taakobjectopmerking,
|
||
taakobjectperiode,
|
||
-- taakobjectstartjaar,
|
||
taakobjecteindjaar,
|
||
taakobjectmateriaal,
|
||
taakobjecteenheid,
|
||
taakdienst,
|
||
extra_veld4, -- Gebruiken voor taakgeschiedenis
|
||
extra_veld5, -- Gebruiken voor taakomschrijving_nieuw
|
||
deel_key,
|
||
discipline_key,
|
||
ismjob,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_key,
|
||
ins_srtdeel_key)
|
||
VALUES (v_locatiecode,
|
||
v_objectomschrijving,
|
||
v_taakcategorie,
|
||
v_taakomschrijving,
|
||
v_taakopmerking,
|
||
v_taakgroep,
|
||
v_taakprioriteit,
|
||
v_taakobjectpercentage,
|
||
v_taakobjectopmerking,
|
||
v_taakobjectperiode,
|
||
-- v_taakobjectstartjaar_d,
|
||
v_taakobjecteindjaar_d,
|
||
v_taakobjectmateriaal,
|
||
v_taakobjecteenheid,
|
||
v_taakdienst,
|
||
v_taak_geschiedenis,
|
||
v_taakomschrijving_nieuw,
|
||
v_deel_key,
|
||
v_discipline_key,
|
||
v_ismjob,
|
||
v_srtcontrole_key,
|
||
v_ins_srtcontroledl_xcp_key,
|
||
v_ins_srtdeel_key);
|
||
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
oracle_err_num := SQLCODE;
|
||
v_hint := v_errormsg;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint);
|
||
END;
|
||
END LOOP;
|
||
|
||
-- Aantallen tellen voor logging
|
||
v_errormsg := 'Fout bij tellen aantallen voor logging ' ;
|
||
|
||
v_count_verwerk := 0 ; -- aantal te verwerken regels
|
||
v_count_n_taak := 0 ; -- aantal nieuw aan te maken basistaken
|
||
v_count_n_taakobject := 0 ; -- aantal nieuw aan te maken objecttaken
|
||
v_count_w_taak := 0 ; -- aantal bestaande (object)taken te wijzigen
|
||
|
||
SELECT count(*) INTO v_count_verwerk FROM tmp_imp_mjb ;
|
||
SELECT count(*) INTO v_count_n_taak FROM (SELECT DISTINCT(taakomschrijving) FROM tmp_imp_mjb WHERE ins_srtcontrole_key IS NULL) v ;
|
||
SELECT count(*) INTO v_count_n_taakobject FROM tmp_imp_mjb WHERE ins_srtcontroledl_xcp_key IS NULL ;
|
||
SELECT count(*) INTO v_count_w_taak FROM tmp_imp_mjb WHERE ins_srtcontrole_key IS NOT NULL AND ins_srtcontroledl_xcp_key IS NOT NULL ;
|
||
|
||
|
||
IF v_header_is_valid = 0
|
||
THEN
|
||
ROLLBACK;
|
||
fac.imp_writelog (p_import_key, 'E', v_aanduiding || 'Ongeldig importbestand', 'Toelichting: Verkeerde header. Niet conform specs. ');
|
||
ELSE
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'IMPORT TAKEN: aantal te verwerken regels: ' || TO_CHAR (v_count_verwerk) || ' (van de ' || TO_CHAR (v_count_rec) || ' records in csv)'
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe taken: ' || TO_CHAR (v_count_n_taak)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe objecttaken: ' || TO_CHAR (v_count_n_taakobject)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal bestaande, te wijzigen (object)taken: ' || TO_CHAR (v_count_w_taak),
|
||
'');
|
||
END IF;
|
||
COMMIT;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
ROLLBACK;
|
||
oracle_err_num := SQLCODE;
|
||
v_hint := v_errormsg;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
|
||
fac.imp_writelog (p_import_key, 'E', v_errormsg, v_hint);
|
||
END mnnl_import_insp_mjob;
|
||
/
|
||
|
||
CREATE OR REPLACE PROCEDURE mnnl_update_insp_mjob (p_import_key IN NUMBER)
|
||
AS
|
||
CURSOR c_n -- nieuwe taken en objecttaken aanmaken..
|
||
IS
|
||
SELECT i.*
|
||
FROM tmp_imp_mjb i
|
||
WHERE i.ins_srtcontrole_key IS NULL;
|
||
|
||
CURSOR c_no -- nieuwe objecttaken aanmaken..
|
||
IS
|
||
SELECT i.*
|
||
FROM tmp_imp_mjb i
|
||
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NULL;
|
||
|
||
CURSOR c_m -- bestaande taak en/of objecttaak wijzigen
|
||
IS
|
||
SELECT i.*
|
||
FROM tmp_imp_mjb i
|
||
WHERE i.ins_srtcontrole_key IS NOT NULL AND i.ins_srtcontroledl_xcp_key IS NOT NULL;
|
||
|
||
v_errormsg VARCHAR2 (4000);
|
||
v_error_hint VARCHAR2 (4000);
|
||
oracle_err_mes VARCHAR2 (4000);
|
||
oracle_err_num VARCHAR2 (4000);
|
||
v_aanduiding VARCHAR2 (1000);
|
||
v_aanduiding_objecttaak VARCHAR2 (1000);
|
||
v_ongeldig NUMBER (1);
|
||
v_ins_srtcontrole_key NUMBER (10);
|
||
v_dienst_key NUMBER (10);
|
||
v_taak_al_aangemaakt NUMBER(10);
|
||
|
||
v_count_verwerk NUMBER := 0 ; -- aantal verwerkte records
|
||
v_count_n_taak NUMBER := 0 ; -- aantal nieuw aangemaakte basistaken
|
||
v_count_n_taakobject NUMBER := 0 ; -- aantal nieuw aangemaakte objecttaken
|
||
v_count_w_taak NUMBER := 0 ; -- aantal bestaande basistaken gewijzigd
|
||
v_count_w_taakobject NUMBER := 0 ; -- aantal bestaande object-taken gewijzigd
|
||
v_count_taak NUMBER := 0 ;
|
||
v_count_taakobject NUMBER := 0 ;
|
||
|
||
|
||
-- Velden
|
||
v_taakomschrijving VARCHAR2(1000);
|
||
v_ins_srtdeel_code VARCHAR2(10);
|
||
v_taakomschrijving_nieuw VARCHAR2(1000);
|
||
v_taakopmerking VARCHAR2(1000);
|
||
v_taakgroep VARCHAR2(1000);
|
||
v_taakdienst_key NUMBER(10);
|
||
v_taakdienst VARCHAR2(1000);
|
||
v_taakprioriteit NUMBER(3);
|
||
v_percentage NUMBER(3);
|
||
v_objecttaakopmerking VARCHAR2(1000);
|
||
v_eenheid NUMBER(3);
|
||
v_periode NUMBER(3);
|
||
v_startjaar DATE;
|
||
v_eindjaar DATE;
|
||
v_materiaalkosten NUMBER(10);
|
||
|
||
BEGIN
|
||
v_ongeldig := 0;
|
||
|
||
FOR rec IN c_n
|
||
LOOP
|
||
|
||
BEGIN
|
||
v_aanduiding :=
|
||
rec.objectomschrijving
|
||
|| ' / '
|
||
|| rec.taakcategorie
|
||
|| ' - '
|
||
|| rec.taakomschrijving;
|
||
|
||
-- Eenzelfde basistaak kan meerdere keren in CSV zitten.
|
||
-- Daarom gaan we in deze cursor eerst kijken of de basistaak er in deze LOOP al ingezet is.
|
||
-- Zo ja, dan kunnen we door naar de Objecttaak. Zo niet, dan gaan we eerst de basis
|
||
v_errormsg := 'Opzoeken basistaak ' || v_aanduiding;
|
||
v_taak_al_aangemaakt:=0;
|
||
|
||
SELECT count(*)
|
||
INTO v_taak_al_aangemaakt
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
||
|
||
-- Als basistaak al in loop was aangemaakt nog even de key erbij zoeken
|
||
IF v_taak_al_aangemaakt >0
|
||
THEN
|
||
|
||
SELECT max(ins_srtcontrole_key)
|
||
INTO v_ins_srtcontrole_key
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_omschrijving = rec.taakomschrijving;
|
||
|
||
END IF;
|
||
|
||
-- Basistaak aanmaken
|
||
IF v_taak_al_aangemaakt = 0
|
||
THEN
|
||
|
||
-- We gaan we eerst op zoek naar de dienst.
|
||
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
||
v_dienst_key := NULL;
|
||
IF rec.taakdienst IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_dienst_key
|
||
INTO v_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
||
VALUES (SUBSTR(rec.taakdienst,1,60))
|
||
RETURNING prs_dienst_key INTO v_dienst_key;
|
||
END;
|
||
END IF;
|
||
|
||
v_count_verwerk := v_count_verwerk + 1 ;
|
||
v_count_n_taak := v_count_n_taak +1 ;
|
||
|
||
v_errormsg := 'Aanmaken taak ' || v_aanduiding;
|
||
INSERT INTO ins_srtcontrole (
|
||
ins_srtinstallatie_key,
|
||
ins_srtcontrole_niveau,
|
||
ins_srtcontrole_omschrijving,
|
||
ctr_discipline_key,
|
||
ins_srtcontrole_info,
|
||
ins_srtcontrole_periode,
|
||
ins_srtcontrole_eenheid,
|
||
ins_srtcontrole_mode,
|
||
ins_srtcontrole_level,
|
||
ins_srtcontrole_opmerking,
|
||
prs_dienst_key)
|
||
VALUES (
|
||
rec.ins_srtdeel_key,
|
||
'S',
|
||
rec.taakomschrijving,
|
||
rec.discipline_key,
|
||
NULL,
|
||
0,
|
||
rec.taakobjecteenheid,
|
||
1,
|
||
COALESCE (rec.taakprioriteit, '0'),
|
||
rec.taakopmerking,
|
||
v_dienst_key)
|
||
RETURNING ins_srtcontrole_key
|
||
INTO v_ins_srtcontrole_key;
|
||
|
||
fac.trackaction('CTRSUP', v_ins_srtcontrole_key, 4, NULL, 'Periodieke taak toegevoegd - Via taakimport ');
|
||
|
||
END IF;
|
||
|
||
-- Nu kunnen we de objectaak aanmaken
|
||
v_count_n_taakobject := v_count_n_taakobject +1 ;
|
||
|
||
v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' ['
|
||
|| rec.deel_key || '|'
|
||
|| v_ins_srtcontrole_key || '|'
|
||
|| rec.taakobjectperiode || '|'
|
||
|| rec.taakobjecteenheid || '|'
|
||
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|'
|
||
|| ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|'
|
||
|| rec.taakgroep || '|'
|
||
|| rec.taakobjectopmerking || ']';
|
||
|
||
INSERT INTO ins_srtcontroledl_xcp (
|
||
ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_perc,
|
||
ins_srtcontroledl_xcp_groep,
|
||
ins_srtcontroledl_xcp_opmerk)
|
||
VALUES (
|
||
rec.deel_key,
|
||
v_ins_srtcontrole_key,
|
||
rec.taakobjectperiode,
|
||
rec.taakobjecteenheid,
|
||
fac.safe_to_number (
|
||
REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
||
ROUND(fac.safe_to_number (
|
||
REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
||
rec.taakgroep,
|
||
rec.taakobjectopmerking
|
||
);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_no
|
||
LOOP
|
||
BEGIN
|
||
|
||
v_aanduiding :=
|
||
rec.objectomschrijving
|
||
|| ' / '
|
||
|| rec.taakcategorie
|
||
|| ' - '
|
||
|| rec.taakomschrijving;
|
||
|
||
-- We kunnen direct objectaak aanmaken
|
||
v_count_verwerk := v_count_verwerk + 1 ;
|
||
v_count_n_taakobject := v_count_n_taakobject +1 ;
|
||
|
||
v_errormsg := 'Aanmaken taak object ' || v_aanduiding || ' ['
|
||
|| rec.deel_key || '|'
|
||
|| rec.ins_srtcontrole_key || '|'
|
||
|| rec.taakobjectperiode || '|'
|
||
|| rec.taakobjecteenheid || '|'
|
||
|| fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) || '|'
|
||
|| ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.'))) || '|'
|
||
|| rec.taakgroep || '|'
|
||
|| rec.taakobjectopmerking || ']';
|
||
INSERT INTO ins_srtcontroledl_xcp (
|
||
ins_deel_key,
|
||
ins_srtcontrole_key,
|
||
ins_srtcontroledl_xcp_periode,
|
||
ins_srtcontroledl_xcp_eenheid,
|
||
ins_srtcontroledl_xcp_materia,
|
||
ins_srtcontroledl_xcp_perc,
|
||
ins_srtcontroledl_xcp_groep,
|
||
ins_srtcontroledl_xcp_opmerk)
|
||
VALUES (
|
||
rec.deel_key,
|
||
rec.ins_srtcontrole_key,
|
||
rec.taakobjectperiode,
|
||
rec.taakobjecteenheid,
|
||
fac.safe_to_number (
|
||
REPLACE (rec.taakobjectmateriaal, ',', '.')),
|
||
ROUND(fac.safe_to_number (
|
||
REPLACE (rec.taakobjectpercentage, ',', '.'))),
|
||
rec.taakgroep,
|
||
rec.taakobjectopmerking);
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
||
END LOOP;
|
||
|
||
FOR rec IN c_m
|
||
LOOP
|
||
BEGIN
|
||
v_count_verwerk := v_count_verwerk + 1 ;
|
||
|
||
v_aanduiding :=
|
||
rec.objectomschrijving
|
||
|| ' / '
|
||
|| rec.taakcategorie
|
||
|| ' - '
|
||
|| rec.taakomschrijving;
|
||
|
||
-- Basis-taak - Taakomschrijving
|
||
v_errormsg := 'Fout taakomschrijving wijzigen ';
|
||
v_taakomschrijving := '' ; -- huidige taakomschrijving
|
||
v_taakomschrijving_nieuw := '' ;
|
||
|
||
IF rec.extra_veld5 IS NOT NULL
|
||
THEN
|
||
|
||
-- Eerst de objectsrt-code ophalen en nieuwe taakomschrijving bepalen
|
||
SELECT ins_srtdeel_code_upper
|
||
INTO v_ins_srtdeel_code
|
||
FROM ins_srtdeel
|
||
WHERE ins_srtdeel_key = rec.ins_srtdeel_key ;
|
||
|
||
v_taakomschrijving_nieuw := SUBSTR (TRIM (v_ins_srtdeel_code || ' - ' || rec.extra_veld5), 1, 60) ;
|
||
|
||
-- Huidige omschrijving ophalen
|
||
SELECT ins_srtcontrole_omschrijving
|
||
INTO v_taakomschrijving
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
IF v_taakomschrijving <> v_taakomschrijving_nieuw
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_omschrijving = v_taakomschrijving_nieuw
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakomschrijving: ' || v_taakomschrijving || '-->' || v_taakomschrijving_nieuw);
|
||
END IF;
|
||
|
||
END IF;
|
||
|
||
-- Basis-taak - Taakopmerking
|
||
v_errormsg := 'Fout taakopmerking wijzigen ';
|
||
|
||
SELECT ins_srtcontrole_opmerking
|
||
INTO v_taakopmerking
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
IF v_taakopmerking IS NULL THEN v_taakopmerking := '<leeg>' ;
|
||
END IF;
|
||
|
||
IF v_taakopmerking <> rec.taakopmerking AND rec.taakopmerking IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_opmerking = rec.taakopmerking
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Taakopmerking: ' || v_taakopmerking || '-->' || rec.taakopmerking);
|
||
|
||
END IF;
|
||
|
||
-- Basis-taak - Taakprioriteit
|
||
v_errormsg := 'Fout prioriteit wijzigen ';
|
||
|
||
SELECT ins_srtcontrole_level
|
||
INTO v_taakprioriteit
|
||
FROM ins_srtcontrole
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
|
||
IF rec.taakprioriteit IS NOT NULL AND v_taakprioriteit <> fac.safe_to_number(rec.taakprioriteit)
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET ins_srtcontrole_level = fac.safe_to_number(rec.taakprioriteit)
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd Prioriteit: ' || v_taakprioriteit || '-->' || rec.taakprioriteit);
|
||
|
||
END IF;
|
||
|
||
-- Basis-taak - Dienst
|
||
v_errormsg := 'Fout dienst wijzigen ' || v_aanduiding;
|
||
v_taakdienst_key := NULL ;
|
||
v_taakdienst := '<leeg>' ;
|
||
|
||
-- Eerst huidige dienstkey en omschrijving ophalen
|
||
BEGIN
|
||
|
||
SELECT max(t.prs_dienst_key), max(d.prs_dienst_omschrijving)
|
||
INTO v_taakdienst_key, v_taakdienst
|
||
FROM ins_srtcontrole t, prs_dienst d
|
||
WHERE t.ins_srtcontrole_key = rec.ins_srtcontrole_key AND t.prs_dienst_key = d.prs_dienst_key AND t.prs_dienst_key IS NOT NULL ;
|
||
|
||
IF v_taakdienst IS NULL THEN v_taakdienst := '<leeg>' ; END IF;
|
||
IF v_taakdienst_key IS NULL THEN v_taakdienst_key := -1 ; END IF;
|
||
|
||
END;
|
||
|
||
-- Dan gaan we kijken of de dienst meegegeven in csv al bestaat
|
||
v_errormsg := 'Aanmaken/opzoeken dienst ' || v_aanduiding;
|
||
v_dienst_key := NULL;
|
||
IF rec.taakdienst IS NOT NULL
|
||
THEN
|
||
BEGIN
|
||
SELECT prs_dienst_key
|
||
INTO v_dienst_key
|
||
FROM prs_dienst
|
||
WHERE UPPER(prs_dienst_omschrijving) = UPPER(SUBSTR(rec.taakdienst, 1,60));
|
||
EXCEPTION WHEN NO_DATA_FOUND
|
||
THEN
|
||
INSERT INTO prs_dienst (prs_dienst_omschrijving)
|
||
VALUES (SUBSTR(rec.taakdienst,1,60))
|
||
RETURNING prs_dienst_key INTO v_dienst_key;
|
||
END;
|
||
END IF;
|
||
|
||
IF v_taakdienst_key <> v_dienst_key AND rec.taakdienst IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontrole
|
||
SET prs_dienst_key = v_dienst_key
|
||
WHERE ins_srtcontrole_key = rec.ins_srtcontrole_key;
|
||
v_count_taak:= 1 ;
|
||
|
||
fac.trackaction('CTRSUP', rec.ins_srtcontrole_key, 4, NULL, 'Gewijzigd taakdienst: ' || v_taakdienst || '-->' || rec.taakdienst);
|
||
|
||
END IF;
|
||
|
||
IF v_count_taak = 1 THEN
|
||
v_count_w_taak := v_count_w_taak +1 ;
|
||
END IF;
|
||
|
||
-- Gaan nu de object-taken aanpassen
|
||
v_aanduiding_objecttaak := rec.taakcategorie || ' - ' || v_ins_srtdeel_code || rec.taakomschrijving || CHR(13) || CHR(10) ;
|
||
|
||
-- Object-taak - Percentage
|
||
v_errormsg := 'Fout percentage wijzigen ';
|
||
|
||
SELECT COALESCE(ins_srtcontroledl_xcp_perc, 0)
|
||
INTO v_percentage
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjectpercentage IS NOT NULL AND v_percentage <> rec.taakobjectpercentage
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_perc = ROUND(fac.safe_to_number (REPLACE (rec.taakobjectpercentage, ',', '.')))
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Percentage: (' || v_percentage || ') --> ' || rec.taakobjectpercentage );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Opmerking
|
||
v_errormsg := 'Fout opmerking objecttaak wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_opmerk
|
||
INTO v_objecttaakopmerking
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF v_objecttaakopmerking IS NULL THEN v_objecttaakopmerking := '<leeg>' ;
|
||
END IF;
|
||
|
||
IF rec.taakobjectopmerking IS NOT NULL AND v_objecttaakopmerking <> rec.taakobjectopmerking
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_opmerk = rec.taakobjectopmerking
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakopmerking: (' || v_objecttaakopmerking || ') --> ' || rec.taakobjectopmerking );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Eenheid
|
||
v_errormsg := 'Fout eenheid wijzigen ';
|
||
|
||
SELECT COALESCE(ins_srtcontroledl_xcp_eenheid,0)
|
||
INTO v_eenheid
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjecteenheid IS NOT NULL AND fac.safe_to_number(rec.taakobjecteenheid) <> v_eenheid AND rec.ismjob = 0
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_eenheid = fac.safe_to_number(rec.taakobjecteenheid)
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eenheid: (' || v_eenheid || ') --> ' || rec.taakobjecteenheid );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Periode
|
||
v_errormsg := 'Fout periode wijzigen ';
|
||
|
||
SELECT COALESCE(ins_srtcontroledl_xcp_periode,0)
|
||
INTO v_periode
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF rec.taakobjectperiode IS NOT NULL AND fac.safe_to_number(rec.taakobjectperiode) <> v_periode
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_periode = fac.safe_to_number(rec.taakobjectperiode)
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Periode: (' || v_periode || ') --> ' || rec.taakobjectperiode );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Taakgroep
|
||
v_errormsg := 'Fout taakgroep wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_groep
|
||
INTO v_taakgroep
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF v_taakgroep IS NULL THEN v_taakgroep := '<leeg>' ;
|
||
END IF;
|
||
|
||
IF v_taakgroep <> rec.taakgroep AND rec.taakgroep IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_groep = rec.taakgroep
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Taakgroep: (' || v_taakgroep || ') --> ' || rec.taakgroep );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Eindjaar
|
||
v_errormsg := 'Fout eindjaar wijzigen ';
|
||
|
||
SELECT ins_srtcontroledl_xcp_eind
|
||
INTO v_eindjaar
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
-- IF v_eindjaar IS NULL THEN v_eindjaar := TO_DATE(01-01-1900, 'DD-MM-YYYY'); END IF;
|
||
|
||
IF (v_eindjaar IS NULL and rec.taakobjecteindjaar IS NOT NULL) OR (v_eindjaar IS NOT NULL AND rec.taakobjecteindjaar IS NOT NULL AND v_eindjaar <> rec.taakobjecteindjaar)
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_eind = rec.taakobjecteindjaar
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Eindjaar: (' || v_eindjaar || ') --> ' || rec.taakobjecteindjaar );
|
||
|
||
END IF;
|
||
|
||
-- Object-taak - Kosten
|
||
v_errormsg := 'Fout kosten wijzigen ';
|
||
|
||
SELECT COALESCE(max(ins_srtcontroledl_xcp_materia),0)
|
||
INTO v_materiaalkosten
|
||
FROM ins_srtcontroledl_xcp
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
|
||
IF v_materiaalkosten <> fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.')) AND rec.taakobjectmateriaal IS NOT NULL
|
||
THEN
|
||
|
||
UPDATE ins_srtcontroledl_xcp
|
||
SET ins_srtcontroledl_xcp_materia = fac.safe_to_number (REPLACE (rec.taakobjectmateriaal, ',', '.'))
|
||
WHERE ins_srtcontroledl_xcp_key = rec.ins_srtcontroledl_xcp_key ;
|
||
v_count_taakobject:= 1 ;
|
||
|
||
fac.trackaction ('INSUPD', rec.deel_key, sys_context('USERENV', 'CLIENT_IDENTIFIER'), NULL, v_aanduiding_objecttaak || 'Kosten: (' || v_materiaalkosten || ') --> ' || rec.taakobjectmateriaal );
|
||
|
||
END IF;
|
||
|
||
IF v_count_taakobject = 1 THEN
|
||
v_count_w_taakobject := v_count_w_taakobject + 1 ;
|
||
END IF;
|
||
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_error_hint := v_errormsg;
|
||
oracle_err_num := SQLCODE;
|
||
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
|
||
v_errormsg :=
|
||
v_errormsg
|
||
|| 'ORACLE (error '
|
||
|| oracle_err_num
|
||
|| '/'
|
||
|| oracle_err_mes
|
||
|| ')';
|
||
fac.imp_writelog (p_import_key,
|
||
'E',
|
||
v_errormsg,
|
||
v_error_hint);
|
||
v_ongeldig := 1;
|
||
END;
|
||
v_aanduiding := 'Einde loop ' || v_aanduiding;
|
||
END LOOP;
|
||
|
||
v_ongeldig := 0;
|
||
|
||
IF v_ongeldig = 0
|
||
THEN
|
||
COMMIT;
|
||
|
||
fac.imp_writelog (
|
||
p_import_key,
|
||
'S',
|
||
'IMPORT TAKEN: aantal verwerkte regels: ' || TO_CHAR (v_count_verwerk)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe taken ingelezen: ' || TO_CHAR (v_count_n_taak)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal nieuwe objecttaken ingelezen: ' || TO_CHAR (v_count_n_taakobject)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal bestaande basistaken gewijzigd: ' || TO_CHAR (v_count_w_taak)
|
||
|| CHR(13) || CHR(10)
|
||
|| 'Aantal bestaande objecttaken gewijzigd: ' || TO_CHAR (v_count_w_taakobject),
|
||
'');
|
||
|
||
ELSE
|
||
ROLLBACK;
|
||
|
||
END IF;
|
||
|
||
END;
|
||
/
|
||
|
||
-- MNNL#53390: Inzicht in voortgang van specifiek geidentificeerde workflows.
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_wf_progress
|
||
(
|
||
wf,
|
||
melding_key,
|
||
melding_datum,
|
||
melding_onderwerp,
|
||
melding_status,
|
||
melding_behandelaar,
|
||
max_stap_melding_key,
|
||
max_stap_melding_datum,
|
||
max_stap_melding_onderwerp,
|
||
max_stap_melding_status,
|
||
max_stap_melding_behandelaar,
|
||
max_stap_stdmelding_key,
|
||
max_stap_stdmelding_oms,
|
||
melder,
|
||
melder_afdeling_code,
|
||
melder_afdeling_oms,
|
||
problem_eigenaar,
|
||
aant_onderliggend
|
||
)
|
||
AS
|
||
WITH onderliggend AS ( SELECT wf.mld_melding_start_key, COUNT (*) aant
|
||
FROM mld_melding wf, mld_melding gr
|
||
WHERE wf.mld_melding_start_key IS NOT NULL
|
||
AND wf.mld_melding_mldgroup_key = gr.mld_melding_mldgroup_key
|
||
GROUP BY wf.mld_melding_start_key)
|
||
SELECT (SELECT mld_workflowstep_omschrijving FROM mld_workflowstep WHERE mld_workflowstep_key = x.mld_workflowstep_key)
|
||
wf,
|
||
x.mld_melding_key,
|
||
x.mld_melding_datum,
|
||
x.mld_melding_onderwerp,
|
||
x.mld_statuses_omschrijving melding_status,
|
||
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = x.mld_melding_behandelaar_key)
|
||
melding_behandelaar,
|
||
stap.mld_melding_key max_stap_melding_key,
|
||
stap.mld_melding_datum max_stap_melding_datum,
|
||
stap.mld_melding_onderwerp max_stap_melding_onderwerp,
|
||
stap.mld_statuses_omschrijving max_stap_melding_status,
|
||
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = stap.mld_melding_behandelaar_key)
|
||
max_stap_melding_behandelaar,
|
||
stap.mld_stdmelding_key max_stap_stdmelding_key,
|
||
stap.mld_stdmelding_omschrijving max_stap_stdmelding_oms,
|
||
(SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all WHERE prs_perslid_key = x.prs_perslid_key)
|
||
melder,
|
||
x.prs_afdeling_naam,
|
||
x.prs_afdeling_omschrijving,
|
||
pf.prs_perslid_naam_full problem_eigenaar,
|
||
onderliggend.aant
|
||
FROM (SELECT m.mld_melding_key,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_onderwerp,
|
||
ms.mld_statuses_omschrijving,
|
||
m.mld_melding_behandelaar_key,
|
||
m.mld_workflowstep_key,
|
||
p.prs_perslid_key,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving
|
||
FROM mld_melding m, mld_statuses ms, prs_perslid p, prs_afdeling a
|
||
WHERE m.mld_workflowstep_key IN (156, 325, 331, 335) -- Intake business verzoek aan IV/Problem onderzoek/Problem known error/Problem performance
|
||
AND m.mld_melding_status NOT IN (1, 5, 6) -- Lopende WFs (eerste WF-stap nog niet gesloten)
|
||
AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key) x
|
||
LEFT JOIN (SELECT m.mld_melding_start_key,
|
||
m.mld_melding_key,
|
||
m.mld_melding_datum,
|
||
m.mld_melding_onderwerp,
|
||
ms.mld_statuses_omschrijving,
|
||
m.mld_melding_behandelaar_key,
|
||
sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving
|
||
FROM mld_melding m, mld_statuses ms, mld_stdmelding sm
|
||
WHERE m.mld_workflowstep_key IS NOT NULL -- Beschouw alleen WF-stappen
|
||
AND m.mld_stdmelding_key NOT IN (921, 1041) -- Uitsluiten specifieke "dangling" Intake-stappen
|
||
AND m.mld_melding_status = ms.mld_statuses_key
|
||
AND m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_melding
|
||
WHERE mld_workflowstep_key IS NOT NULL -- Beschouw alleen WF-stappen
|
||
AND mld_stdmelding_key NOT IN (921, 1041) -- Uitsluiten specifieke "dangling" Intake-stappen
|
||
AND mld_melding_start_key = m.mld_melding_start_key
|
||
AND mld_melding_key > m.mld_melding_key)) stap
|
||
ON x.mld_melding_key = stap.mld_melding_start_key
|
||
LEFT JOIN mld_v_aanwezigkenmerkmelding km
|
||
ON stap.mld_melding_key = km.mld_melding_key
|
||
AND EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 1217 -- Problem eigenaar
|
||
AND mld_kenmerk_key = km.mld_kenmerk_key)
|
||
LEFT JOIN prs_v_perslid_fullnames_all pf
|
||
ON fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pf.prs_perslid_key
|
||
LEFT JOIN onderliggend
|
||
ON x.mld_melding_key = onderliggend.mld_melding_start_key;
|
||
|
||
-- MNNL#56677/59398: FO afhandeling.
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_fo_afhandeling
|
||
(
|
||
aanmelddatum,
|
||
afmelddatum,
|
||
vakgroeptype_key,
|
||
vakgroeptype,
|
||
vakgroep_key,
|
||
vakgroep,
|
||
soortmelding_key,
|
||
soortmelding,
|
||
meldingnr,
|
||
aanmelder,
|
||
aangemeld_fo_aant,
|
||
aangemeld_fo_perc,
|
||
afmelder,
|
||
afgemeld_fo_aant,
|
||
afgemeld_fo_perc
|
||
)
|
||
AS
|
||
SELECT fac.gettrackingdate ('MLDNEW', x.mld_melding_key) mldnew,
|
||
t.fac_tracking_datum mldafm,
|
||
x.ins_srtdiscipline_key,
|
||
x.ins_srtdiscipline_omschrijving,
|
||
x.ins_discipline_key,
|
||
x.ins_discipline_omschrijving,
|
||
x.mld_stdmelding_key,
|
||
x.mld_stdmelding_omschrijving,
|
||
COALESCE (x.ins_srtdiscipline_prefix, '') || TO_CHAR (x.mld_melding_key) melding_nr,
|
||
pnew.prs_perslid_naam_full,
|
||
DECODE (udnew.fac_usrdata_key, NULL, 0, DECODE (SIGN (udnew.fac_usrdata_vervaldatum - t.fac_tracking_datum), -1, 0, 1)),
|
||
DECODE (udnew.fac_usrdata_key, NULL, 0, DECODE (SIGN (udnew.fac_usrdata_vervaldatum - t.fac_tracking_datum), -1, 0, 100)),
|
||
pafm.prs_perslid_naam_full,
|
||
DECODE (t.prs_perslid_key, NULL, TO_NUMBER (NULL), DECODE (udafm.fac_usrdata_key, NULL, 0, DECODE (SIGN (udafm.fac_usrdata_vervaldatum - t.fac_tracking_datum), -1, 0, 1))),
|
||
DECODE (t.prs_perslid_key, NULL, TO_NUMBER (NULL), DECODE (udafm.fac_usrdata_key, NULL, 0, DECODE (SIGN (udafm.fac_usrdata_vervaldatum - t.fac_tracking_datum), -1, 0, 100)))
|
||
FROM (SELECT sd.ins_srtdiscipline_key,
|
||
sd.ins_srtdiscipline_prefix,
|
||
sd.ins_srtdiscipline_omschrijving,
|
||
md.ins_discipline_key,
|
||
md.ins_discipline_omschrijving,
|
||
sm.mld_stdmelding_key,
|
||
sm.mld_stdmelding_omschrijving,
|
||
m.mld_melding_key,
|
||
fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) prs_mldnew_key
|
||
FROM mld_melding m, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd
|
||
WHERE 1 = 1
|
||
--AND m.mld_melding_status IN (5, 6) -- Afgemeld/Verwerkt
|
||
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) x
|
||
LEFT JOIN prs_v_perslid_fullnames_all pnew
|
||
ON x.prs_mldnew_key = pnew.prs_perslid_key
|
||
LEFT JOIN fac_v_aanwezigusrdata udnew
|
||
ON x.prs_mldnew_key = fac.safe_to_number (udnew.fac_usrdata_code)
|
||
AND udnew.fac_usrtab_key = 921 -- Aanmelders als FO
|
||
LEFT JOIN fac_tracking t
|
||
ON x.mld_melding_key = t.fac_tracking_refkey
|
||
AND t.fac_srtnotificatie_key = 38
|
||
LEFT JOIN fac_v_aanwezigusrdata udafm
|
||
ON t.prs_perslid_key = fac.safe_to_number (udafm.fac_usrdata_code)
|
||
AND udafm.fac_usrtab_key = 921 -- Afmelders als FO
|
||
LEFT JOIN prs_v_perslid_fullnames_all pafm
|
||
ON t.prs_perslid_key = pafm.prs_perslid_key;
|
||
|
||
-- MNNL#62537: WP-reserveringen.
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_res_wp
|
||
(
|
||
hide_f_sortering,
|
||
res_rsv_ruimte_key,
|
||
maand,
|
||
datum,
|
||
van,
|
||
tot,
|
||
afd_code,
|
||
afd_oms,
|
||
res_id,
|
||
aanvrager,
|
||
aanvrager_login,
|
||
gastheer_vrouw,
|
||
wp_id,
|
||
pp_id,
|
||
dirty
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm-dd') || a.prs_afdeling_naam2 || pc.prs_perslid_naam_full sortering,
|
||
rrr.res_rsv_ruimte_key,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm') maand,
|
||
rrr.res_rsv_ruimte_van datum,
|
||
rrr.res_rsv_ruimte_van van,
|
||
rrr.res_rsv_ruimte_tot tot,
|
||
a.prs_afdeling_naam2,
|
||
a.prs_afdeling_omschrijving,
|
||
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|
||
resid,
|
||
pc.prs_perslid_naam_full || '[' || p.prs_perslid_oslogin || ']' aanvrager,
|
||
p.prs_perslid_oslogin aanvrager_login,
|
||
ph.prs_perslid_naam_full gastheer,
|
||
DECODE (wp.aant,
|
||
NULL, '',
|
||
0, '',
|
||
1, wp.wp_id,
|
||
wp.wp_id || '[' || wp.aant || ']')
|
||
wp_id,
|
||
DECODE (pp.aant,
|
||
NULL, '',
|
||
0, '',
|
||
1, pp.pp_id,
|
||
pp.pp_id || '[' || pp.aant || ']')
|
||
pp_id,
|
||
DECODE (rrr.res_rsv_ruimte_dirtlevel + COALESCE (wp.res_rsv_deel_dirtlevel, 0) + COALESCE (pp.res_rsv_deel_dirtlevel, 0), 0, 'Nee', 'Ja')
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
prs_perslid p,
|
||
prs_v_afdeling a,
|
||
bez_afspraak ba,
|
||
bez_bezoekers bb,
|
||
( SELECT rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_dirtlevel,
|
||
MIN (rd.res_deel_omschrijving) wp_id,
|
||
COUNT ( * ) aant
|
||
FROM res_v_aanwezigrsv_deel rrd, res_deel rd
|
||
WHERE rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_discipline_key = 2362 -- Werkplekken
|
||
GROUP BY rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_dirtlevel) wp,
|
||
( SELECT rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_dirtlevel,
|
||
MIN (d.ins_deel_omschrijving) pp_id,
|
||
COUNT ( * ) aant
|
||
FROM res_v_aanwezigrsv_deel rrd, res_deel rd, ins_deel d
|
||
WHERE rrd.bez_bezoekers_key IS NOT NULL
|
||
AND rrd.res_deel_key = rd.res_deel_key
|
||
AND rd.res_ins_deel_key = d.ins_deel_key
|
||
--AND EXISTS (SELECT 1 FROM res_rsv_ruimte WHERE res_activiteit_key = 250 AND res_rsv_ruimte_key = rrd.res_rsv_ruimte_key)
|
||
GROUP BY rrd.res_rsv_ruimte_key, rrd.res_rsv_deel_dirtlevel) pp,
|
||
prs_v_perslid_fullnames_all pc,
|
||
prs_v_perslid_fullnames_all ph
|
||
WHERE rrr.res_activiteit_key = 250 -- Werkplekken
|
||
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key -- Of host?
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND rrr.res_rsv_ruimte_key = ba.res_rsv_ruimte_key(+)
|
||
AND ba.bez_afspraak_key = bb.bez_afspraak_key(+)
|
||
AND rrr.res_rsv_ruimte_key = wp.res_rsv_ruimte_key(+)
|
||
AND rrr.res_rsv_ruimte_key = pp.res_rsv_ruimte_key(+)
|
||
AND rrr.res_rsv_ruimte_contact_key = pc.prs_perslid_key
|
||
AND rrr.res_rsv_ruimte_host_key = ph.prs_perslid_key;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_res_wp_aant
|
||
(
|
||
hide_f_sortering,
|
||
maand,
|
||
datum,
|
||
unit_code,
|
||
unit_oms,
|
||
aant_wp,
|
||
aant_pp
|
||
)
|
||
AS
|
||
SELECT TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm-dd') || a.prs_afdeling_naam sortering,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm') maand,
|
||
TRUNC (rrr.res_rsv_ruimte_van) datum,
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving,
|
||
COUNT ( * ) aant_wp,
|
||
SUM (DECODE (pp.aant, NULL, 0, 0, 0, pp.aant)) aant_pp
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
prs_perslid p,
|
||
prs_v_afdeling_boom ab,
|
||
prs_afdeling a,
|
||
--bez_afspraak ba,
|
||
--bez_bezoekers bb,
|
||
( SELECT res_rsv_ruimte_key, COUNT ( * ) aant
|
||
FROM res_v_aanwezigrsv_deel
|
||
WHERE res_rsv_deel_dirtlevel = 0 -- Niet dirty
|
||
AND bez_bezoekers_key IS NOT NULL
|
||
GROUP BY res_rsv_ruimte_key) pp
|
||
WHERE rrr.res_activiteit_key = 250 -- Werkplekken
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0 -- Niet dirty
|
||
AND rrr.res_rsv_ruimte_contact_key = p.prs_perslid_key -- Of host?
|
||
AND p.prs_afdeling_key = ab.prs_afdeling_key
|
||
AND ab.prs_afdeling_key1 = a.prs_afdeling_key
|
||
--AND rrr.res_rsv_ruimte_key = ba.res_rsv_ruimte_key(+)
|
||
--AND ba.bez_afspraak_key = bb.bez_afspraak_key(+)
|
||
AND rrr.res_rsv_ruimte_key = pp.res_rsv_ruimte_key(+)
|
||
GROUP BY TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm-dd') || a.prs_afdeling_naam,
|
||
TO_CHAR (rrr.res_rsv_ruimte_van, 'yyyy-mm'),
|
||
TRUNC (rrr.res_rsv_ruimte_van),
|
||
a.prs_afdeling_naam,
|
||
a.prs_afdeling_omschrijving;
|
||
|
||
-- MNNL#64264: Personen per autorisatiegroep.
|
||
CREATE OR REPLACE VIEW mnnl_v_udr_prs_per_groep
|
||
(
|
||
groep_key,
|
||
groep_oms,
|
||
perslid_key,
|
||
naam_full,
|
||
naam_friendly,
|
||
loginnaam,
|
||
afd_code,
|
||
afd_oms
|
||
)
|
||
AS
|
||
SELECT g.fac_groep_key, g.fac_groep_omschrijving,
|
||
p.prs_perslid_key, pf.prs_perslid_naam_full, pf.prs_perslid_naam_friendly,
|
||
COALESCE (p.prs_perslid_oslogin, p.prs_perslid_oslogin2),
|
||
a.prs_afdeling_naam, a.prs_afdeling_omschrijving
|
||
FROM fac_groep g, fac_gebruikersgroep gg, prs_perslid p, prs_afdeling a, prs_v_perslid_fullnames pf
|
||
WHERE g.fac_groep_key = gg.fac_groep_key
|
||
AND gg.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND a.prs_afdeling_verwijder IS NULL
|
||
AND p.prs_perslid_key = pf.prs_perslid_key;
|
||
|
||
-- MNNL#65883: FirstTimeRight-rapportage!
|
||
-- Meldingen left-joinen met first en aantal vakgroep-wijzigingen:
|
||
-- FTR=J als gesloten en nul vakgroep-wijzigingen
|
||
-- FTR=NULL als lopend en nul vakgroep-wijzigingen
|
||
-- FTR=N als 1 of meer vakgroep-wijzigingen
|
||
CREATE OR REPLACE VIEW mnnl_v_udr_mld_ftr
|
||
AS
|
||
WITH t
|
||
AS ( SELECT fac_tracking_refkey,
|
||
COUNT ( * ) aantal,
|
||
MIN (SUBSTR ('00000' || TO_CHAR (fac_tracking_key), -10)
|
||
|| SUBSTR (fac_tracking_oms,
|
||
INSTR (fac_tracking_oms, 'Vakgroep:') + 10,
|
||
INSTR (SUBSTR (fac_tracking_oms, INSTR (fac_tracking_oms, 'Vakgroep:') + 10, 100), ' --> ') - 1))
|
||
omschr
|
||
FROM fac_tracking
|
||
WHERE fac_tracking_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND fac_srtnotificatie_key = 45 -- MLDUPD
|
||
AND INSTR (fac_tracking_oms, 'Vakgroep:') > 0
|
||
GROUP BY fac_tracking_refkey)
|
||
SELECT m.mld_melding_key,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
|
||
mb.mld_meldbron_omschrijving meldbron,
|
||
ms.mld_statuses_omschrijving meldingstatus,
|
||
m.mld_melding_datum meldingdatum,
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) afmelddatum,
|
||
pd.prs_perslid_naam_full door,
|
||
pv.prs_perslid_naam_full voor,
|
||
DECODE (pd.prs_perslid_key, pv.prs_perslid_key, 'J', 'N') zelf,
|
||
DECODE (m.mld_melding_status,
|
||
5, DECODE (t.aantal, NULL, 'J', 'N'),
|
||
6, DECODE (t.aantal, NULL, 'J', 'N'),
|
||
DECODE (t.aantal, NULL, NULL, 'N'))
|
||
ftr,
|
||
COALESCE (t.aantal, 0) aantal,
|
||
sd.ins_srtdiscipline_omschrijving vakgroeptype_now,
|
||
COALESCE (SUBSTR (t.omschr, 11), md.ins_discipline_omschrijving) vakgroep_1st,
|
||
md.ins_discipline_omschrijving vakgroep_now,
|
||
sm.mld_stdmelding_omschrijving meldingsoort_now
|
||
FROM mld_melding m,
|
||
mld_meldbron mb,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_v_perslid_fullnames_all pd, -- Door=Invoer
|
||
prs_v_perslid_fullnames_all pv, -- Voor=Melder
|
||
t
|
||
WHERE m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND m.mld_meldbron_key = mb.mld_meldbron_key
|
||
AND m.mld_melding_status = ms.mld_statuses_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
|
||
AND sd.ins_srtdiscipline_key = 22 -- Incident (of meer?)
|
||
AND fac.gettrackinguserkey ('MLDNEW', m.mld_melding_key) = pd.prs_perslid_key
|
||
AND m.prs_perslid_key_voor = pv.prs_perslid_key
|
||
AND m.mld_melding_key = t.fac_tracking_refkey(+);
|
||
|
||
-- MNNL#65935: Notitie-rapportage!
|
||
CREATE OR REPLACE VIEW mnnl_v_udr_mld_notes
|
||
AS
|
||
SELECT SYSDATE - n.mld_melding_note_aanmaak hide_f_sort, -- Recentste bovenaan
|
||
m.mld_melding_key,
|
||
sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
sm.mld_stdmelding_omschrijving meldingsoort,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
|
||
ms.mld_statuses_omschrijving meldingstatus,
|
||
m.mld_melding_datum meldingdatum,
|
||
pm.prs_perslid_naam_full melder,
|
||
a.prs_afdeling_naam melderafdeling,
|
||
n.mld_melding_note_aanmaak notitiedatum,
|
||
pn.prs_perslid_naam_full notitiedoor,
|
||
n.mld_melding_note_flag notitievlag,
|
||
ng.fac_note_group_naam notitieclassificatie
|
||
FROM mld_melding m,
|
||
mld_statuses ms,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
prs_v_perslid_fullnames_all pm, -- Melder
|
||
mld_melding_note n,
|
||
prs_v_perslid_fullnames_all pn, -- Noteur
|
||
fac_note_group ng
|
||
WHERE m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -12), 'yyyy')
|
||
AND m.mld_melding_status = ms.mld_statuses_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
|
||
AND m.prs_perslid_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
AND p.prs_perslid_key = pm.prs_perslid_key
|
||
AND m.mld_melding_key = n.mld_melding_key
|
||
AND n.prs_perslid_key = pn.prs_perslid_key
|
||
AND n.fac_note_group_key = ng.fac_note_group_key(+);
|
||
|
||
-- MNNL#66030: Kennisbank-rapportage!
|
||
CREATE OR REPLACE VIEW mnnl_v_udr_faq_clicks
|
||
AS
|
||
SELECT x.fac_faq_key kennisbanknr,
|
||
SUBSTR (x.fac_faq_question, 1, 100) vraag,
|
||
--x.fac_faq_answer antwoord,
|
||
--x.fac_faq_hint zoekwoorden,
|
||
--x.fac_faq_url url, -- Meer info (URL)
|
||
DECODE (x.fac_faq_level,
|
||
1, 'Zelfservice',
|
||
2, 'Professionals',
|
||
3, 'Zelfservice en professionals',
|
||
NULL)
|
||
zichtbaar_voor,
|
||
DECODE (x.fac_faq_displaymode,
|
||
0, 'Beide',
|
||
1, 'Altijd tonen',
|
||
2, 'Pop-up',
|
||
3, 'Niet automatisch',
|
||
NULL)
|
||
weergave_bij_melding,
|
||
x.fac_faq_source oorsprong,
|
||
x.fac_faq_datum publicatiedatum, -- Publicatiedatum
|
||
x.fac_faq_wijzigdatum laatst_gewijzigd_op, -- Wijzigdatum
|
||
pf.prs_perslid_naam_full laatst_gewijzigd_door, -- Aangepast door
|
||
x.fac_faq_lang taal,
|
||
DECODE (f.fac_functie_key, NULL, 'Alle', f.fac_functie_code)
|
||
autorisatie_als,
|
||
x.fac_faq_rank clicks
|
||
--aog.alg_plaatsaanduiding
|
||
FROM fac_faq x
|
||
LEFT JOIN prs_v_perslid_fullnames_all pf
|
||
ON x.prs_perslid_key = pf.prs_perslid_key
|
||
LEFT JOIN fac_functie f
|
||
ON x.fac_functie_key = f.fac_functie_key
|
||
--LEFT JOIN mld_stdmeldingfaq kbsm
|
||
-- ON x.fac_faq_key = kbsm.fac_faq_key
|
||
--LEFT JOIN mld_discipline md
|
||
-- ON kbsm.ins_discipline_key = md.ins_discipline_key
|
||
--LEFT JOIN mld_stdmelding sm
|
||
-- ON kbsm.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
--LEFT JOIN alg_algfaq kbpl
|
||
-- ON x.fac_faq_key = kbpl.fac_faq_key
|
||
--LEFT JOIN alg_v_onroerendgoed_gegevens aog
|
||
-- ON kbpl.alg_onroerendgoed_keys = aog.alg_onroerendgoed_keys
|
||
;
|
||
|
||
-- MNNL#66460: Verstuurde MLDAFM-notificaties!
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_mldafm
|
||
AS
|
||
SELECT sd.ins_srtdiscipline_omschrijving vakgroeptype,
|
||
md.ins_discipline_omschrijving vakgroep,
|
||
sm.mld_stdmelding_omschrijving meldingsoort,
|
||
m.mld_melding_key,
|
||
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
|
||
m.mld_melding_datum meldingdatum,
|
||
fac.gettrackingdate ('MLDAFM', m.mld_melding_key) afmelddatum,
|
||
DECODE (t.fac_tracking_key, NULL, 'N', 'J') mldafm_noti
|
||
FROM mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
ins_srtdiscipline sd,
|
||
(SELECT * FROM fac_tracking WHERE INSTR (UPPER (fac_tracking_oms), 'NOTIFICATIE MLDAFM VERSTUURD') = 1) t
|
||
WHERE m.mld_melding_datum > TO_DATE ('14-09-2020', 'dd-mm-yyyy')
|
||
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 = t.fac_tracking_refkey(+);
|
||
|
||
-- MNNL#66706: Exports tbv. Snowflake!
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_sf_mld
|
||
AS
|
||
SELECT TO_CHAR (m.melding_key) meldingnummer,
|
||
m.melder,
|
||
m.afdeling,
|
||
m.invoerder,
|
||
m.meldbron,
|
||
m.soortmelding,
|
||
m.productgroep,
|
||
m.subproductgroep,
|
||
m.behandelgroep,
|
||
m.behandelaar,
|
||
m.actieve_behandelgroep,
|
||
m.actieve_behandelaar,
|
||
m.melding_status,
|
||
m.sla_werkdgn,
|
||
m.sla_werkuren,
|
||
m.sla_accptdgn,
|
||
m.sla_accpturen,
|
||
m.plan_uitvoertijd_sla,
|
||
m.melding_datum,
|
||
m.melding_einddatum,
|
||
m.melding_einddatum_std,
|
||
m.melding_acceptdatum,
|
||
m.melding_afgemeld,
|
||
m.melding_accepted,
|
||
m.doorlooptijd_werkdgn,
|
||
m.doorlooptijd_werkuren,
|
||
m.onderwerp,
|
||
m.vomschrijving omschrijving,
|
||
m.melding_opmerking,
|
||
m.prioriteit,
|
||
m.rating,
|
||
m.rating_opmerking,
|
||
m.actiecode,
|
||
m.accept_sla_dagen,
|
||
m.accept_sla_uren,
|
||
m.uitvoering_sla_dagen,
|
||
m.uitvoering_sla_uren,
|
||
m.afspraak_sla_dagen,
|
||
m.afspraak_sla_uren,
|
||
m.accept_sla_optijd,
|
||
m.uitvoering_sla_optijd,
|
||
m.afspraak_sla_optijd,
|
||
m.selfservice
|
||
FROM mld_v_udr_melding m;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_export_sf_mld
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '"MELDINGNUMMER"'
|
||
|| ';"MELDER"'
|
||
|| ';"AFDELING"'
|
||
|| ';"INVOERDER"'
|
||
|| ';"MELDBRON"'
|
||
|| ';"SOORTMELDING"'
|
||
|| ';"PRODUCTGROEP"'
|
||
|| ';"SUBPRODUCTGROEP"'
|
||
|| ';"BEHANDELGROEP"'
|
||
|| ';"BEHANDELAAR"'
|
||
|| ';"ACTIEVE_BEHANDELGROEP"'
|
||
|| ';"ACTIEVE_BEHANDELAAR"'
|
||
|| ';"MELDING_STATUS"'
|
||
|| ';"SLA_WERKDGN"'
|
||
|| ';"SLA_WERKUREN"'
|
||
|| ';"SLA_ACCPTDGN"'
|
||
|| ';"SLA_ACCPTUREN"'
|
||
|| ';"PLAN_UITVOERTIJD_SLA"'
|
||
|| ';"MELDING_DATUM"'
|
||
|| ';"MELDING_EINDDATUM"'
|
||
|| ';"MELDING_EINDDATUM_STD"'
|
||
|| ';"MELDING_ACCEPTDATUM"'
|
||
|| ';"MELDING_AFGEMELD"'
|
||
|| ';"MELDING_ACCEPTED"'
|
||
|| ';"DOORLOOPTIJD_WERKDGN"'
|
||
|| ';"DOORLOOPTIJD_WERKUREN"'
|
||
|| ';"ONDERWERP"'
|
||
|| ';"OMSCHRIJVING"'
|
||
|| ';"MELDING_OPMERKING"'
|
||
|| ';"PRIORITEIT"'
|
||
|| ';"RATING"'
|
||
|| ';"RATING_OPMERKING"'
|
||
|| ';"ACTIECODE"'
|
||
|| ';"ACCEPT_SLA_DAGEN"'
|
||
|| ';"ACCEPT_SLA_UREN"'
|
||
|| ';"UITVOERING_SLA_DAGEN"'
|
||
|| ';"UITVOERING_SLA_UREN"'
|
||
|| ';"AFSPRAAK_SLA_DAGEN"'
|
||
|| ';"AFSPRAAK_SLA_UREN"'
|
||
|| ';"ACCEPT_SLA_OPTIJD"'
|
||
|| ';"UITVOERING_SLA_OPTIJD"'
|
||
|| ';"AFSPRAAK_SLA_OPTIJD"'
|
||
|| ';"SELFSERVICE"',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT '"' || meldingnummer || '";'
|
||
|| DECODE (melder, NULL, ';', '"' || melder || '";')
|
||
|| DECODE (afdeling, NULL, ';', '"' || afdeling || '";')
|
||
|| DECODE (invoerder, NULL, ';', '"' || invoerder || '";')
|
||
|| DECODE (meldbron, NULL, ';', '"' || meldbron || '";')
|
||
|| DECODE (soortmelding, NULL, ';', '"' || soortmelding || '";')
|
||
|| DECODE (productgroep, NULL, ';', '"' || productgroep || '";')
|
||
|| DECODE (subproductgroep, NULL, ';', '"' || subproductgroep || '";')
|
||
|| DECODE (behandelgroep, NULL, ';', '"' || behandelgroep || '";')
|
||
|| DECODE (behandelaar, NULL, ';', '"' || behandelaar || '";')
|
||
|| DECODE (actieve_behandelgroep, NULL, ';', '"' || actieve_behandelgroep || '";')
|
||
|| DECODE (actieve_behandelaar, NULL, ';', '"' || actieve_behandelaar || '";')
|
||
|| DECODE (melding_status, NULL, ';', '"' || melding_status || '";')
|
||
|| TO_CHAR (sla_werkdgn) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (sla_werkuren) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (sla_accptdgn) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (sla_accpturen) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (plan_uitvoertijd_sla) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (melding_datum, NULL, ';', TO_CHAR (melding_datum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (melding_einddatum, NULL, ';', TO_CHAR (melding_einddatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (melding_einddatum_std, NULL, ';', TO_CHAR (melding_einddatum_std, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (melding_acceptdatum, NULL, ';', TO_CHAR (melding_acceptdatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (melding_afgemeld, NULL, ';', TO_CHAR (melding_afgemeld, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (melding_accepted, NULL, ';', TO_CHAR (melding_accepted, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| TO_CHAR (doorlooptijd_werkdgn) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (doorlooptijd_werkuren) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (onderwerp, NULL, ';', '"' || REPLACE (onderwerp, '"', '''') || '";')
|
||
|| DECODE (omschrijving, NULL, ';', '"' || REPLACE (SUBSTR (omschrijving, 1, 200), '"', '''') || '";')
|
||
|| DECODE (melding_opmerking, NULL, ';', '"' || REPLACE (SUBSTR (melding_opmerking, 1, 200), '"', '''') || '";')
|
||
|| TO_CHAR (prioriteit) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (rating) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (rating_opmerking, NULL, ';', '"' || REPLACE (rating_opmerking, '"', '''') || '";')
|
||
|| TO_CHAR (actiecode) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (accept_sla_dagen) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (accept_sla_uren) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (uitvoering_sla_dagen) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (uitvoering_sla_uren) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (afspraak_sla_dagen) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (afspraak_sla_uren) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (accept_sla_optijd, NULL, ';', '"' || accept_sla_optijd || '";')
|
||
|| DECODE (uitvoering_sla_optijd, NULL, ';', '"' || uitvoering_sla_optijd || '";')
|
||
|| DECODE (afspraak_sla_optijd, NULL, ';', '"' || afspraak_sla_optijd || '";')
|
||
|| DECODE (selfservice, NULL, ';', '"' || selfservice || '"'),
|
||
ROWNUM
|
||
FROM mnnl_v_rap_sf_mld
|
||
ORDER BY 2;
|
||
|
||
-- LET OP: Export met een "lege regel" voor meldingen zonder kenmerken!
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_sf_mld_kmk
|
||
AS
|
||
SELECT m.mld_melding_key,
|
||
--k.mld_kenmerk_key kenmerk_key,
|
||
--k.mld_kenmerk_volgnummer kenmerkvolgnr,
|
||
--k.mld_kenmerk_groep kenmerkgroep,
|
||
COALESCE (k.mld_kenmerk_omschrijving, sk.mld_srtkenmerk_omschrijving)
|
||
kenmerknaam,
|
||
--sk.mld_srtkenmerk_key srtkenmerk_key,
|
||
sk.mld_srtkenmerk_kenmerktype kenmerktype,
|
||
DECODE (sk.mld_srtkenmerk_kenmerktype,
|
||
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
|
||
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, km.mld_kenmerkmelding_waarde),
|
||
km.mld_kenmerkmelding_waarde)
|
||
kenmerkwaarde
|
||
FROM mld_melding m, mld_v_aanwezigkenmerkmelding km, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE 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(+);
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_export_sf_mld_kmk
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '"MLD_MELDING_KEY"'
|
||
|| ';"KENMERKNAAM"'
|
||
|| ';"KENMERKTYPE"'
|
||
|| ';"KENMERKWAARDE"',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT TO_CHAR (mld_melding_key) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (kenmerknaam, NULL, ';', '"' || kenmerknaam || '";')
|
||
|| DECODE (kenmerktype, NULL, ';', '"' || kenmerktype || '";')
|
||
|| DECODE (kenmerkwaarde, NULL, ';', '"' || REPLACE (kenmerkwaarde, '"', '''') || '"'),
|
||
ROWNUM
|
||
FROM mnnl_v_rap_sf_mld_kmk
|
||
ORDER BY 2;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_sf_ins
|
||
AS
|
||
SELECT deel_key,
|
||
discipline,
|
||
groep, -- Omgewisseld met soort
|
||
soort, -- Omgewisseld met groep
|
||
--soortcode,
|
||
omschrijving,
|
||
plaatseigenaar,
|
||
--plaatseigenaartype,
|
||
--plaatsaanduiding,
|
||
eigenaar,
|
||
--eigenaar_key,
|
||
opmerking,
|
||
--regio,
|
||
--district,
|
||
--locatie_code,
|
||
locatie_omschrijving,
|
||
--locatie_plaats,
|
||
--gebouwcode,
|
||
gebouw,
|
||
--terreinsectorcode,
|
||
--terreinsector,
|
||
--verdiepingcode,
|
||
ruimtenr,
|
||
--werkplekvolgnr,
|
||
--werkplek,
|
||
uitleenbaar,
|
||
uitgeleend,
|
||
--res_opmerking,
|
||
--beheerder,
|
||
vervaldatum,
|
||
actief --aantal, state, statedate
|
||
FROM ins_v_udr_deel;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_export_sf_ins
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '"DEEL_KEY"'
|
||
|| ';"DISCIPLINE"'
|
||
|| ';"GROEP"'
|
||
|| ';"SOORT"'
|
||
|| ';"OMSCHRIJVING"'
|
||
|| ';"PLAATSEIGENAAR"'
|
||
|| ';"EIGENAAR"'
|
||
|| ';"OPMERKING"'
|
||
|| ';"LOCATIE_OMSCHRIJVING"'
|
||
|| ';"GEBOUW"'
|
||
|| ';"RUIMTENR"'
|
||
|| ';"UITLEENBAAR"'
|
||
|| ';"UITGELEEND"'
|
||
|| ';"VERVALDATUM"'
|
||
|| ';"ACTIEF"',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT TO_CHAR (deel_key) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (discipline, NULL, ';', '"' || REPLACE (discipline, '"', '''') || '";')
|
||
|| DECODE (groep, NULL, ';', '"' || REPLACE (groep, '"', '''') || '";')
|
||
|| DECODE (soort, NULL, ';', '"' || REPLACE (soort, '"', '''') || '";')
|
||
|| DECODE (omschrijving, NULL, ';', '"' || REPLACE (omschrijving, '"', '''') || '";')
|
||
|| DECODE (plaatseigenaar, NULL, ';', '"' || plaatseigenaar || '";')
|
||
|| DECODE (eigenaar, NULL, ';', '"' || eigenaar || '";')
|
||
|| DECODE (opmerking, NULL, ';', '"' || REPLACE (opmerking, '"', '''') || '";')
|
||
|| DECODE (locatie_omschrijving, NULL, ';', '"' || locatie_omschrijving || '";')
|
||
|| DECODE (gebouw, NULL, ';', '"' || gebouw || '";')
|
||
|| DECODE (ruimtenr, NULL, ';', '"' || ruimtenr || '";')
|
||
|| DECODE (uitleenbaar, NULL, ';', '"' || uitleenbaar || '";')
|
||
|| DECODE (uitgeleend, NULL, ';', '"' || uitgeleend || '";')
|
||
|| DECODE (vervaldatum, NULL, ';', TO_CHAR (vervaldatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (actief, NULL, ';', '"' || actief || '"'),
|
||
ROWNUM
|
||
FROM mnnl_v_rap_sf_ins
|
||
ORDER BY 2;
|
||
|
||
-- LET OP: Export met een "lege regel" voor objecten zonder kenmerken!
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_sf_ins_kmk
|
||
AS
|
||
SELECT d.ins_deel_key,
|
||
sk.ins_srtkenmerk_omschrijving kenmerknaam,
|
||
sk.ins_srtkenmerk_kenmerktype kenmerktype,
|
||
DECODE (sk.ins_srtkenmerk_kenmerktype,
|
||
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, kd.ins_kenmerkdeel_waarde),
|
||
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, kd.ins_kenmerkdeel_waarde),
|
||
kd.ins_kenmerkdeel_waarde)
|
||
kenmerkwaarde
|
||
FROM ins_deel d, ins_v_aanwezigkenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk
|
||
WHERE d.ins_deel_key = kd.ins_deel_key(+)
|
||
AND kd.ins_kenmerk_key = k.ins_kenmerk_key(+)
|
||
AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key(+);
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_export_sf_ins_kmk
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '"INS_DEEL_KEY"'
|
||
|| ';"KENMERKNAAM"'
|
||
|| ';"KENMERKTYPE"'
|
||
|| ';"KENMERKWAARDE"',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT TO_CHAR (ins_deel_key) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (kenmerknaam, NULL, ';', '"' || kenmerknaam || '";')
|
||
|| DECODE (kenmerktype, NULL, ';', '"' || kenmerktype || '";')
|
||
|| DECODE (kenmerkwaarde, NULL, ';', '"' || REPLACE (kenmerkwaarde, '"', '''') || '"'),
|
||
ROWNUM
|
||
FROM mnnl_v_rap_sf_ins_kmk
|
||
ORDER BY 2;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_sf_mld_ins
|
||
AS
|
||
SELECT mld_melding_object_key,
|
||
mld_melding_key,
|
||
ins_deel_key,
|
||
mld_melding_object_aanmaak
|
||
FROM mld_melding_object;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_export_sf_mld_ins
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '"MLD_MELDING_OBJECT_KEY"'
|
||
|| ';"MLD_MELDING_KEY"'
|
||
|| ';"INS_DEEL_KEY"'
|
||
|| ';"MLD_MELDING_OBJECT_AANMAAK"',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT TO_CHAR (mld_melding_object_key) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (mld_melding_key) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (ins_deel_key) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (mld_melding_object_aanmaak, 'dd-mm-yyyy hh24:mi:ss'), -- Zonder dubbele quotes
|
||
ROWNUM
|
||
FROM mnnl_v_rap_sf_mld_ins
|
||
ORDER BY 2;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_sf_ord
|
||
AS
|
||
SELECT o.opdracht_key,
|
||
o.opdracht_nummer opdrachtnummer,
|
||
o.melding_key meldingnummer,
|
||
o.opdracht_kostenplaats,
|
||
o.opdracht_kostenplaats_oms,
|
||
o.opdracht_type,
|
||
o.opdracht_volgnummer,
|
||
o.opdracht_status,
|
||
o.opdracht_duur_gepland,
|
||
o.opdracht_datum,
|
||
o.opdracht_einddatum,
|
||
o.opdracht_plandatum,
|
||
o.opdracht_acceptdatum,
|
||
o.opdracht_afgemeld,
|
||
o.opdracht_doorlooptijd,
|
||
o.opdracht_accepttijd,
|
||
o.opdracht_omschrijving,
|
||
o.opdracht_opmerking,
|
||
o.opdracht_uitvoerende,
|
||
o.opdracht_uitvoerende_contact,
|
||
o.opdracht_behandelaar,
|
||
--o.opdracht_contract,
|
||
--o.opdracht_contract_versie,
|
||
o.opdracht_contactpersoon,
|
||
--o.opdracht_uren,
|
||
--o.opdracht_correctie,
|
||
--o.opdracht_materiaal,
|
||
--o.opdracht_uurtarief,
|
||
--o.opdracht_kosten,
|
||
--o.opdracht_parent_key,
|
||
--o.opdracht_parent_nummer,
|
||
--o.opdracht_parent_volgnummer,
|
||
o.opdracht_verstrektdatum,
|
||
o.opdracht_lev_doorloopdagen,
|
||
o.opdracht_lev_doorloopuren
|
||
FROM mld_v_udr_opdracht o;
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_export_sf_ord
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '"OPDRACHT_KEY"'
|
||
|| ';"OPDRACHTNUMMER"'
|
||
|| ';"MELDINGNUMMER"'
|
||
|| ';"KOSTENPLAATS"'
|
||
|| ';"KOSTENPLAATS_OMS"'
|
||
|| ';"OPDRACHT_TYPE"'
|
||
|| ';"OPDRACHT_VOLGNUMMER"'
|
||
|| ';"OPDRACHT_STATUS"'
|
||
|| ';"OPDRACHT_DUUR_GEPLAND"'
|
||
|| ';"OPDRACHT_DATUM"'
|
||
|| ';"OPDRACHT_EINDDATUM"'
|
||
|| ';"OPDRACHT_PLANDATUM"'
|
||
|| ';"OPDRACHT_ACCEPTDATUM"'
|
||
|| ';"OPDRACHT_AFGEMELD"'
|
||
|| ';"OPDRACHT_DOORLOOPTIJD"'
|
||
|| ';"OPDRACHT_ACCEPTTIJD"'
|
||
|| ';"OPDRACHT_OMSCHRIJVING"'
|
||
|| ';"OPDRACHT_OPMERKING"'
|
||
|| ';"OPDRACHT_UITVOERENDE"'
|
||
|| ';"OPDRACHT_UITVOERENDE_CONTACT"'
|
||
|| ';"OPDRACHT_BEHANDELAAR"'
|
||
--|| ';"OPDRACHT_CONTRACT"'
|
||
--|| ';"OPDRACHT_CONTRACT_VERSIE"'
|
||
|| ';"OPDRACHT_CONTACTPERSOON"'
|
||
--|| ';"OPDRACHT_UREN"'
|
||
--|| ';"OPDRACHT_CORRECTIE"'
|
||
--|| ';"OPDRACHT_MATERIAAL"'
|
||
--|| ';"OPDRACHT_UURTARIEF"'
|
||
--|| ';"OPDRACHT_KOSTEN"'
|
||
--|| ';"OPDRACHT_PARENT_KEY"'
|
||
--|| ';"OPDRACHT_PARENT_NUMMER"'
|
||
--|| ';"OPDRACHT_PARENT_VOLGNUMMER"'
|
||
|| ';"OPDRACHT_VERSTREKTDATUM"'
|
||
|| ';"OPDRACHT_LEV_DOORLOOPDAGEN"'
|
||
|| ';"OPDRACHT_LEV_DOORLOOPUREN"',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT '"' || TO_CHAR (opdracht_key) || '";'
|
||
|| '"' || opdrachtnummer || '";'
|
||
|| '"' || TO_CHAR (meldingnummer) || '";'
|
||
|| DECODE (opdracht_kostenplaats, NULL, ';', '"' || opdracht_kostenplaats || '";')
|
||
|| DECODE (opdracht_kostenplaats_oms, NULL, ';', '"' || opdracht_kostenplaats_oms || '";')
|
||
|| '"' || opdracht_type || '";'
|
||
|| '"' || TO_CHAR (opdracht_volgnummer) || '";'
|
||
|| '"' || opdracht_status || '";'
|
||
|| TO_CHAR (opdracht_duur_gepland) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (opdracht_datum, NULL, ';', TO_CHAR (opdracht_datum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (opdracht_einddatum, NULL, ';', TO_CHAR (opdracht_einddatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (opdracht_plandatum, NULL, ';', TO_CHAR (opdracht_plandatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (opdracht_acceptdatum, NULL, ';', TO_CHAR (opdracht_acceptdatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| DECODE (opdracht_afgemeld, NULL, ';', TO_CHAR (opdracht_afgemeld, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| TO_CHAR (opdracht_doorlooptijd) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (opdracht_accepttijd) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (opdracht_omschrijving, NULL, ';', '"' || REPLACE (SUBSTR (opdracht_omschrijving, 1, 200), '"', '''') || '";')
|
||
|| DECODE (opdracht_opmerking, NULL, ';', '"' || REPLACE (SUBSTR (opdracht_opmerking, 1, 200), '"', '''') || '";')
|
||
|| DECODE (opdracht_uitvoerende, NULL, ';', '"' || opdracht_uitvoerende || '";')
|
||
|| DECODE (opdracht_uitvoerende_contact, NULL, ';', '"' || opdracht_uitvoerende_contact || '";')
|
||
|| DECODE (opdracht_behandelaar, NULL, ';', '"' || opdracht_behandelaar || '";')
|
||
--|| DECODE (opdracht_contract, NULL, ';', '"' || opdracht_contract || '";')
|
||
--|| DECODE (opdracht_contract_versie, NULL, ';', '"' || opdracht_contract_versie || '";')
|
||
|| DECODE (opdracht_contactpersoon, NULL, ';', '"' || opdracht_contactpersoon || '";')
|
||
--|| TO_CHAR (opdracht_uren) || ';' -- Zonder dubbele quotes
|
||
--|| TO_CHAR (opdracht_correctie) || ';' -- Zonder dubbele quotes
|
||
--|| TO_CHAR (opdracht_materiaal) || ';' -- Zonder dubbele quotes
|
||
--|| TO_CHAR (opdracht_uurtarief) || ';' -- Zonder dubbele quotes
|
||
--|| TO_CHAR (opdracht_kosten) || ';' -- Zonder dubbele quotes
|
||
--|| DECODE (opdracht_parent_key, NULL, ';', '"' || TO_CHAR (opdracht_parent_key) || '";')
|
||
--|| DECODE (opdracht_parent_nummer, NULL, ';', '"' || opdracht_parent_nummer || '";')
|
||
--|| DECODE (opdracht_parent_volgnummer, NULL, ';', '"' || TO_CHAR (opdracht_parent_volgnummer) || '";')
|
||
|| DECODE (opdracht_verstrektdatum, NULL, ';', TO_CHAR (opdracht_verstrektdatum, 'dd-mm-yyyy hh24:mi:ss') || ';') -- Zonder dubbele quotes
|
||
|| TO_CHAR (opdracht_lev_doorloopdagen) || ';' -- Zonder dubbele quotes
|
||
|| TO_CHAR (opdracht_lev_doorloopuren), -- Zonder dubbele quotes
|
||
ROWNUM
|
||
FROM mnnl_v_rap_sf_ord
|
||
ORDER BY 2;
|
||
|
||
-- LET OP: Export met een "lege regel" voor opdrachten zonder kenmerken!
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_sf_ord_kmk
|
||
AS
|
||
SELECT o.mld_opdr_key,
|
||
COALESCE (k.mld_kenmerk_omschrijving, sk.mld_srtkenmerk_omschrijving)
|
||
kenmerknaam,
|
||
sk.mld_srtkenmerk_kenmerktype kenmerktype,
|
||
DECODE (sk.mld_srtkenmerk_kenmerktype,
|
||
'R', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ko.mld_kenmerkopdr_waarde),
|
||
'S', fac.getdomeinwaarde (sk.fac_kenmerkdomein_key, ko.mld_kenmerkopdr_waarde),
|
||
ko.mld_kenmerkopdr_waarde)
|
||
kenmerkwaarde
|
||
FROM mld_opdr o, mld_v_aanwezigkenmerkopdr ko, mld_kenmerk k, mld_srtkenmerk sk
|
||
WHERE o.mld_opdr_key = ko.mld_opdr_key(+)
|
||
AND ko.mld_kenmerk_key = k.mld_kenmerk_key(+)
|
||
AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key(+);
|
||
|
||
CREATE OR REPLACE VIEW mnnl_v_export_sf_ord_kmk
|
||
(
|
||
result,
|
||
result_order
|
||
)
|
||
AS
|
||
SELECT '"MLD_OPDR_KEY"'
|
||
|| ';"KENMERKNAAM"'
|
||
|| ';"KENMERKTYPE"'
|
||
|| ';"KENMERKWAARDE"',
|
||
0
|
||
FROM DUAL
|
||
UNION ALL
|
||
SELECT TO_CHAR (mld_opdr_key) || ';' -- Zonder dubbele quotes
|
||
|| DECODE (kenmerknaam, NULL, ';', '"' || kenmerknaam || '";')
|
||
|| DECODE (kenmerktype, NULL, ';', '"' || kenmerktype || '";')
|
||
|| DECODE (kenmerkwaarde, NULL, ';', '"' || REPLACE (kenmerkwaarde, '"', '''') || '"'),
|
||
ROWNUM
|
||
FROM mnnl_v_rap_sf_ord_kmk
|
||
ORDER BY 2;
|
||
|
||
-- MNNL#67162: Export tbv. Flexera (kolommen in HOOFDLETTERS)!
|
||
CREATE OR REPLACE VIEW MNNL_V_RAP_FLEXERA
|
||
(
|
||
IDENTIFICATIE,
|
||
BESCHRIJVING,
|
||
AFDELING,
|
||
VOORLETTERS,
|
||
VOORNAAM,
|
||
TUSSENVOEGSEL,
|
||
ACHTERNAAM,
|
||
LOCATIECODE,
|
||
GEBOUWCODE,
|
||
VERDIEPINGVOLGNR,
|
||
RUIMTENR,
|
||
DISCIPLINE,
|
||
GROEP,
|
||
OBJECTSOORTCODE,
|
||
OBJECTSOORTOMSCHRIJVING,
|
||
ACTIEF,
|
||
STATUS,
|
||
REDENBIJSTATUS,
|
||
FNMSASSETSTATUS,
|
||
SERIENUMMER,
|
||
MODEL,
|
||
AANSCHAFDATUM,
|
||
ORDERNUMMER,
|
||
--OPMERKINGEN,
|
||
REGISTRATIEDATUM,
|
||
VERVALDATUM,
|
||
AANSCHAFWAARDE,
|
||
ORGANISATIE
|
||
)
|
||
AS
|
||
SELECT x.ins_deel_omschrijving identificatie,
|
||
x.ins_deel_opmerking beschrijving,
|
||
x.prs_afdeling_naam afdeling,
|
||
x.voorletters,
|
||
x.voornaam,
|
||
x.tussenvoegsel,
|
||
x.naam achternaam,
|
||
x.alg_locatie_code locatiecode,
|
||
x.alg_gebouw_code gebouwcode,
|
||
x.alg_verdieping_volgnr verdiepingvolgnr,
|
||
x.alg_ruimte_nr ruimtenr,
|
||
x.ins_discipline_omschrijving discipline,
|
||
x.ins_srtgroep_omschrijving groep,
|
||
x.ins_srtdeel_code objectsoortcode,
|
||
x.ins_srtdeel_omschrijving objectsoortomschrijving,
|
||
DECODE (x.ins_deel_actief, 1, 'Ja', 'Nee') actief,
|
||
--(SELECT fac_usrdata_code
|
||
-- FROM fac_v_aanwezigusrdata
|
||
-- WHERE TO_CHAR (fac_usrdata_key) = sts.ins_kenmerkdeel_waarde)
|
||
ud_sts.fac_usrdata_code status, -- Status
|
||
(SELECT fac_usrdata_code
|
||
FROM fac_v_aanwezigusrdata
|
||
WHERE TO_CHAR (fac_usrdata_key) = rbs.ins_kenmerkdeel_waarde)
|
||
redenbijstatus, -- Reden bij status
|
||
DECODE (TRIM (ud_sts.fac_usrdata_upper),
|
||
'AFTEVOEREN', 'Retired',
|
||
'GEBRUIK', 'Installed',
|
||
'TER REPARATIE', 'In storage',
|
||
'VERWIJDERD', 'Disposed',
|
||
'???')
|
||
fnmsassetstatus,
|
||
snr.ins_kenmerkdeel_waarde serienummer, -- Serienummer
|
||
mdl.ins_kenmerkdeel_waarde model, -- Model
|
||
asd.ins_kenmerkdeel_waarde aanschafdatum, -- Aanschafdatum
|
||
onr.ins_kenmerkdeel_waarde ordernummer, -- Ordernummer
|
||
--opm.ins_kenmerkdeel_waarde opmerkingen, -- Opmerkingen
|
||
x.ins_deel_aanmaak registratiedatum,
|
||
x.ins_deel_vervaldatum vervaldatum,
|
||
--x.ins_deel_verwijder verwijderdatum,
|
||
asw.ins_kenmerkdeel_waarde aanschafwaarde, -- Aanschafwaarde
|
||
x.organisatie organisatie
|
||
FROM (SELECT d.ins_deel_key,
|
||
td.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
a.prs_afdeling_naam,
|
||
-- NULL prs_perslid_oslogin,
|
||
NULL voorletters,
|
||
NULL voornaam,
|
||
NULL tussenvoegsel,
|
||
NULL naam,
|
||
NULL alg_locatie_code,
|
||
NULL alg_gebouw_code,
|
||
NULL alg_verdieping_volgnr,
|
||
NULL alg_ruimte_nr,
|
||
d.ins_deel_aanmaak,
|
||
d.ins_deel_vervaldatum,
|
||
d.ins_deel_verwijder,
|
||
d.ins_deel_actief,
|
||
NULL organisatie
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
prs_afdeling a
|
||
WHERE d.ins_srtdeel_key = 181 -- Pc-Laptop
|
||
AND 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 IN (1104, 1741) -- EndUser Asset, uitleen Assets
|
||
AND d.ins_alg_ruimte_type = 'A'
|
||
AND d.ins_alg_ruimte_key = a.prs_afdeling_key
|
||
UNION ALL
|
||
SELECT d.ins_deel_key,
|
||
td.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
NULL prs_afdeling_naam,
|
||
-- NULL prs_perslid_oslogin,
|
||
p.prs_perslid_voorletters voorletters,
|
||
p.prs_perslid_voornaam voornaam,
|
||
p.prs_perslid_tussenvoegsel tussenvoegsel,
|
||
p.prs_perslid_naam naam,
|
||
NULL alg_locatie_code,
|
||
NULL alg_gebouw_code,
|
||
NULL alg_verdieping_volgnr,
|
||
NULL alg_ruimte_nr,
|
||
d.ins_deel_aanmaak,
|
||
d.ins_deel_vervaldatum,
|
||
d.ins_deel_verwijder,
|
||
d.ins_deel_actief,
|
||
a.prs_afdeling_naam organisatie
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
prs_perslid p,
|
||
prs_afdeling a
|
||
WHERE d.ins_srtdeel_key = 181 -- Pc-Laptop
|
||
AND 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 IN (1104, 1741) -- EndUser Asset, uitleen Assets
|
||
AND d.ins_alg_ruimte_type = 'P'
|
||
AND d.ins_alg_ruimte_key = p.prs_perslid_key
|
||
AND p.prs_afdeling_key = a.prs_afdeling_key
|
||
UNION ALL
|
||
SELECT d.ins_deel_key,
|
||
td.ins_discipline_omschrijving,
|
||
sg.ins_srtgroep_omschrijving,
|
||
sd.ins_srtdeel_code,
|
||
sd.ins_srtdeel_omschrijving,
|
||
d.ins_deel_omschrijving,
|
||
d.ins_deel_opmerking,
|
||
NULL prs_afdeling_naam,
|
||
-- NULL prs_perslid_oslogin,
|
||
NULL voorletters,
|
||
NULL voornaam,
|
||
NULL tussenvoegsel,
|
||
NULL naam,
|
||
l.alg_locatie_code,
|
||
g.alg_gebouw_code,
|
||
v.alg_verdieping_volgnr,
|
||
r.alg_ruimte_nr,
|
||
d.ins_deel_aanmaak,
|
||
d.ins_deel_vervaldatum,
|
||
d.ins_deel_verwijder,
|
||
d.ins_deel_actief,
|
||
NULL organisatie
|
||
FROM ins_v_aanwezigdeel d,
|
||
ins_srtdeel sd,
|
||
ins_srtgroep sg,
|
||
ins_tab_discipline td,
|
||
alg_ruimte r,
|
||
alg_verdieping v,
|
||
alg_gebouw g,
|
||
alg_locatie l
|
||
WHERE d.ins_srtdeel_key = 181 -- Pc-Laptop
|
||
AND 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 IN (1104, 1741) -- EndUser Asset, uitleen Assets
|
||
AND d.ins_alg_ruimte_type = 'R'
|
||
AND d.ins_alg_ruimte_key = r.alg_ruimte_key
|
||
AND r.alg_verdieping_key = v.alg_verdieping_key
|
||
AND v.alg_gebouw_key = g.alg_gebouw_key
|
||
AND g.alg_locatie_key = l.alg_locatie_key) x
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel sts
|
||
ON x.ins_deel_key = sts.ins_deel_key
|
||
AND sts.ins_kenmerk_key = 21 -- Status
|
||
LEFT JOIN fac_usrdata ud_sts
|
||
ON fac.safe_to_number (sts.ins_kenmerkdeel_waarde) = ud_sts.fac_usrdata_key
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel rbs
|
||
ON x.ins_deel_key = rbs.ins_deel_key
|
||
AND rbs.ins_kenmerk_key = 81 -- Reden bij status
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel snr
|
||
ON x.ins_deel_key = snr.ins_deel_key
|
||
AND snr.ins_kenmerk_key = 22 -- Serienummer
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel mdl
|
||
ON x.ins_deel_key = mdl.ins_deel_key
|
||
AND mdl.ins_kenmerk_key = 23 -- Model
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel asd
|
||
ON x.ins_deel_key = asd.ins_deel_key
|
||
AND asd.ins_kenmerk_key = 24 -- Aanschafdatum
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel onr
|
||
ON x.ins_deel_key = onr.ins_deel_key
|
||
AND onr.ins_kenmerk_key = 25 -- Ordernummer
|
||
--LEFT JOIN ins_v_aanwezigkenmerkdeel opm
|
||
-- ON x.ins_deel_key = opm.ins_deel_key AND opm.ins_kenmerk_key = 27 -- Opmerkingen
|
||
LEFT JOIN ins_v_aanwezigkenmerkdeel asw
|
||
ON x.ins_deel_key = asw.ins_deel_key
|
||
AND asw.ins_kenmerk_key = 101 -- MNNL#53670: Aanschafwaarde
|
||
--WHERE ud_sts.fac_usrdata_key IN (592, 593, 595, 664)
|
||
;
|
||
|
||
-- MNNL#68674: CUST09-notificatie naar hard adres MBCHG@mn.nl bij afmelden van
|
||
-- elke Change(-workflowstap).
|
||
CREATE OR REPLACE VIEW MNNL_V_NOTI_CHANGE_AFM
|
||
(
|
||
code,
|
||
sender,
|
||
receiver,
|
||
text,
|
||
key,
|
||
xkey,
|
||
xsender,
|
||
xemail,
|
||
xmobile,
|
||
attachments
|
||
)
|
||
AS
|
||
SELECT sn.fac_srtnotificatie_code,
|
||
NULL,
|
||
NULL,
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (
|
||
REPLACE (sn.fac_srtnotificatie_oms,
|
||
'##KEY##', TO_CHAR (m.mld_melding_key)),
|
||
'##DISC##', md.ins_discipline_omschrijving),
|
||
'##STDMLD##', sm.mld_stdmelding_omschrijving),
|
||
'##SUBJECT##', m.mld_melding_onderwerp),
|
||
m.mld_melding_key,
|
||
NULL,
|
||
NULL,
|
||
'MBCHG@mn.nl',
|
||
NULL,
|
||
NULL
|
||
FROM fac_tracking t,
|
||
mld_melding m,
|
||
mld_stdmelding sm,
|
||
mld_discipline md,
|
||
fac_srtnotificatie sn,
|
||
fac_notificatie_job nj
|
||
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
|
||
AND t.fac_tracking_refkey = m.mld_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 = 41 -- Change (RFC)
|
||
AND sn.fac_srtnotificatie_code = 'CUST09'
|
||
AND nj.fac_notificatie_job_view = 'MNNL_V_NOTI_CHANGE_AFM'
|
||
AND t.fac_tracking_datum BETWEEN nj.fac_notificatie_job_lastrun AND nj.fac_notificatie_job_nextrun;
|
||
|
||
-- MNNL#73240: Combineren 'Actiedatum' (MLD) en 'Afspraak SD' (RES) in kalender.
|
||
CREATE OR REPLACE VIEW MNNL_V_RAP_CAL_SD
|
||
AS
|
||
SELECT NULL user_key,
|
||
TO_CHAR (m.mld_melding_key)
|
||
|| ' [' || COALESCE (m.mld_melding_onderwerp, md.ins_discipline_omschrijving || ' - ' || sm.mld_stdmelding_omschrijving) || ']' title,
|
||
m.mld_melding_actiedatum van,
|
||
m.mld_melding_actiedatum + (0.5 / 24) tot,
|
||
m.mld_melding_key item_key,
|
||
'#008000' color,
|
||
'#FFFFFF' textcolor,
|
||
'?u=melding' || CHR (38) || 'internal=1' || CHR (38) || 'k=' || m.mld_melding_key url
|
||
FROM mld_melding m, mld_stdmelding sm, mld_discipline md
|
||
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
|
||
AND sm.mld_ins_discipline_key = md.ins_discipline_key
|
||
AND md.ins_discipline_key = 988 -- ITL Servicedesk (Request)
|
||
AND m.mld_melding_actiedatum > TRUNC (ADD_MONTHS (SYSDATE, -1), 'mm')
|
||
UNION ALL
|
||
SELECT NULL user_key,
|
||
TO_CHAR (rrr.res_reservering_key) || '/' || TO_CHAR (rrr.res_rsv_ruimte_volgnr)
|
||
|| ' [' || COALESCE (kr.res_kenmerkreservering_waarde, 'Afspraak Servicedesk') || ']' title,
|
||
rrr.res_rsv_ruimte_van van,
|
||
rrr.res_rsv_ruimte_tot tot,
|
||
rrr.res_rsv_ruimte_key item_key,
|
||
'#008000' color,
|
||
'#FFFFFF' textcolor,
|
||
'?u=reservering' || CHR (38) || 'internal=1' || CHR (38) || 'k=' || rrr.res_rsv_ruimte_key url
|
||
FROM res_v_aanwezigrsv_ruimte rrr,
|
||
(SELECT * FROM res_v_aanwezigkenmerkwaarde WHERE res_kenmerk_key = 381) kr --322 -- Reden van de afspraak
|
||
WHERE rrr.res_activiteit_key = 350 --330 -- Afspraak Servicedesk
|
||
AND rrr.res_rsv_ruimte_van > TRUNC (ADD_MONTHS (SYSDATE, -1), 'mm')
|
||
AND rrr.res_rsv_ruimte_dirtlevel = 0
|
||
AND rrr.res_rsv_ruimte_key = kr.res_rsv_ruimte_key(+);
|
||
|
||
-- MNNL#74028: Securitas-koppeling tbv. kentekens (per dag zoals geregistreerd
|
||
-- in kenmerk bij WP-reserveringen).
|
||
CREATE OR REPLACE VIEW mnnl_v_rap_kentekens_datum
|
||
AS
|
||
SELECT kr.res_kenmerkreservering_waarde kenteken
|
||
FROM res_v_aanwezigrsv_ruimte rrr, res_v_aanwezigkenmerkwaarde kr
|
||
WHERE rrr.res_activiteit_key = 390 -- Reservering parkeerplek
|
||
AND TRUNC (rrr.res_rsv_ruimte_van) = TRUNC (SYSDATE) -- Vandaag
|
||
AND rrr.res_rsv_ruimte_key = kr.res_rsv_ruimte_key
|
||
AND kr.res_kenmerk_key = 421 -- Kenteken
|
||
;
|
||
|
||
------ 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
|