Files
Customer/HSLE/hsle.sql
Maarten van der Heide 7813bb920d HSLE#78465 CUST05-noti/Wijzigen Ed naar Ruud
svn path=/Customer/trunk/; revision=60836
2023-06-19 13:02:40 +00:00

6029 lines
262 KiB
SQL
Raw Blame History

--
-- $Id$
--
-- Script containing customer specific db-configuration for HSLE: HogeSchool LEiden
DEFINE thisfile = 'HSLE.SQL'
DEFINE dbuser = '^HSLE'
SET ECHO ON
SET DEFINE ON
COLUMN fcltlogfile NEW_VALUE fcltlogfile NOPRINT;
COLUMN fcltcusttxt NEW_VALUE fcltcusttxt NOPRINT;
WHENEVER SQLERROR CONTINUE;
SELECT adm.getscriptspoolfile('&thisfile') AS fcltlogfile FROM DUAL;
SPOOL &fcltlogfile
WHENEVER SQLERROR EXIT;
SELECT adm.checkscriptcust('&dbuser') AS fcltcusttxt FROM DUAL;
WHENEVER SQLERROR CONTINUE;
---------------------------------------
PROMPT &fcltcusttxt
---------------------------------------
SET DEFINE OFF
------ payload begin ------
CREATE OR REPLACE PACKAGE HSLE
AS
PROCEDURE schonen_accounts;
PROCEDURE update_fegroep;
END;
/
CREATE OR REPLACE PACKAGE BODY HSLE
AS
-- Verwijder medewerkers 7 dagen na einddatum (in het verleden)!
PROCEDURE schonen_accounts
AS
CURSOR c_del
IS
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || pf.prs_perslid_naam_full || '] '
aanduiding,
p.prs_perslid_key,
COUNT (*) verplichtingen
FROM prs_v_aanwezigperslid p, prs_v_perslid_fullnames_all pf, prs_v_verplichting_keys v
WHERE INSTR (UPPER (COALESCE (p.prs_perslid_email, 'x')), '@STUDENT.HSLEIDEN.NL') = 0 -- HSLE#73333: Medewerker als email <> @student.hsleiden.nl (of leeg)!
AND p.prs_perslid_externid IS NOT NULL
AND SUBSTR (COALESCE (p.prs_perslid_oslogin, 'x'), 1, 1) <> '_'
AND p.prs_perslid_apikey IS NULL -- Voor de zekerheid!
AND p.prs_perslid_key > 10 -- Voor de zekerheid!
AND p.prs_perslid_einddatum + 7 < TRUNC (SYSDATE) -- Dus einddatum gevuld!
AND p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_perslid_key = v.prs_perslid_key(+)
GROUP BY '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || pf.prs_perslid_naam_full || '] ',
p.prs_perslid_key
ORDER BY 2;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_verwijderd NUMBER (10) := 0;
v_count_inactief NUMBER (10) := 0;
BEGIN
FOR rec IN c_del
LOOP
BEGIN
IF rec.verplichtingen = 0
THEN
v_errormsg := 'Fout verwijderen collega';
DELETE FROM prs_collega
WHERE prs_perslid_key = rec.prs_perslid_key
OR prs_perslid_key_alt = rec.prs_perslid_key;
v_errormsg := 'Fout verwijderen perslid';
UPDATE prs_perslid
SET prs_perslid_verwijder = SYSDATE
WHERE prs_perslid_key = rec.prs_perslid_key;
COMMIT;
v_count_verwijderd := v_count_verwijderd + 1;
ELSE
v_errormsg := 'Fout inactiveren perslid';
UPDATE prs_perslid
SET prs_perslid_naam = SUBSTR ('INACTIEF:' || prs_perslid_naam, 1, 60),
prs_perslid_email = NULL,
prs_perslid_oslogin = NULL,
prs_perslid_oslogin2 = NULL
WHERE prs_perslid_key = rec.prs_perslid_key
AND INSTR (UPPER (prs_perslid_naam), 'INACTIEF:') = 0;
COMMIT;
v_count_inactief := v_count_inactief + 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.writelog ('HSLE_SCHONEN', 'W', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
fac.writelog ('HSLE_SCHONEN', 'S', 'Medewerkers/#verwijderd: ' || TO_CHAR (v_count_verwijderd), '');
fac.writelog ('HSLE_SCHONEN', 'S', 'Medewerkers/#inactief: ' || TO_CHAR (v_count_inactief), '');
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 100);
v_errormsg := v_errormsg || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('HSLE_SCHONEN', 'E', v_errormsg, '');
COMMIT;
END schonen_accounts;
-- HSLE#74337: Toekennen medewerkers aan groep 302=FE - Medewerker!
PROCEDURE update_fegroep
AS
c_applname VARCHAR2 (50) := 'UPDATE_FEGROEP';
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count NUMBER;
v_datum1 DATE;
v_datum2 DATE;
CURSOR c_medewerkers
IS
SELECT '[' || TO_CHAR (p.prs_perslid_key) || '|' || p.prs_perslid_email || '|' || pf.prs_perslid_naam_full || '] '
aanduiding,
p.prs_perslid_key
FROM prs_v_aanwezigperslid p, prs_v_perslid_fullnames_all pf
WHERE INSTR (UPPER (COALESCE (p.prs_perslid_email, 'x')), '@STUDENT.HSLEIDEN.NL') = 0 -- HSLE#73333: Medewerker als email <> @student.hsleiden.nl (of leeg)!
AND p.prs_perslid_externid IS NOT NULL
AND SUBSTR (COALESCE (p.prs_perslid_oslogin, 'x'), 1, 1) <> '_'
AND p.prs_perslid_apikey IS NULL -- Voor de zekerheid!
AND p.prs_perslid_key > 10 -- Voor de zekerheid!
AND p.prs_perslid_key = pf.prs_perslid_key
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE fac_groep_key = 302 -- FE - Medewerker
AND prs_perslid_key = p.prs_perslid_key)
ORDER BY prs_perslid_key;
BEGIN
v_count := 0;
v_datum1 := SYSDATE;
FOR rec IN c_medewerkers
LOOP
BEGIN
v_errormsg := 'Fout toevoegen autorisatiegroep';
INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key)
VALUES (302, rec.prs_perslid_key);
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 (c_applname, 'E', rec.aanduiding || v_errormsg, '');
COMMIT;
END;
END LOOP;
v_datum2 := SYSDATE;
fac.writelog (c_applname, 'S', 'FE - Medewerker/#toegekend: ' || TO_CHAR (v_count), TO_CHAR (ROUND ((v_datum2 - v_datum1) * 24 * 60), 'FM990') || 'm');
COMMIT;
END update_fegroep;
END;
/
CREATE OR REPLACE PROCEDURE HSLE_DAILY
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
BEGIN
-- Verwijder medewerkers 7 dagen na einddatum (in het verleden)!
hsle.schonen_accounts ();
-- HSLE#74337: Toekennen medewerkers aan groep 302=FE - Medewerker!
hsle.update_fegroep ();
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg := 'ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')';
fac.writelog ('DAILY', 'E', 'Proces afgebroken!', v_errormsg);
END HSLE_DAILY;
/
--
-- Personen import
--
CREATE OR REPLACE PROCEDURE hsle_post_import_perslid (p_import_key IN NUMBER)
AS
BEGIN
UPDATE fac_imp_perslid
SET prs_perslid_dienstverband =
100 * fac.safe_to_number (prs_kenmerk2)
WHERE fac_import_key = p_import_key;
UPDATE fac_imp_perslid
SET prs_afdeling_naam =
SUBSTR (prs_afdeling_naam,
1,
INSTR (prs_afdeling_naam, '#') - 1)
WHERE INSTR (prs_afdeling_naam, '#') > 0
AND UPPER (prs_perslid_email) LIKE '%STUDENT.HSLEIDEN.NL%'
AND fac_import_key = p_import_key;
COMMIT;
END;
/
CREATE OR REPLACE PROCEDURE hsle_import_perslid (p_import_key IN NUMBER)
AS
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_errormsg VARCHAR2 (400);
v_errorhint VARCHAR2 (400);
v_aantal_in_FCLT NUMBER;
v_aantal_uit_UMRA NUMBER;
BEGIN
v_errorhint := 'Generieke update';
-- De sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid()-procedure.
prs.import_perslid (
p_import_key,
'0;0;0;0;0;0;6;4;3;1;'
|| '2;0;0;0;0;10;9;8;0;5;'
|| '7;11;0;0;0;0;12;13;14;15;'
|| '0;0;0;0;0;0;0;0;0;0;'
|| '0;0;0;0;0;0',
'Roepnaam;Voorletters;Tussenvoegsel;Achternaam;Persnr.;Afdnr.;Functie;Email;Mobile;Telefoon;Loginnaam;IID;Fte;Indienst;Uitdienst%');
COMMIT;
hsle_post_import_perslid (p_import_key);
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ') ';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'Inleesproces personen afgebroken!');
END hsle_import_perslid;
/
CREATE OR REPLACE PROCEDURE hsle_post_update_perslid (p_import_key IN NUMBER)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
CURSOR c_perslid_kenmerk_iid IS
SELECT prs_perslid_key, prs_kenmerk1, prs_perslid_email
FROM fac_imp_perslid
WHERE fac_import_key = p_import_key AND prs_kenmerk1 IS NOT NULL;
CURSOR c_perslid_kenmerk_overig IS
SELECT prs_perslid_key,
prs_kenmerk3 prs_perslid_ingangsdatum,
prs_kenmerk4 prs_perslid_einddatum,
prs_perslid_email
FROM fac_imp_perslid
WHERE fac_import_key = p_import_key;
-- De medewerkers, dus de niet-studenten, krijgen een extra autorisatiegroep (key 302): "FE - Medewerker", als ze deze autogroep (key 302) nog niet hebben.
CURSOR c_perslid_niet_studenten IS
SELECT ip.prs_perslid_key, ip.prs_perslid_email
FROM fac_imp_perslid ip
WHERE fac_import_key = p_import_key
AND UPPER (ip.prs_perslid_email) NOT LIKE
'%STUDENT.HSLEIDEN.NL%'
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE prs_perslid_key = ip.prs_perslid_key
AND fac_groep_key = 302);
CURSOR c_perslid_studenten IS
SELECT ip.prs_perslid_key, ip.prs_perslid_email
FROM fac_imp_perslid ip
WHERE fac_import_key = p_import_key
AND UPPER (ip.prs_perslid_email) LIKE '%STUDENT.HSLEIDEN.NL%'
AND NOT EXISTS
(SELECT 1
FROM fac_gebruikersgroep
WHERE prs_perslid_key = ip.prs_perslid_key
AND fac_groep_key = 621);
BEGIN
FOR rc IN c_perslid_kenmerk_iid
LOOP
BEGIN
-- IID heeft vaste kenmerk-key 1000
prs.upsertkenmerk (1000, rc.prs_perslid_key, rc.prs_kenmerk1);
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'W',
'Post update 1 (IID) bij persoon '
|| TO_CHAR (rc.prs_perslid_key)
|| ' is NIET volledig uitgevoerd',
'Email:' || rc.prs_perslid_email);
END;
END LOOP;
FOR rc IN c_perslid_kenmerk_overig
LOOP
BEGIN
UPDATE prs_perslid p
SET p.prs_perslid_ingangsdatum =
COALESCE (
TO_DATE (rc.prs_perslid_ingangsdatum,
'dd-mm-yyyy'),
p.prs_perslid_ingangsdatum),
p.prs_perslid_einddatum =
TO_DATE (rc.prs_perslid_einddatum, 'dd-mm-yyyy')
WHERE p.prs_perslid_key = rc.prs_perslid_key;
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'W',
'Post update 2 (KENMERK_OVERIG) bij persoon '
|| TO_CHAR (rc.prs_perslid_key)
|| ' is NIET volledig uitgevoerd',
'Email:' || rc.prs_perslid_email);
END;
END LOOP;
FOR rc IN c_perslid_niet_studenten
LOOP
BEGIN
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
VALUES (rc.prs_perslid_key, 302);
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'W',
'Post update 3 (AUTORISATIE GROEP medewerker) bij persoon '
|| TO_CHAR (rc.prs_perslid_key)
|| ' is NIET volledig uitgevoerd',
'Email:' || rc.prs_perslid_email);
END;
END LOOP;
FOR rc IN c_perslid_studenten
LOOP
BEGIN
INSERT INTO fac_gebruikersgroep (prs_perslid_key, fac_groep_key)
VALUES (rc.prs_perslid_key, 621);
EXCEPTION
WHEN OTHERS
THEN
fac.imp_writelog (
p_import_key,
'W',
'Post update 4 (AUTORISATIE GROEP student) bij persoon '
|| TO_CHAR (rc.prs_perslid_key)
|| ' is NIET volledig uitgevoerd',
'Email:' || rc.prs_perslid_email);
END;
END LOOP;
--HSLE#57025: Kopieer prs_perslid_externid naar prs_perslid_nr voor studenten!
UPDATE prs_perslid
SET prs_perslid_nr = prs_perslid_externid
WHERE prs_perslid_verwijder IS NULL
AND UPPER (prs_perslid_email) LIKE '%STUDENT.HSLEIDEN.NL%';
EXCEPTION
WHEN OTHERS
THEN
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
'ORACLE (error '
|| oracle_err_num
|| '/'
|| oracle_err_mes
|| ') ';
fac.imp_writelog (p_import_key,
'E',
v_errormsg,
'hsle_post_update_perslid() afgebroken!');
END;
/
CREATE OR REPLACE PROCEDURE hsle_update_perslid (p_import_key IN NUMBER)
IS
CURSOR c_del IS
SELECT p.prs_perslid_key,
p.prs_perslid_externid,
pf.prs_perslid_naam_full
FROM prs_v_aanwezigperslid p, prs_v_perslid_fullnames_all pf
WHERE 1 = 1
AND INSTR (UPPER (p.prs_perslid_email), '@STUDENT.HSLEIDEN.NL') > 0
--HSLE#57025: AND p.prs_perslid_nr IS NOT NULL
AND p.prs_perslid_externid IS NOT NULL
AND SUBSTR (p.prs_perslid_oslogin, 1, 1) <> '_'
AND p.prs_perslid_key = pf.prs_perslid_key
AND NOT EXISTS
(SELECT 1
FROM fac_imp_perslid
WHERE UPPER (prs_perslid_nr) = UPPER (p.prs_perslid_externid))
ORDER BY 2;
v_count NUMBER;
-- Procedure om generiek personen in te lezen of aan te passen.
-- p_sleutelkolom Bevat het veld die als sleutel bij de import dient.
-- NR - personeelsnummer
-- EMAIL - emailadres
-- LOGIN - logincode
-- APIKEY - API-key voor distributie van persoonsgegevens over FACILITORs
-- XID - externid (toegevoegd nav. HSLE#57025)
-- 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
PROCEDURE update_perslid (p_import_key IN NUMBER,
p_sleutelkolom IN VARCHAR2,
p_alg_type IN VARCHAR2)
IS
v_errormsg VARCHAR2 (1000);
v_errorhint VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_aanduiding VARCHAR2 (200);
v_count NUMBER (10);
v_count_tot NUMBER (10);
v_count_error NUMBER (10);
v_wpcount_error NUMBER (10);
--
v_srtperslid_key NUMBER (10);
v_perslid_key NUMBER (10);
v_afdeling_key NUMBER (10);
v_prs_perslid_naam VARCHAR2 (200);
v_prs_perslid_tussenvoegsel VARCHAR2 (200);
v_locatie_key NUMBER (10);
v_gebouw_key NUMBER (10);
v_verdieping_key NUMBER (10);
v_ruimte_key NUMBER (10);
v_space VARCHAR2 (1);
CURSOR cSPERSLID IS
SELECT MIN (prs_srtperslid_omschrijving) prs_srtperslid_omschrijving
FROM fac_imp_perslid i
WHERE NOT EXISTS
(SELECT prs_srtperslid_key
FROM prs_srtperslid
WHERE UPPER (prs_srtperslid_omschrijving) =
UPPER (i.prs_srtperslid_omschrijving))
GROUP BY UPPER (prs_srtperslid_omschrijving);
recSPersLid cSPersLid%ROWTYPE;
CURSOR cPERSLID IS SELECT * FROM fac_imp_perslid;
recPersLid cPersLid%ROWTYPE;
BEGIN
v_count_tot := 0;
v_count_error := 0;
FOR recSPersLid IN cSPERSLID
LOOP
BEGIN
v_aanduiding := '';
v_errormsg := '';
v_errorhint := '';
v_count_tot := v_count_tot + 1;
v_aanduiding := recSPersLid.PRS_SRTPERSLID_OMSCHRIJVING;
v_errorhint := 'Fout bij toevoegen functie';
INSERT INTO prs_srtperslid (prs_srtperslid_omschrijving)
VALUES (recSPersLid.prs_srtperslid_omschrijving);
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' (ORACLE error number = <'
|| ORACLE_err_num
|| '> ORACLE error message = <'
|| ORACLE_err_mes
|| '>)';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'Personeelsfunctie: toegevoegde regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
'');
fac.imp_writelog (
p_import_key,
'S',
'Personeelsfunctie: toegevoegde regels met foutmelding: '
|| TO_CHAR (v_count_error),
'');
COMMIT;
v_count_tot := 0;
v_count_error := 0;
v_wpcount_error := 0;
FOR recPersLid IN cPERSLID
LOOP
BEGIN
v_aanduiding := '';
v_errormsg := '';
v_errorhint := '';
v_count_tot := v_count_tot + 1;
v_aanduiding :=
recPersLid.prs_perslid_naam
|| '|'
|| recPersLid.prs_perslid_voornaam
|| '| ';
v_errorhint := 'Fout bij bepalen functie';
SELECT prs_srtperslid_key
INTO v_srtperslid_key
FROM prs_srtperslid
WHERE prs_srtperslid_verwijder IS NULL
AND UPPER (prs_srtperslid_omschrijving) =
UPPER (recPersLid.prs_srtperslid_omschrijving);
v_errorhint :=
'Afdeling niet gevonden ['
|| recPersLid.prs_afdeling_naam
|| ']';
SELECT a.prs_afdeling_key
INTO v_afdeling_key
FROM prs_afdeling a, prs_v_aanwezigafdeling_boom ab
WHERE a.prs_afdeling_verwijder IS NULL
AND a.prs_afdeling_key = ab.prs_afdeling_key
AND UPPER (a.prs_afdeling_naam) =
UPPER (recPersLid.prs_afdeling_naam);
v_space := '';
-- Kijk hoe we met partnernamen moeten omgaan:
IF recPersLid.prs_perslid_naamgebruik_code = 0
THEN
-- Normaal gebruik van naam. Eigen naam wordt gebruikt.
v_prs_perslid_naam := recPersLid.prs_perslid_naam;
v_prs_perslid_tussenvoegsel :=
recPersLid.prs_perslid_tussenvoegsel;
ELSIF recPersLid.prs_perslid_naamgebruik_code = 1
THEN
-- Personen die de geboortenaam van de partner icm. de eigen naam willen gebruiken.
IF recPersLid.prs_perslid_tussenvoegsel IS NOT NULL
THEN
v_space := ' ';
END IF;
v_prs_perslid_naam :=
recPersLid.prs_perslid_partner_naam
|| ' - '
|| recPersLid.prs_perslid_tussenvoegsel
|| v_space
|| recPersLid.prs_perslid_naam;
v_prs_perslid_tussenvoegsel :=
recPersLid.prs_perslid_partner_tussenv;
ELSIF recPersLid.prs_perslid_naamgebruik_code = 2
THEN
-- Personen die de geboortenaam van de partner willen gebruiken.
v_prs_perslid_naam := recPersLid.prs_perslid_partner_naam;
v_prs_perslid_tussenvoegsel :=
recPersLid.prs_perslid_partner_tussenv;
ELSIF recPersLid.prs_perslid_naamgebruik_code = 3
THEN
-- Personen die de eigen naam icm. de geboortenaam van de partner willen gebruiken.
IF recPersLid.prs_perslid_partner_tussenv IS NOT NULL
THEN
v_space := ' ';
END IF;
v_prs_perslid_naam :=
recPersLid.prs_perslid_naam
|| ' - '
|| recPersLid.prs_perslid_partner_tussenv
|| v_space
|| recPersLid.prs_perslid_partner_naam;
v_prs_perslid_tussenvoegsel :=
recPersLid.prs_perslid_tussenvoegsel;
END IF;
IF LENGTH (v_prs_perslid_naam) > 60
THEN
v_prs_perslid_naam := SUBSTR (v_prs_perslid_naam, 1, 60);
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Samengestelde achternaam is te lang',
'Aanduiding wordt afgebroken tot ['
|| v_prs_perslid_naam
|| ']');
END IF;
-- p_sleutelkolom
-- NR = prs_perslid_nr gevuld met prs_perslid_nr (zichtbaar)
-- EMAIL = prs_perslid_email
-- LOGIN = prs_perslid_oslogin
-- APIKEY = prs_perslid_apikey
-- XID = prs_perslid_externid gevuld met prs_perslid_nr (onzichtbaar)
v_errorhint := 'Kijken of de persoon al bestaat';
SELECT MAX (prs_perslid_key), COUNT (*)
INTO v_perslid_key, v_count
FROM prs_perslid
WHERE prs_perslid_verwijder IS NULL
AND ( ( p_sleutelkolom IS NULL
AND UPPER (prs_perslid_naam) =
UPPER (recPersLid.prs_perslid_naam)
AND UPPER (prs_perslid_voornaam) =
UPPER (recPersLid.prs_perslid_voornaam))
OR ( UPPER (p_sleutelkolom) = 'NR'
AND UPPER (prs_perslid_nr) =
UPPER (recPersLid.prs_perslid_nr))
OR ( UPPER (p_sleutelkolom) = 'EMAIL'
AND UPPER (prs_perslid_email) =
UPPER (recPersLid.prs_perslid_email))
OR ( UPPER (p_sleutelkolom) = 'LOGIN'
AND UPPER (prs_perslid_oslogin) =
UPPER (recPersLid.prs_perslid_oslogin))
OR ( UPPER (p_sleutelkolom) = 'APIKEY'
AND UPPER (prs_perslid_apikey) =
UPPER (recPersLid.prs_perslid_apikey))
OR ( UPPER (p_sleutelkolom) = 'XID'
AND UPPER (prs_perslid_externid) =
UPPER (recPersLid.prs_perslid_nr)));
IF v_count = 0
THEN
v_errorhint := 'Fout bij toevoegen persoon';
INSERT INTO prs_perslid (prs_perslid_module,
prs_srtperslid_key,
prs_afdeling_key,
prs_perslid_naam,
prs_perslid_voorletters,
prs_perslid_tussenvoegsel,
prs_perslid_voornaam,
prs_perslid_telefoonnr,
prs_perslid_mobiel,
prs_perslid_email,
prs_perslid_nr,
prs_perslid_geslacht,
prs_perslid_titel,
prs_perslid_dienstverband,
prs_perslid_oslogin,
prs_perslid_apikey,
prs_perslid_externid)
VALUES (
'PRS',
v_srtperslid_key,
v_afdeling_key,
v_prs_perslid_naam,
recPersLid.prs_perslid_voorletters,
v_prs_perslid_tussenvoegsel,
recPersLid.prs_perslid_voornaam,
recPersLid.prs_perslid_telefoonnr,
recPersLid.prs_perslid_mobiel,
recPersLid.prs_perslid_email,
DECODE (UPPER (p_sleutelkolom),
'NR', recPersLid.prs_perslid_nr,
NULL),
recPersLid.prs_perslid_geslacht,
recPersLid.prs_perslid_titel,
recPersLid.prs_perslid_dienstverband,
recPersLid.prs_perslid_oslogin,
recPersLid.prs_perslid_apikey,
DECODE (UPPER (p_sleutelkolom),
'XID', recPersLid.prs_perslid_nr,
NULL))
RETURNING prs_perslid_key
INTO v_perslid_key;
prs.setpassword (v_perslid_key,
recPersLid.prs_perslid_wachtwoord);
ELSIF v_count = 1
THEN
v_errorhint := 'Fout bij bijwerken persoon';
UPDATE prs_perslid
SET prs_srtperslid_key = v_srtperslid_key,
prs_afdeling_key = v_afdeling_key,
prs_perslid_naam = v_prs_perslid_naam,
prs_perslid_voorletters =
recPersLid.prs_perslid_voorletters,
prs_perslid_tussenvoegsel =
v_prs_perslid_tussenvoegsel,
prs_perslid_voornaam =
recPersLid.prs_perslid_voornaam,
prs_perslid_nr =
DECODE (UPPER (p_sleutelkolom),
'NR', recPersLid.prs_perslid_nr,
NULL),
prs_perslid_dienstverband =
recPersLid.prs_perslid_dienstverband,
prs_perslid_geslacht =
recPersLid.prs_perslid_geslacht,
prs_perslid_titel = recPersLid.prs_perslid_titel,
prs_perslid_telefoonnr =
recPersLid.prs_perslid_telefoonnr,
prs_perslid_mobiel = recPersLid.prs_perslid_mobiel,
prs_perslid_email = recPersLid.prs_perslid_email,
prs_perslid_oslogin =
recPersLid.prs_perslid_oslogin,
prs_perslid_apikey = recPersLid.prs_perslid_apikey,
prs_perslid_externid =
DECODE (UPPER (p_sleutelkolom),
'XID', recPersLid.prs_perslid_nr,
NULL)
WHERE prs_perslid_key = v_perslid_key;
IF recPersLid.prs_perslid_wachtwoord IS NOT NULL
THEN
prs.setpassword (v_perslid_key,
recPersLid.prs_perslid_wachtwoord);
END IF;
END IF;
-- Handig om te onthouden tbv. CUST-postprocessing (van kenmerken)!
UPDATE fac_imp_perslid
SET prs_perslid_key = v_perslid_key
WHERE fac_import_key = recPersLid.fac_import_key
AND fac_imp_file_index = recPersLid.fac_imp_file_index;
COMMIT; -- persoon in ieder geval toegevoegd.
v_aanduiding :=
recPersLid.prs_perslid_nr
|| '|'
|| recPersLid.prs_perslid_naam
|| '|'
|| recPersLid.prs_perslid_voornaam
|| '|'
|| recPersLid.alg_locatie_code
|| '|'
|| recPersLid.alg_gebouw_code
|| '|'
|| recPersLid.alg_verdieping_volgnr
|| '|'
|| recPersLid.alg_ruimte_nr
|| ' - ';
v_locatie_key := NULL;
v_gebouw_key := NULL;
v_verdieping_key := NULL;
v_ruimte_key := NULL;
v_errorhint := 'Fout bij bepalen locatie';
SELECT MAX (alg_locatie_key)
INTO v_locatie_key
FROM alg_v_aanweziglocatie
WHERE UPPER (alg_locatie_code) =
UPPER (recPersLid.alg_locatie_code);
v_errorhint := 'Fout bij bepalen gebouw';
SELECT MAX (alg_gebouw_key)
INTO v_gebouw_key
FROM alg_v_aanweziggebouw
WHERE UPPER (alg_gebouw_code) =
UPPER (recPersLid.alg_gebouw_code)
AND alg_locatie_key = v_locatie_key;
v_errorhint := 'Fout bij bepalen verdieping';
SELECT MAX (alg_verdieping_key)
INTO v_verdieping_key
FROM alg_v_aanwezigverdieping
WHERE UPPER (alg_verdieping_volgnr) =
UPPER (recPersLid.alg_verdieping_volgnr)
AND alg_gebouw_key = v_gebouw_key;
v_errorhint := 'Fout bij bepalen beoogde ruimte';
SELECT MAX (alg_ruimte_key)
INTO v_ruimte_key
FROM alg_v_aanwezigruimte r
WHERE r.alg_ruimte_upper_nr =
UPPER (recPersLid.alg_ruimte_nr)
AND r.alg_verdieping_key = v_verdieping_key;
-- Standaard ruimte moet door cust-gedeelte van de 'Fout bij bepalen beoogde ruimte' import ingevuld worden.
-- Als er een locatie ingevuld is willen we ook een ruimte vinden.
IF v_ruimte_key IS NULL
AND recPersLid.alg_locatie_code IS NOT NULL
THEN
fac.imp_writelog (
p_import_key,
'W',
v_aanduiding || 'Ruimte kan niet gevonden worden',
'Controleer locatie, gebouw en verdieping');
END IF;
-- Fouten bij het bepalen van de werkplek worden als waarschuwing weergegeven.
BEGIN
v_errorhint := 'Fout bij het aanpassen van de werkplek';
PRS.movetoruimte (v_perslid_key,
v_ruimte_key,
p_alg_type);
EXCEPTION
WHEN OTHERS
THEN
v_wpcount_error := v_wpcount_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' (ORACLE error number = <'
|| ORACLE_err_num
|| '> ORACLE error message = <'
|| ORACLE_err_mes
|| '>)';
fac.imp_writelog (p_import_key,
'W',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
EXCEPTION
WHEN OTHERS
THEN
v_count_error := v_count_error + 1;
oracle_err_num := SQLCODE;
oracle_err_mes := SUBSTR (SQLERRM, 1, 200);
v_errormsg :=
' (ORACLE error number = <'
|| ORACLE_err_num
|| '> ORACLE error message = <'
|| ORACLE_err_mes
|| '>)';
fac.imp_writelog (p_import_key,
'E',
v_aanduiding || v_errormsg,
v_errorhint);
COMMIT;
END;
END LOOP;
fac.imp_writelog (
p_import_key,
'S',
'Persoon: verwerkte regels zonder foutmelding: '
|| TO_CHAR (v_count_tot - v_count_error),
'');
fac.imp_writelog (
p_import_key,
'S',
'Persoon: verwerkte regels met foutmelding: '
|| TO_CHAR (v_count_error),
'');
fac.imp_writelog (
p_import_key,
'S',
'Werkplek: verwerkte regels met foutmelding: '
|| TO_CHAR (v_wpcount_error),
'');
COMMIT;
END update_perslid;
BEGIN
-- generic update
SELECT COUNT (*) INTO v_count FROM fac_imp_perslid;
IF v_count < 10000
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;
-- XID -: Matchen op basis van (onzichtbare) prs_perslid_externid.
-- NULL -: Alle werkplekken met rust laten.
update_perslid (p_import_key, 'XID', NULL);
-- Verwijder personen die niet meer in de import voorkomen.
FOR rec IN c_del
LOOP
BEGIN
prs.delete_perslid (p_import_key, rec.prs_perslid_key);
END;
END LOOP;
hsle_post_update_perslid (p_import_key);
END hsle_update_perslid;
/
-- View voor referentie naar RES_RSV_RUIMTE
CREATE OR REPLACE VIEW HSLE_V_RES_REF
(
res_rsv_ruimte_key,
res_rsv_ruimte_omschr,
res_rsv_ruimte_verwijder
)
AS
SELECT res_rsv_ruimte_key,
res_reservering_key
|| '/'
|| res_rsv_ruimte_volgnr
|| res_rsv_ruimte_omschrijving,
res_rsv_ruimte_verwijder
FROM res_rsv_ruimte;
CREATE OR REPLACE VIEW hsle_v_medewerker
(
prs_perslid_key,
prs_perslid_naam,
prs_perslid_verwijder
)
AS
SELECT pf.prs_perslid_key, pf.prs_perslid_naam_friendly, p.prs_perslid_verwijder
FROM prs_v_perslid_fullnames pf, prs_perslid p, prs_v_afdeling_boom ab
WHERE pf.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 IN (-1);
-- VIEW om kenmerken toe te voegen aan UDR_DEELMELDING
CREATE OR REPLACE VIEW HSLE_V_INS_DEELMELDING
(
DEEL_KEY,
DISCIPLINE,
SOORT,
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,
FCLT_3D_DISCIPLINE_KEY,
FCLT_3D_AFDELING_KEY,
FCLT_3D_LOCATIE_KEY,
MELDING_KEY,
MELDINGNUMMER,
MELDING_START_KEY,
EXTERNNUMMER,
MELDING_DISTRICT,
MELDING_LOCATIECODE,
MELDING_LOCATIE,
MELDING_LOCATIEPLAATS,
MELDING_GEBOUWCODE,
MELDING_GEBOUW,
MELDING_VERDIEPING,
MELDING_RUIMTENR,
MELDING_RUIMTE,
MELDING_ORDERNR,
KOSTENSOORTGROEP,
KOSTENSOORT,
KOSTENPLAATS,
KOSTENPLAATS_OMS,
MELDER,
MELDER_KEY,
AFDELING,
AFDELING_OMSCHRIJVING,
BEDRIJF_KEY,
INVOERDER,
MELDBRON,
SOORTMELDING,
PRODUCTGROEP,
SUBPRODUCTGROEP,
BEHANDELGROEP,
BEHANDELAAR,
BEHANDELAAR_KEY,
SUBPRODUCTGROEPGROEP,
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,
MELDING_KOFFIE
)
AS
SELECT d.deel_key,
d.discipline,
d.soort,
d.groep,
d.soortcode,
d.omschrijving,
d.plaatseigenaar,
d.plaatseigenaartype,
d.plaatsaanduiding,
d.eigenaar,
d.eigenaar_key,
d.opmerking,
d.regio,
d.district,
d.locatie_code,
d.locatie_omschrijving,
d.locatie_plaats,
d.gebouwcode,
d.gebouw,
d.terreinsectorcode,
d.terreinsector,
d.verdiepingcode,
d.ruimtenr,
d.werkplekvolgnr,
d.werkplek,
d.uitleenbaar,
d.uitgeleend,
d.res_opmerking,
d.beheerder,
d.vervaldatum,
d.actief,
d.aantal,
d.state,
d.statedate,
d.fclt_3d_discipline_key,
d.fclt_3d_afdeling_key,
d.fclt_3d_locatie_key,
m.melding_key,
m.meldingnummer,
m.melding_start_key,
m.externnummer,
m.melding_district,
m.melding_locatiecode,
m.melding_locatie,
m.melding_locatieplaats,
--m.fclt_3d_locatie_key,
m.melding_gebouwcode,
m.melding_gebouw,
m.melding_verdieping,
m.melding_ruimtenr,
m.melding_ruimte,
m.melding_ordernr,
m.kostensoortgroep,
m.kostensoort,
m.kostenplaats,
m.kostenplaats_oms,
m.melder,
m.melder_key,
m.afdeling,
m.afdeling_omschrijving,
--m.fclt_3d_afdeling_key,
m.bedrijf_key,
m.invoerder,
m.meldbron,
m.soortmelding,
--m.fclt_3d_discipline_key,
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_respijtdgn,
m.sla_respijturen,
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.bolletje,
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,
(SELECT ud.fac_usrdata_omschr
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE km.mld_kenmerk_key = 248 -- Keuze storing koffieaut.
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key
AND km.mld_melding_key = m.melding_key) waarde
FROM ins_v_udr_deel d, mld_melding_object mo, mld_v_udr_melding m
WHERE d.deel_key = mo.ins_deel_key
AND mo.mld_melding_key = m.melding_key;
-- HSLE#56067: Maandelijks freeze van ruimtehistorie.
CREATE OR REPLACE VIEW hsle_v_hv_actual
(
district_oms,
locatie_code,
gebouw_code,
verdieping_code,
ruimte_key,
ruimte_nr,
omschrijving,
functie,
bvo,
omtrek,
inhoud,
opmerking,
vloerafwerking,
status,
werkplekken,
toelichting,
inrichting,
opleiding,
aantal_wp, -- #prs_werkplek!
wp_bez, -- Som prs_perslidwerkplek_bezetting / #prs_werkplek
aantal_afd, -- #prs_afdeling (zou 1 moeten zijn)!
afd_naam, -- prs_afdeling_naam van oudste afdeling!
afd_oms, -- prs_afdeling_omschrijving van oudste afdeling!
afd_bez -- prs_ruimteafdeling_bezetting van oudste afdeling!
)
AS
SELECT x.alg_district_omschrijving,
x.alg_locatie_code,
x.alg_gebouw_code,
x.alg_verdieping_code,
x.alg_ruimte_key,
x.alg_ruimte_nr,
x.alg_ruimte_omschrijving,
sr.alg_srtruimte_omschrijving,
x.alg_ruimte_bruto_vloeropp,
x.alg_ruimte_omtrek,
x.alg_ruimte_inhoud,
x.alg_ruimte_opmerking,
ud1.fac_usrdata_omschr vloerafwerking,
ud2.fac_usrdata_omschr status,
ok3.alg_onrgoedkenmerk_waarde werkplekken,
ok4.alg_onrgoedkenmerk_waarde toelichting,
ok5.alg_onrgoedkenmerk_waarde inrichting,
ud6.fac_usrdata_omschr opleiding,
pwp.aantal aantal_wp,
DECODE (pwp.prs_alg_ruimte_key,
NULL, NULL,
ROUND (pwp.bezetting / pwp.aantal, 5)) wp_bez,
ra.aantal aantal_afd,
afd.prs_afdeling_naam,
afd.prs_afdeling_omschrijving,
DECODE (ra.aantal, 1, ra.bezetting, NULL) afd_bez -- Bezetting ongedefinieerd als aantal > 1!
FROM (SELECT r.alg_ruimte_key,
r.alg_ruimte_nr,
v.alg_verdieping_code,
g.alg_gebouw_code,
l.alg_locatie_code,
d.alg_district_omschrijving,
r.alg_ruimte_omschrijving,
r.alg_srtruimte_key,
r.alg_ruimte_bruto_vloeropp,
r.alg_ruimte_omtrek,
r.alg_ruimte_inhoud,
r.alg_ruimte_opmerking
FROM alg_v_aanwezigruimte r,
alg_verdieping v,
alg_gebouw g,
alg_locatie l,
alg_district d
WHERE 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
AND l.alg_district_key = d.alg_district_key) x
LEFT JOIN alg_v_aanwezigsrtruimte sr
ON x.alg_srtruimte_key = sr.alg_srtruimte_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ok1
ON x.alg_ruimte_key = ok1.alg_onrgoed_key
AND ok1.alg_kenmerk_key = 1003 -- Vloerafwerking
LEFT JOIN fac_v_aanwezigusrdata ud1
ON fac.safe_to_number (ok1.alg_onrgoedkenmerk_waarde) =
ud1.fac_usrdata_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ok2
ON x.alg_ruimte_key = ok2.alg_onrgoed_key
AND ok2.alg_kenmerk_key = 1004 -- Status
LEFT JOIN fac_v_aanwezigusrdata ud2
ON fac.safe_to_number (ok2.alg_onrgoedkenmerk_waarde) =
ud2.fac_usrdata_key
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ok3
ON x.alg_ruimte_key = ok3.alg_onrgoed_key
AND ok3.alg_kenmerk_key = 1005 -- Werkplekken
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ok4
ON x.alg_ruimte_key = ok4.alg_onrgoed_key
AND ok4.alg_kenmerk_key = 1006 -- Toelichting/beheer
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ok5
ON x.alg_ruimte_key = ok5.alg_onrgoed_key
AND ok5.alg_kenmerk_key = 1040 -- Inrichting
LEFT JOIN alg_v_aanwezigonrgoedkenmerk ok6
ON x.alg_ruimte_key = ok6.alg_onrgoed_key
AND ok6.alg_kenmerk_key = 1060 -- Opleiding
LEFT JOIN fac_v_aanwezigusrdata ud6
ON fac.safe_to_number (ok6.alg_onrgoedkenmerk_waarde) =
ud6.fac_usrdata_key
LEFT JOIN
( SELECT wp.prs_alg_ruimte_key,
COUNT (*) aantal,
SUM (pw.prs_perslidwerkplek_bezetting) bezetting
FROM prs_perslidwerkplek pw, prs_werkplek wp -- WPs
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
GROUP BY wp.prs_alg_ruimte_key) pwp
ON x.alg_ruimte_key = pwp.prs_alg_ruimte_key
LEFT JOIN ( SELECT alg_ruimte_key,
COUNT (*) aantal,
MIN (prs_afdeling_key) prs_afdeling_key,
MIN (prs_ruimteafdeling_bezetting) bezetting
FROM prs_v_aanwezigruimteafdeling -- Afdeling(en) op ruimte
GROUP BY alg_ruimte_key) ra
ON x.alg_ruimte_key = ra.alg_ruimte_key
LEFT JOIN prs_afdeling afd -- Afdeling
ON ra.prs_afdeling_key = afd.prs_afdeling_key
AND afd.prs_afdeling_verwijder IS NULL;
CREATE OR REPLACE VIEW hsle_v_hv_frozen
(
maand,
district_oms,
locatie_code,
gebouw_code,
verdieping_code,
ruimte_key,
ruimte_nr,
omschrijving,
functie,
bvo,
omtrek,
inhoud,
opmerking,
vloerafwerking,
status,
werkplekken,
toelichting,
inrichting,
opleiding,
aantal_wp, -- #prs_werkplek!
wp_bez, -- Som prs_perslidwerkplek_bezetting / #prs_werkplek
aantal_afd, -- #prs_afdeling (zou 1 moeten zijn)!
afd_naam, -- prs_afdeling_naam van oudste afdeling!
afd_oms, -- prs_afdeling_omschrijving van oudste afdeling!
afd_bez -- prs_ruimteafdeling_bezetting van oudste afdeling!
)
AS
SELECT TO_CHAR (freeze_datum, 'yyyy-mm') maand,
dis_oms,
loc_code,
geb_code,
ver_code,
ruimte_key,
ruimte_nr,
ruimte_oms,
ruimte_functie,
ruimte_bvo,
ruimte_omtrek,
ruimte_inhoud,
ruimte_opm,
vloerafwerking,
status,
inrichting,
werkplekken,
toelichting,
opleiding,
aantal_wp,
wp_bez,
aantal_afd,
afd_naam,
afd_oms,
afd_bez
FROM hsle_hv_freeze;
-- Dummy export NACHTWERK!
CREATE OR REPLACE PROCEDURE hsle_select_nachtwerk (p_applname IN VARCHAR2,
p_applrun IN VARCHAR2)
AS
-- Cursor over alle ruimteregels!
CURSOR c1 IS
SELECT *
FROM hsle_v_hv_actual
ORDER BY ruimte_key;
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
v_count_tot NUMBER (10);
freeze_datum DATE;
BEGIN
-- LET OP: NACHTWERK-export draait dagelijks na middernacht en de historie
-- van ruimtegegevens wordt maandelijks alleen in nacht na 15e dag
-- van maand bewaard!
IF TO_CHAR (SYSDATE, 'dd') = '16' -- Nacht na 15e dag van maand!
THEN
v_count_tot := 0;
freeze_datum := SYSDATE;
FOR rec IN c1
LOOP
INSERT INTO hsle_hv_freeze (dis_oms,
loc_code,
geb_code,
ver_code,
ruimte_key,
ruimte_nr,
ruimte_oms,
ruimte_functie,
ruimte_bvo,
ruimte_omtrek,
ruimte_inhoud,
ruimte_opm,
vloerafwerking,
status,
inrichting,
werkplekken,
toelichting,
opleiding,
aantal_wp,
wp_bez,
aantal_afd,
afd_naam,
afd_oms,
afd_bez,
freeze_datum)
VALUES (rec.district_oms,
rec.locatie_code,
rec.gebouw_code,
rec.verdieping_code,
rec.ruimte_key,
rec.ruimte_nr,
rec.omschrijving,
rec.functie,
rec.bvo,
rec.omtrek,
rec.inhoud,
rec.opmerking,
rec.vloerafwerking,
rec.status,
rec.inrichting,
rec.werkplekken,
rec.toelichting,
rec.opleiding,
rec.aantal_wp,
rec.wp_bez,
rec.aantal_afd,
rec.afd_naam,
rec.afd_oms,
rec.afd_bez,
freeze_datum);
v_count_tot := v_count_tot + 1;
END LOOP;
fac.writelog (p_applname,
'S',
'Ruimtegegevens/#bevroren: ' || TO_CHAR (v_count_tot),
'');
COMMIT;
END IF;
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 hsle_select_nachtwerk;
/
CREATE OR REPLACE PROCEDURE hsle_processemail (pfrom IN VARCHAR2,
pto IN VARCHAR2,
psubject IN VARCHAR2,
pbody IN VARCHAR2,
psessionid IN VARCHAR2,
pemailkey IN NUMBER)
AS
v_errormsg VARCHAR2 (1000);
oracle_err_num NUMBER;
oracle_err_mes VARCHAR2 (200);
defaultstdmelding fac_setting.fac_setting_default%TYPE;
v_mld_meldbron_key NUMBER (10);
v_directafwijzen NUMBER (10) := 0;
v_from VARCHAR2 (1000) := '';
v_voor_at VARCHAR2 (1000) := '';
v_na_at VARCHAR2 (1000) := '';
sender prs_perslid.prs_perslid_key%TYPE;
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
v_melding_email_ext mld_melding.mld_melding_email_ext%TYPE := '';
v_to VARCHAR2 (1000) := '';
v_cc VARCHAR2 (1000) := '';
v_mailadres_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
v_toadres_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
v_ccadres_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
v_meldbron_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
subject_regexp fac_setting.fac_setting_default%TYPE;
v_mldnum VARCHAR2 (4000);
v_srtdisc VARCHAR2 (4000);
v_mld_key_uit_subject mld_melding.mld_melding_key%TYPE;
v_mldkey mld_melding.mld_melding_key%TYPE;
v_melder mld_melding.prs_perslid_key%TYPE;
l_vantekst VARCHAR2 (100);
l_body VARCHAR2 (4000);
v_behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
v_behandelaar2_key mld_melding.mld_melding_behandelaar2_key%TYPE;
v_mldprefix VARCHAR2 (10);
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
v_count NUMBER (10);
-- HSLE#35572: Resultaat is het linkerdeel van een string p_str tot en met waar de zoekstring p_search_str bestaat, zo niet, dan levert dan de NULL value op.
-- Let op: als de zoekstring niet in de eerste 4000 tekens wordt gevonden, dan wordt ook de NULL-value opgeleverd.
-- Dus:
-- hsle_leftstr('marcel', 'rc') -> 'ma'
-- hsle_leftstr('marcel', 'xx') -> ''
FUNCTION hsle_leftstr (p_str IN VARCHAR2, p_search_str IN VARCHAR2)
RETURN VARCHAR2
IS
p_result_str VARCHAR2 (4000);
l_van_pos NUMBER (10);
BEGIN
l_van_pos := INSTR (p_str, p_search_str);
IF l_van_pos > 0 AND l_van_pos < 4000
THEN
p_result_str := SUBSTR (p_str, 1, l_van_pos - 1);
ELSE
p_result_str := NULL;
END IF;
RETURN (p_result_str);
END;
BEGIN
-- We beschouwen dit als een nieuwe melding
v_errormsg := 'Fout bepalen soortmelding ' || COALESCE (pto, '???');
IF (UPPER (pto) = UPPER ('uMdbnym@hsle.facilitor.nl'))
THEN
-- HSLE#33581: Social Media 'Userlike' berichten laten landen in mld_stdmelding_key=191='Social Media' onder vakgroep 'SD (Social Media)'
defaultstdmelding := '191';
v_mld_meldbron_key := 8; -- Vanaf 2015.3 zijn meldbronnen 8 (Chat) en 9 (Social Media) ook mogelijk
ELSE
IF (UPPER (pto) = UPPER ('TdDpVge@hsle.facilitor.nl'))
THEN
-- HSLE#37091: Mail naar studentzaken@hsleiden.nl laten landen in mld_stdmelding_key=1241='Mailmelding' onder vakgroep 'Studentinschrijving'
defaultstdmelding := '1241';
v_mld_meldbron_key := 4;
ELSE
IF (UPPER (pto) = UPPER ('CJXaYlt@hsle.facilitor.nl'))
THEN
-- HSLE#38876: Mail naar receptie@hsleiden.nl laten landen in mld_stdmelding_key=1701='Mailmelding' onder vakgroep 'Receptie'
defaultstdmelding := '1701';
v_mld_meldbron_key := 4;
ELSIF (UPPER (pto) = UPPER ('sva@hsle.facilitor.nl'))
THEN
-- HSLE#66248: Mail naar sva@hsle.facilitor.nl laten landen in mld_stdmelding_key=5621='Mailmelding' onder vakgroep 'SVA'
defaultstdmelding := '5621';
v_mld_meldbron_key := 4;
ELSIF (UPPER (pto) = UPPER ('sot@hsle.facilitor.nl'))
THEN
-- HSLE#73263: Mail naar sot@hsle.facilitor.nl laten landen in mld_stdmelding_key=6061='Detectie' onder vakgroep 'SOT'
defaultstdmelding := '6061';
v_mld_meldbron_key := 4;
ELSE -- XamdCNd@hsle.facilitor.nl
IF INSTR (UPPER (psubject), 'IN DIENST GEMELD') > 0
THEN
defaultstdmelding := '3461'; -- HSLE#58086/63960: Vakgroep M-HRM/Soortmelding 'Nieuwe medewerker.'
ELSIF INSTR (UPPER (psubject), 'GAAT UIT DIENST') > 0
THEN
defaultstdmelding := '3481'; -- HSLE#58086/63960/64931: Vakgroep M-HRM/Soortmelding 'Einde dienstverband.'
ELSIF INSTR (UPPER (psubject), 'HSL ADFS LOCKOUT') > 0
THEN
defaultstdmelding := '90'; -- HSLE#58086: Vakgroep M-SD (ICT)/Soortmelding 'ICT- Overig'
ELSIF INSTR (UPPER (psubject), 'ORDERBEVESTIGING MANUTAN') > 0
THEN
defaultstdmelding := '3941'; -- HSLE#58086: Vakgroep M-SD (Bestellingen)/Soortmelding 'Bestelbevestiging/verzendbewijs'
ELSIF INSTR (UPPER (psubject), 'UW BESTELLING BIJ MANUTAN.NL') > 0
THEN
defaultstdmelding := '3941'; -- HSLE#58086: Vakgroep M-SD (Bestellingen)/Soortmelding 'Bestelbevestiging/verzendbewijs'
ELSIF INSTR (UPPER (psubject), 'LYRECO DELIVERY NOTE:') > 0
THEN
defaultstdmelding := '3941'; -- HSLE#58086: Vakgroep M-SD (Bestellingen)/Soortmelding 'Bestelbevestiging/verzendbewijs'
ELSIF INSTR (UPPER (psubject), 'UW LYRECO LEVERBON') > 0
THEN
defaultstdmelding := '3941'; -- HSLE#58086: Vakgroep M-SD (Bestellingen)/Soortmelding 'Bestelbevestiging/verzendbewijs'
ELSIF INSTR (UPPER (psubject), 'DAGRAPPORTAGE HOGESCHOOL LE CARREFOUR ( KERN 4 )') > 0
THEN
defaultstdmelding := '2501'; -- HSLE#58086: Vakgroep M-Concierges/Soortmelding 'Le Carrefour ( concierges)'
ELSE
-- Mailmelding (onder vakgroep 'Mailmelding') met mld_stdmelding_key=161, deze staat komt uit 'defaultmelding'-setting
defaultstdmelding := fac.getsetting ('defaultstdmelding');
IF INSTR (UPPER (psubject), 'REGISTRATIE VERBRUIK VAN VERBRUIKSMATERIAAL') > 0
THEN
v_directafwijzen := 1;
END IF;
END IF;
v_mld_meldbron_key := 4;
END IF;
END IF;
END IF;
-- HSLE#57042: Als er 'SRS=' in pfrom, dan:
-- voor_@ = tekst tussen laatste '=' en laatste '@' (vanaf links)
-- na_@ = tekst tussen een-na-laatste '=' en laatste '=' (vanaf links)
-- HSLE#59494: Als '<' en '>' in pfrom, dan wat daartussen staat
-- Anders 1-op-1 overnemen.
IF INSTR (pfrom, 'SRS=') > 0
THEN
v_voor_at :=
SUBSTR (pfrom,
INSTR (pfrom, '=', -1) + 1,
INSTR (pfrom, '@', -1) - INSTR (pfrom, '=', -1) - 1);
v_na_at :=
SUBSTR (pfrom,
INSTR (pfrom,
'=',
-1,
2)
+ 1,
INSTR (pfrom, '=', -1)
- INSTR (pfrom,
'=',
-1,
2)
- 1);
v_from := v_voor_at || '@' || v_na_at;
ELSIF INSTR (pfrom, '<') > 0 AND INSTR (pfrom, '<') < INSTR (pfrom, '>')
THEN
v_from :=
SUBSTR (pfrom,
INSTR (pfrom, '<') + 1,
INSTR (pfrom, '>') - INSTR (pfrom, '<') - 1);
ELSE
v_from := pfrom;
END IF;
v_from := SUBSTR (v_from, 1, 50);
-- Bepaal de melder/noteur op basis van e-mail adres zoals in pfrom?
v_errormsg := 'Fout bepalen melder ' || COALESCE (v_from, '???');
SELECT COUNT (*)
INTO v_count
FROM prs_v_aanwezigperslid
WHERE (INSTR (UPPER (v_from), '@STUDENT.HSLEIDEN.NL') > 0 OR INSTR (UPPER (v_from), '@HSLEIDEN.NL') > 0)
AND UPPER (prs_perslid_email) LIKE UPPER (v_from) || '%';
IF defaultstdmelding IN (3461, 3481) --AND UPPER (v_from) = 'HRM@HSLEIDEN.NL' -- HSLE#60343/63960/64931: Bij in/uit dienst, dan prs_perslid_key=15661=_Extern
THEN
SELECT p.prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_v_aanwezigperslid p, prs_afdeling d
WHERE p.prs_perslid_key = 15661 -- _Extern
AND p.prs_afdeling_key = d.prs_afdeling_key;
ELSIF UPPER (v_from) = 'SOCIALMEDIA@HSLEIDEN.NL' OR UPPER (v_from) = 'INFO@HUSCHKA.NL'
THEN -- HSLE#60638/60644: Igv. e-mails vanaf deze adressen, dan prs_perslid_key=15661=_Extern
SELECT p.prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_v_aanwezigperslid p, prs_afdeling d
WHERE p.prs_perslid_key = 15661 -- _Extern
AND p.prs_afdeling_key = d.prs_afdeling_key;
ELSIF UPPER (v_from) = 'INFO@DEGROOTDRUK.NL' OR UPPER (v_from) = 'NOREPLY@STAPLES-SOLUTIONS.COM'
THEN -- HSLE#60639/HSLE#71141: Igv. e-mails vanaf deze adressen, dan defaultstdmelding=3941 en prs_perslid_key=15661=_Extern
defaultstdmelding := '3941'; -- HSLE#60639: Vakgroep M-SD (Bestellingen)/Soortmelding 'Bestelbevestiging/verzendbewijs'
SELECT p.prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_v_aanwezigperslid p, prs_afdeling d
WHERE p.prs_perslid_key = 15661 -- _Extern
AND p.prs_afdeling_key = d.prs_afdeling_key;
ELSIF v_count = 1
THEN -- Als melder 1-duidig kan worden bepaald, zet de melding dan ook direct op zijn of haar naam
SELECT p.prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_v_aanwezigperslid p, prs_afdeling d
WHERE p.prs_afdeling_key = d.prs_afdeling_key
AND UPPER (p.prs_perslid_email) LIKE UPPER (v_from) || '%';
ELSE -- Melder kan niet 1-duidig worden bepaald, dan - sinds HSLE#64353 - prs_perslid_key=15661=_Extern
SELECT p.prs_perslid_key, d.prs_kostenplaats_key
INTO sender, kostenplaats
FROM prs_v_aanwezigperslid p, prs_afdeling d
WHERE p.prs_perslid_key = 15661 -- _Extern
AND p.prs_afdeling_key = d.prs_afdeling_key;
v_melding_email_ext := v_from;
END IF;
-- HSLE#67687: Bepaal eventuele To op basis van veld in fac_result?
SELECT MIN (fac_result_waarde)
INTO v_to
FROM fac_result
WHERE fac_result_sessionid = psessionid
AND UPPER (fac_result_naam) = 'ORIGINALTO';
-- Bepaal eventuele CC op basis van veld in fac_result?
SELECT MIN (fac_result_waarde)
INTO v_cc
FROM fac_result
WHERE fac_result_sessionid = psessionid
AND UPPER (fac_result_naam) = 'CC';
-- Bepaal (aanwezige) kenmerk-key van kenmerksoort 'E-mail' (key=26) bij de bepaalde 'defaultstdmelding'.
v_errormsg := 'Fout bepalen kenmerksoort=E-mail';
SELECT MAX (mld_kenmerk_key)
INTO v_mailadres_kenmerk_key
FROM mld_kenmerk k, mld_stdmelding sm, ins_tab_discipline td
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 26 -- E-mail
AND sm.mld_stdmelding_key = fac.safe_to_number (defaultstdmelding)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND ((k.mld_stdmelding_key = sm.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S')
OR (k.mld_stdmelding_key = td.ins_discipline_key AND k.mld_kenmerk_niveau = 'D')
OR (k.mld_stdmelding_key = td.ins_srtdiscipline_key AND k.mld_kenmerk_niveau = 'T'));
-- Bepaal (aanwezige) kenmerk-key van kenmerksoort 'Mail To' (key=-1) bij de bepaalde 'defaultstdmelding'.
v_errormsg := 'Fout bepalen kenmerksoort=Mail To';
SELECT MAX (mld_kenmerk_key)
INTO v_toadres_kenmerk_key
FROM mld_kenmerk k, mld_stdmelding sm, ins_tab_discipline td
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_kenmerk_key = 8901 -- Mail To
AND sm.mld_stdmelding_key = fac.safe_to_number (defaultstdmelding)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND ((k.mld_stdmelding_key = sm.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S')
OR (k.mld_stdmelding_key = td.ins_discipline_key AND k.mld_kenmerk_niveau = 'D')
OR (k.mld_stdmelding_key = td.ins_srtdiscipline_key AND k.mld_kenmerk_niveau = 'T')
OR (k.mld_stdmelding_key IS NULL AND k.mld_kenmerk_niveau = 'A'));
-- Bepaal (aanwezige) kenmerk-key van kenmerksoort 'Mail CC' (key=4101) bij de bepaalde 'defaultstdmelding'.
v_errormsg := 'Fout bepalen kenmerksoort=Mail CC';
SELECT MAX (mld_kenmerk_key)
INTO v_ccadres_kenmerk_key
FROM mld_kenmerk k, mld_stdmelding sm, ins_tab_discipline td
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 4101 -- Mail CC(/Carbon Copy)
AND sm.mld_stdmelding_key = fac.safe_to_number (defaultstdmelding)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND ((k.mld_stdmelding_key = sm.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S')
OR (k.mld_stdmelding_key = td.ins_discipline_key AND k.mld_kenmerk_niveau = 'D')
OR (k.mld_stdmelding_key = td.ins_srtdiscipline_key AND k.mld_kenmerk_niveau = 'T'));
-- Bepaal kenmerk-key van kenmerksoort 'Meldbron' (key 2401) bij de bepaalde 'defaultstdmelding'.
v_errormsg := 'Fout bepalen kenmerksoort=Meldbron';
SELECT MAX (mld_kenmerk_key)
INTO v_meldbron_kenmerk_key
FROM mld_kenmerk k, mld_stdmelding sm, ins_tab_discipline td
WHERE k.mld_kenmerk_verwijder IS NULL
AND k.mld_srtkenmerk_key = 2401
AND sm.mld_stdmelding_key = fac.safe_to_number (defaultstdmelding)
AND sm.mld_ins_discipline_key = td.ins_discipline_key
AND ((k.mld_stdmelding_key = sm.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S')
OR (k.mld_stdmelding_key = td.ins_discipline_key AND k.mld_kenmerk_niveau = 'D')
OR (k.mld_stdmelding_key = td.ins_srtdiscipline_key AND k.mld_kenmerk_niveau = 'T'));
-- Check of de afzender pfrom een reply op een bestaande melding doet, in dat geval wordt dat in notities genoteerd.
v_errormsg := 'Fout bepalen bestaande melding';
-- Eerst uit het onderwerp het meldingnummer proberen te onderscheppen, uitgangspunt dat in het onderwerp 'M123' kan worden opgevist, waarbij het deel achter M minimaal uit 1 cijfer bestaat.
-- HSLE#35572: Extra spatie erbij hieronder (= verbetering), zodat een M12X34 niet als M12 wordt gezien, want anders wordt bij M12 een notitie geplaatst en dat is onterecht.
-- HSLE#35572: Ook extra spatie aan het einde van het onderwerp erbij, zie info in call bij [Netten, Michelle van; 20-5-2016].
-- HSLE#65932: Per introductie van Vakgroeptype=Onderwijs ook vissen naar meldingnummers na prefix=O (bv. 'O123').
--subject_regexp := '[[:alpha:]]*M[[:digit:]]{1,} ';
subject_regexp := '[[:alpha:]]*[M|O][[:digit:]]{1,} ';
v_mldnum :=
REGEXP_SUBSTR (psubject || ' ',
subject_regexp,
1,
1,
'i'); -- M123, of O12345, of M12, of O1
v_srtdisc :=
REGEXP_SUBSTR (v_mldnum,
'[[:alpha:]]',
1,
1,
'i'); -- M of O
v_mld_key_uit_subject :=
fac.safe_to_number (SUBSTR (v_mldnum, LENGTH (v_srtdisc) + 1)); -- 123, of 12345, of 12, of 1
-- Uit onderwerp is de vermoedelijke juiste v_mld_key_uit_subject geparsed.
-- HSLE#35572: Puntje 1 - er wordt niet langer meer gecheckt op wie de mail stuurt, als in het onderwerp het meldingnummer wordt gevonden,
-- dan wordt die aan die melding als notitie erbij toegevoegd (ongeacht de mailer).
SELECT MAX (mld_melding_key), MAX (prs_perslid_key) -- MAX() alleen om te zorgen dat SELECT geen fout geeft!
INTO v_mldkey, v_melder
FROM mld_melding
WHERE mld_melding_key = v_mld_key_uit_subject;
-- HSLE#70918: E-mail naar sva@hsle.facilitor.nl (defaultstdmelding=5621) met M<meldingnummer> in onderwerp, dan altijd nieuwe melding (en
-- geen notitie bij bestaande melding)!
-- HSLE#73263: E-mail naar sot@hsle.facilitor.nl (defaultstdmelding=6061) met M<meldingnummer> in onderwerp, dan altijd nieuwe melding (en
-- geen notitie bij bestaande melding)!
IF v_mldkey IS NOT NULL AND (defaultstdmelding != '5621' OR defaultstdmelding != '6061' OR v_srtdisc != 'M')
THEN
-- Gotcha: van deze afzender is een eerdere melding geregistreerd, dus we voegen de subject en body nu als notitie toe.
v_directafwijzen := 0; -- Een bestaande melding nooit direct afwijzen!
v_errormsg := 'Fout toevoegen notitie';
-- HSLE#35572
l_vantekst := 'Van: ';
l_body := hsle_leftstr (pbody, l_vantekst);
IF l_body IS NULL
THEN
-- Er is geen 'Van: ' gevonden, misschien nog 'From: '
l_vantekst := 'From: ';
l_body := hsle_leftstr (pbody, l_vantekst);
IF l_body IS NULL
THEN
-- Er is ook geen 'From: ' gevonden, dan doen we de hele tekst
l_body := SUBSTR (pbody, 1, 4000);
END IF;
END IF;
INSERT INTO mld_melding_note (mld_melding_key,
mld_melding_note_omschrijving,
prs_perslid_key,
mld_melding_note_flag)
VALUES (v_mldkey,
SUBSTR (psubject
|| CHR (13) || CHR (10)
|| REPLACE (SUBSTR (l_body, 1, 4000 - (LENGTH (psubject) + 2)),
CHR (13) || CHR (10) || CHR (13) || CHR (10),
CHR (13) || CHR (10)),
1,
4000), -- Verwijder onnodige witregels
sender,
DECODE (sender, -- HSLE#60811: Notitie open=1 als sender=melder, anders gesloten=0!
v_melder, 1,
0));
-- Default tracking is even goed genoeg
fac.trackaction ('MLDNOT',
v_mldkey,
sender,
NULL,
'#Notitie toegevoegd vanuit e-mail'); -- # voorkomt notificatie
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Als notitie toegevoegd aan melding ' || v_mldkey);
-- Vlaggetjes zetten zoals mld_edit_note.asp dat doet
BEGIN
IF fac.getsetting ('mld_melding_actiecode') = 1
THEN
UPDATE mld_melding
SET mld_melding_actiecode = 1 + 128 -- Backoffice + Attentie
WHERE mld_melding_key = v_mldkey;
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Niet gelukt om Attentie te zetten.');
END;
-- Bepalen van de behandelaar van deze melding
v_errormsg := 'Fout bepalen behandelaar';
BEGIN
SELECT mld_melding_behandelaar_key, DECODE (p2.prs_perslid_email, NULL, NULL, mld_melding_behandelaar2_key)
INTO v_behandelaar_key, v_behandelaar2_key
FROM mld_melding m, prs_v_aanwezigperslid p, prs_v_aanwezigperslid p2
WHERE m.mld_melding_key = v_mldkey
AND m.mld_melding_behandelaar_key = p.prs_perslid_key
AND p.prs_perslid_email IS NOT NULL
AND m.mld_melding_behandelaar2_key = p2.prs_perslid_key(+);
EXCEPTION
WHEN OTHERS
THEN
v_behandelaar_key := NULL;
v_behandelaar2_key := NULL;
END;
IF v_behandelaar2_key IS NOT NULL -- Melding en actieve behandelaar bekend?
THEN
-- HSLE#65724: Notificatie naar actieve behandelaar
fac.putnotificationsrtprio (
NULL,
v_behandelaar2_key,
'MLDAB2',
v_mldkey,
'Melding ' || v_mldprefix || v_mldkey || ' is door de klant aangepast.',
2,
NULL,
NULL,
NULL,
2,
NULL);
ELSIF v_behandelaar_key IS NOT NULL -- Melding en behandelaar bekend?
THEN
-- Bepalen vakgroeptype prefix
SELECT sd.ins_srtdiscipline_prefix
INTO v_mldprefix
FROM mld_melding m, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd
WHERE m.mld_melding_key = v_mldkey
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;
-- Notificatie naar behandelaar
fac.putnotificationsrtprio (
NULL,
v_behandelaar_key,
'MLDNOB',
v_mldkey,
'Melding ' || v_mldprefix || v_mldkey || ' is door de klant aangepast.',
2,
NULL,
NULL,
NULL,
2,
NULL);
END IF;
ELSE
-- suggested extensions:
-- check for MLDUSE-write autorisations
-- parse the subject to find an appropriate stdmelding, if uniquely possible
-- append (as a note?) to an existing melding if #key is found in the subject
v_errormsg := 'Fout toevoegen melding';
BEGIN
INSERT INTO mld_melding (mld_melding_module,
mld_meldbron_key,
mld_melding_datum,
mld_alg_locatie_key,
mld_alg_onroerendgoed_keys,
mld_melding_onderwerp,
mld_melding_omschrijving,
mld_melding_status,
mld_stdmelding_key,
prs_perslid_key,
prs_perslid_key_voor,
prs_kostenplaats_key,
mld_melding_spoed,
mld_melding_email_ext)
VALUES (
'MLD',
v_mld_meldbron_key, -- email (4) of chat (8)
SYSDATE,
1, -- HSLE#33348: CAMPUS hier kiezen (alg_locatie_key = 1)
393, -- HLSE#55591: Ruimte F0.024 hier kiezen (alg_ruimte_key = 393)
SUBSTR (psubject, 1, 80), -- HSLE#52534: Onderwerp apart en niet meer bij omschrijving
SUBSTR (
REPLACE (
SUBSTR (pbody, 1, 4000),
CHR (13) || CHR (10) || CHR (13) || CHR (10),
CHR (13) || CHR (10)),
1,
4000), -- verwijder onnodige witregels
NULL,
defaultstdmelding,
sender,
sender,
kostenplaats,
3,
v_melding_email_ext)
RETURNING mld_melding_key
INTO v_mldkey;
-- Als v_from gevuld en 'E-mail'-kenmerk bestaat, dan registreer v_from (max. 50 tekens) bij de zojuist aangemaakte melding.
IF v_from IS NOT NULL AND v_mailadres_kenmerk_key IS NOT NULL
THEN
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_mldkey, v_mailadres_kenmerk_key, v_from);
END IF;
-- Als v_to gevuld en 'Mail To'-kenmerk bestaat, dan registreer v_to (max. 50 tekens) bij de zojuist aangemaakte melding.
IF v_to IS NOT NULL AND v_toadres_kenmerk_key IS NOT NULL
THEN
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_mldkey, v_toadres_kenmerk_key, SUBSTR (v_to, 1, 200));
END IF;
-- Als v_cc gevuld en 'Mail CC'-kenmerk bestaat, dan registreer v_cc (max. 50 tekens) bij de zojuist aangemaakte melding.
IF v_cc IS NOT NULL AND v_ccadres_kenmerk_key IS NOT NULL
THEN
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_mldkey, v_ccadres_kenmerk_key, SUBSTR (v_cc, 1, 200));
END IF;
-- HSLE#56362: Vullen van kenmerkwaarde voor 'Meldbron' met 2703=Chat of 2721=Mail.
IF v_meldbron_kenmerk_key IS NOT NULL
THEN
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
VALUES (v_mldkey, v_meldbron_kenmerk_key, DECODE (v_mld_meldbron_key, 8, '2703', '2721'));
END IF;
mld.setmeldingstatus (v_mldkey, 2, sender);
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'maillog',
'Geregistreerd onder melding ' || v_mldkey);
END;
END IF;
-- Find the lowest volgnummer of the flexfield of type folder.
-- PAS OP: 'Alle vakgroeptypen'-kenmerken hier niet beschouwd en dat bijt
-- dus nooit met kenmerk hieronder tbv. Originele mail!
v_errormsg := 'Fout toevoegen bijlage(n)';
SELECT MIN (k1.mld_kenmerk_key)
INTO kkey
FROM mld_stdmelding sm1, ins_tab_discipline td1, mld_kenmerk k1, mld_srtkenmerk sk1
WHERE sm1.mld_stdmelding_key = defaultstdmelding
AND sm1.mld_ins_discipline_key = td1.ins_discipline_key
AND k1.mld_kenmerk_verwijder IS NULL
AND k1.mld_srtkenmerk_key = sk1.mld_srtkenmerk_key
AND sk1.mld_srtkenmerk_kenmerktype = 'M'
AND ((k1.mld_stdmelding_key = sm1.mld_stdmelding_key AND k1.mld_kenmerk_niveau = 'S')
OR (k1.mld_stdmelding_key = td1.ins_discipline_key AND k1.mld_kenmerk_niveau = 'D')
OR (k1.mld_stdmelding_key = td1.ins_srtdiscipline_key AND k1.mld_kenmerk_niveau = 'T'))
AND NOT EXISTS
(SELECT 1
FROM mld_stdmelding sm2, ins_tab_discipline td2, mld_kenmerk k2, mld_srtkenmerk sk2
WHERE sm2.mld_stdmelding_key = defaultstdmelding
AND sm2.mld_ins_discipline_key = td2.ins_discipline_key
AND k2.mld_kenmerk_verwijder IS NULL
AND k2.mld_srtkenmerk_key = sk2.mld_srtkenmerk_key
AND sk2.mld_srtkenmerk_kenmerktype = 'M'
AND ((k2.mld_stdmelding_key = sm2.mld_stdmelding_key AND k2.mld_kenmerk_niveau = 'S')
OR (k2.mld_stdmelding_key = td2.ins_discipline_key AND k2.mld_kenmerk_niveau = 'D')
OR (k2.mld_stdmelding_key = td2.ins_srtdiscipline_key AND k2.mld_kenmerk_niveau = 'T'))
AND k2.mld_kenmerk_volgnummer < k1.mld_kenmerk_volgnummer);
IF kkey IS NOT NULL
THEN
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'kenmerkpath',
'MLD\M' || TO_CHAR (TRUNC (v_mldkey / 1000), 'FM0000') || '___\M' || v_mldkey || '\' || kkey || '\');
END IF;
-- HSLE#69584: Per 2021.1 mogelijk dat originele mail wordt opgeslagen bij melding!
-- PAS OP: Voorkennis dat dit een 'Alle vakgroeptypen'-kenmerk 8881 is en dus nooit
-- bijt met Bijlage(n)-kenmerk hierboven!
v_errormsg := 'Fout toevoegen originele mail';
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'kenmerkorgmailpath',
'MLD\M' || TO_CHAR (TRUNC (v_mldkey / 1000), 'FM0000') || '___\M' || v_mldkey || '\' || 8881 || '\');
IF v_directafwijzen = 1
THEN -- Direct op afgewezen door 15621=SYSTEM API Mail2Melding!
mld.setmeldingstatus (v_mldkey, 1, 15621);
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.writelog ('PROCESSEMAIL', 'W', 'HSLE_processemail afgebroken!', '[' || COALESCE (v_from, pfrom) || '] ' || v_errormsg);
INSERT INTO fac_result (fac_result_sessionid,
fac_result_naam,
fac_result_waarde)
VALUES (psessionid,
'errormsg',
'Database fout - Neem contact op met uw systeembeheerder ');
COMMIT;
END;
/
CREATE OR REPLACE VIEW hsle_v_rap_reservering
(
key,
nummer,
res_omschrijving,
invoerdatum,
datum,
gastheer,
contact,
invoerder,
kostensoortgroep,
kostensoort,
kpn,
kpn_omschrijving,
afdeling_code,
afdeling_omschrijving,
district_omschijving,
alg_locatie_key,
locatie,
locatie_omschrijving,
gebouw,
verdieping,
ruimte,
opstelling,
no_show,
mandaat,
personeelsnr,
werkplek,
discipline_key,
catalogus_key,
catalogus,
reserveerbare_ruimte,
bezoekers,
van,
tot,
duur,
status,
activiteit_key,
activiteit,
srtactiviteit_key,
activiteitsoort,
voorziening_discipline_key,
voorziening_catalogus,
voorziening_catalogussoort,
voorziening_product_key,
voorziening_product,
voorziening_totaalprijs,
voorziening_btw,
voorziening_van,
voorziening_tot,
voorziening_aantal,
voorziening_prijs,
grootboekrekeningnr,
grootboekomschrijving,
grootboekaanwezig
)
AS
SELECT rrr.res_reservering_key,
rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr,
rrr.res_rsv_ruimte_omschrijving,
COALESCE (rrr.res_rsv_ruimte_aanmaak, voorz.van),
COALESCE (rrr.res_rsv_ruimte_van, voorz.van),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_host_key),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all pf
WHERE pf.prs_perslid_key = rrr.res_rsv_ruimte_contact_key),
(SELECT pf.prs_perslid_naam_full
FROM fac_tracking tr,
fac_srtnotificatie str,
prs_v_perslid_fullnames_all pf
WHERE tr.prs_perslid_key = pf.prs_perslid_key
AND str.fac_srtnotificatie_code = 'RESNEW'
AND tr.fac_srtnotificatie_key = str.fac_srtnotificatie_key
AND tr.fac_tracking_refkey = rrr.res_rsv_ruimte_key),
(SELECT ksg.prs_kostensoortgrp_oms
FROM prs_kostensoortgrp ksg, prs_kostensoort ks
WHERE ksg.prs_kostensoortgrp_key = ks.prs_kostensoortgrp_key
AND ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key =
rr.res_ruimte_key
AND rr.res_discipline_key =
d.ins_discipline_key))))
kostensoortgroep,
(SELECT ks.prs_kostensoort_oms
FROM prs_kostensoort ks
WHERE ks.prs_kostensoort_key =
(SELECT disc.prs_kostensoort_key
FROM res_discipline disc
WHERE disc.ins_discipline_key =
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key =
rr.res_ruimte_key
AND rr.res_discipline_key =
d.ins_discipline_key))))
kostensoort,
k.prs_kostenplaats_nr,
k.prs_kostenplaats_omschrijving,
a.prs_afdeling_naam,
a.prs_afdeling_omschrijving,
(SELECT d.alg_district_omschrijving
FROM alg_district d,
alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE d.alg_district_key = l.alg_district_key
AND l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT l.alg_locatie_key
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_code
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_locatie_omschrijving
FROM alg_locatie l,
alg_gebouw g,
alg_verdieping v,
alg_ruimte r
WHERE l.alg_locatie_key = g.alg_locatie_key
AND g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_gebouw_code
FROM alg_gebouw g, alg_verdieping v, alg_ruimte r
WHERE g.alg_gebouw_key = v.alg_gebouw_key
AND v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
(SELECT alg_verdieping_code
FROM alg_verdieping v, alg_ruimte r
WHERE v.alg_verdieping_key = r.alg_verdieping_key
AND r.alg_ruimte_key = r2a.alg_ruimte_key),
r2a.ruimte_nr,
r2a.opstelling,
rrr.res_rsv_ruimte_noshow,
NVL ((SELECT pr.fac_profiel_limiet
FROM fac_profiel pr
WHERE p.fac_profiel_key = pr.fac_profiel_key),
0),
prs_perslid_nr,
wp2.prs_werkplek_aanduiding,
COALESCE (
voorz.ins_discipline_key,
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key =
ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key)),
(SELECT ins_discipline_key
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
(SELECT ins_discipline_omschrijving
FROM ins_tab_discipline d,
res_ruimte_opstelling ro,
res_ruimte rr
WHERE rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_discipline_key = d.ins_discipline_key),
DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee'),
rrr.res_rsv_ruimte_bezoekers,
rrr.res_rsv_ruimte_van,
rrr.res_rsv_ruimte_tot,
COALESCE ((rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24,
0),
(SELECT res_status_fo_omschrijving
FROM res_status_fo rs
WHERE rs.res_status_fo_key = rrr.res_status_fo_key),
ra.res_activiteit_key,
ra.res_activiteit_omschrijving,
rsa.res_srtactiviteit_key,
rsa.res_srtactiviteit_omschrijving,
voorz.ins_discipline_key,
voorz.catalogus,
DECODE (voorz.catalogussoort,
1, 'Reserveerbaar object',
2, 'Catering',
3, 'Ruimte',
''),
voorz.product_key,
voorz.product,
voorz.totaalprijs,
voorz.btw,
TO_CHAR (voorz.van, 'hh24:mi'),
TO_CHAR (voorz.tot, 'hh24:mi'),
voorz.aantal,
voorz.prijs,
(SELECT ud.fac_usrdata_code
FROM res_kenmerkwaarde w, res_kenmerk k, fac_usrdata ud
WHERE w.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1
AND w.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ud.fac_usrtab_key = 41
AND ud.fac_usrdata_key =
fac.safe_to_number (W.RES_KENMERKRESERVERING_WAARDE)
AND w.res_kenmerkwaarde_verwijder IS NULL)
grootboekrekeningnr,
(SELECT ud.fac_usrdata_omschr
FROM res_kenmerkwaarde w, res_kenmerk k, fac_usrdata ud
WHERE w.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1
AND w.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ud.fac_usrtab_key = 41
AND ud.fac_usrdata_key =
fac.safe_to_number (W.RES_KENMERKRESERVERING_WAARDE)
AND w.res_kenmerkwaarde_verwijder IS NULL)
grootboekomschrijving,
(SELECT 'X'
FROM res_kenmerkwaarde w, res_kenmerk k, fac_usrdata ud
WHERE w.res_kenmerk_key = k.res_kenmerk_key
AND k.res_srtkenmerk_key = 1
AND w.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key
AND ud.fac_usrtab_key = 41
AND ud.fac_usrdata_key =
fac.safe_to_number (W.RES_KENMERKRESERVERING_WAARDE)
AND w.res_kenmerkwaarde_verwijder IS NULL)
grootboekaanwezig
FROM res_v_aanwezigrsv_ruimte rrr,
res_activiteit ra,
res_srtactiviteit rsa,
prs_perslid p,
prs_afdeling a,
prs_kostenplaats k,
( SELECT rrr.res_rsv_ruimte_key,
MAX (o.res_opstelling_omschrijving) opstelling,
MAX (ra.alg_ruimte_key) alg_ruimte_key,
MAX (rr.res_ruimte_nr) ruimte_nr
FROM res_rsv_ruimte rrr, res_ruimte_opstelling ro, res_ruimte rr, res_alg_ruimte ra, res_opstelling o
WHERE rrr.res_rsv_ruimte_verwijder IS NULL
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = ra.res_ruimte_key
AND ro.res_opstelling_key = o.res_opstelling_key
GROUP BY res_rsv_ruimte_key
UNION ALL
SELECT rrr.res_rsv_ruimte_key,
'' opstelling,
rrr.alg_ruimte_key,
r.alg_ruimte_nr
FROM res_rsv_ruimte rrr, alg_ruimte r
WHERE rrr.alg_ruimte_key IS NOT NULL
AND r.alg_ruimte_key = rrr.alg_ruimte_key) r2a,
(SELECT rrd.res_rsv_ruimte_key res_rsv_ruimte_key,
-rd.res_deel_key product_key,
rd.res_deel_omschrijving product,
DECODE (
rd.res_deel_prijs_vast,
1, NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs),
((rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24)
* NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs))
totaalprijs,
rrd.res_rsv_deel_van van,
rrd.res_rsv_deel_tot tot,
((rrd.res_rsv_deel_tot - rrd.res_rsv_deel_van) * 24) aantal,
NVL (rrd.res_rsv_deel_prijs, rd.res_deel_prijs)
prijs,
NULL btw,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus,
c.ins_discipline_min_level catalogussoort
FROM res_v_aanwezigrsv_deel rrd, res_deel rd, ins_deel d, ins_tab_discipline c
WHERE rrd.res_rsv_ruimte_key IS NOT NULL
AND rrd.res_deel_key = rd.res_deel_key
AND rd.res_ins_deel_key = d.ins_deel_key
AND rd.res_discipline_key = c.ins_discipline_key
UNION ALL
SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
ra.res_artikel_key product_key,
ra.res_artikel_omschrijving product,
NVL (rra.res_rsv_artikel_prijs - (rra.res_rsv_artikel_aantal * COALESCE (ra.res_artikel_kostenalgemeen, 0)),
rra.res_rsv_artikel_aantal * (ra.res_artikel_prijs - COALESCE (ra.res_artikel_kostenalgemeen, 0)))
totaalprijs,
rra.res_rsv_artikel_levering van,
NULL tot,
rra.res_rsv_artikel_aantal aantal,
NVL ((rra.res_rsv_artikel_prijs / rra.res_rsv_artikel_aantal) - COALESCE (ra.res_artikel_kostenalgemeen, 0),
ra.res_artikel_prijs - COALESCE (ra.res_artikel_kostenalgemeen, 0))
prijs,
NVL (rra.res_rsv_artikel_btw, ra.res_artikel_btw) btw,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus,
c.ins_discipline_min_level catalogussoort
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, ins_tab_discipline c
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = c.ins_discipline_key
UNION ALL
SELECT rra.res_rsv_ruimte_key res_rsv_ruimte_key,
ra.res_artikel_key product_key,
ra.res_artikel_omschrijving product,
(rra.res_rsv_artikel_aantal * ra.res_artikel_kostenalgemeen)
totaalprijs,
rra.res_rsv_artikel_levering van,
NULL tot,
rra.res_rsv_artikel_aantal aantal,
ra.res_artikel_kostenalgemeen
prijs,
0 btw,
c.ins_discipline_key ins_discipline_key,
c.ins_discipline_omschrijving catalogus,
c.ins_discipline_min_level catalogussoort
FROM res_v_aanwezigrsv_artikel rra, res_artikel ra, ins_tab_discipline c
WHERE rra.res_artikel_key = ra.res_artikel_key
AND ra.res_discipline_key = c.ins_discipline_key
AND ra.res_artikel_kostenalgemeen IS NOT NULL) voorz,
( SELECT pw.prs_perslid_key,
MIN (prs_werkplek_aanduiding) || DECODE (COUNT (*), 1, '', '...') prs_werkplek_aanduiding
FROM prs_v_werkplek_gegevens wp, prs_perslidwerkplek pw
WHERE wp.prs_werkplek_key = pw.prs_werkplek_key
GROUP BY pw.prs_perslid_key) wp2
WHERE rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2020', 'DD-MM-YYYY')
AND rrr.res_activiteit_key = ra.res_activiteit_key
AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key
AND rrr.res_rsv_ruimte_host_key = p.prs_perslid_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL)
AND p.prs_perslid_key = wp2.prs_perslid_key(+);
-- Copied from ROOT VIEWS for User defined Reports (UDR): ins_v_udr_deel
CREATE OR REPLACE VIEW hsle_v_rap_deel_verwijderd
(
key,
deel_omschrijving,
plaats,
srtdeel_code,
soort,
groep,
deel_opmerking,
discipline_key,
plaats_type,
district,
uitleenbaar,
res_opmerking,
deel_vervaldatum,
eigenaar,
ins_deel_verwijder
)
AS
SELECT i.ins_deel_key,
i.ins_deel_omschrijving,
TO_CHAR (NULL) plaats,
s.ins_srtdeel_code,
s.ins_srtdeel_omschrijving soort,
g.ins_srtgroep_omschrijving groep,
i.ins_deel_opmerking,
i.ins_discipline_key,
i.ins_alg_ruimte_type,
-1 district,
s.ins_srtdeel_uitleenbaar,
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,
i.ins_deel_verwijder
FROM ins_deel i,
ins_srtdeel s,
ins_srtgroep g,
(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 s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key
AND i.ins_deel_verwijder IS NOT 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,
TO_CHAR (NULL) plaats,
s.ins_srtdeel_code,
s.ins_srtdeel_omschrijving soort,
g.ins_srtgroep_omschrijving groep,
i.ins_deel_opmerking,
i.ins_discipline_key,
i.ins_alg_ruimte_type,
-1 district,
s.ins_srtdeel_uitleenbaar,
rd.res_deel_opmerking,
i.ins_deel_vervaldatum,
p.prs_perslid_naam
|| NVL2 (p.prs_perslid_voorletters,
', ' || p.prs_perslid_voorletters,
'')
|| NVL2 (p.prs_perslid_tussenvoegsel,
' ' || p.prs_perslid_tussenvoegsel,
'')
|| NVL2 (p.prs_perslid_voornaam,
' (' || p.prs_perslid_voornaam || ')',
'') eigenaar,
i.ins_deel_verwijder
FROM ins_deel i,
ins_srtdeel s,
ins_srtgroep g,
(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_afdeling_boom d
WHERE s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key
AND i.ins_deel_verwijder IS NOT 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_afdeling_key = d.prs_afdeling_key
AND i.ins_alg_ruimte_type = 'P'
UNION
SELECT i.ins_deel_key,
i.ins_deel_omschrijving,
TO_CHAR (NULL) plaats,
s.ins_srtdeel_code,
s.ins_srtdeel_omschrijving soort,
g.ins_srtgroep_omschrijving groep,
i.ins_deel_opmerking,
i.ins_discipline_key,
i.ins_alg_ruimte_type,
-1 district,
s.ins_srtdeel_uitleenbaar,
rd.res_deel_opmerking,
i.ins_deel_vervaldatum,
c.prs_contactpersoon_naam eigenaar,
i.ins_deel_verwijder
FROM ins_deel i,
ins_srtdeel s,
ins_srtgroep g,
(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 s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key
AND i.ins_deel_verwijder IS NOT 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 ALL
SELECT i.ins_deel_key,
i.ins_deel_omschrijving,
o.alg_plaatsaanduiding
|| ' ('
|| DECODE (
o.alg_onroerendgoed_type,
'R', (SELECT r.alg_ruimte_omschrijving
FROM alg_ruimte r
WHERE r.alg_ruimte_key = i.ins_alg_ruimte_key),
'T', (SELECT t.alg_terreinsector_naam
FROM alg_terreinsector t
WHERE t.alg_terreinsector_key = i.ins_alg_ruimte_key),
'W', (SELECT r.alg_ruimte_omschrijving
FROM alg_ruimte r, prs_werkplek w
WHERE r.alg_ruimte_key = w.prs_alg_ruimte_key
AND w.prs_werkplek_key = i.ins_alg_ruimte_key))
|| ')' plaats,
s.ins_srtdeel_code,
s.ins_srtdeel_omschrijving soort,
g.ins_srtgroep_omschrijving groep,
i.ins_deel_opmerking,
i.ins_discipline_key,
i.ins_alg_ruimte_type,
l.alg_district_key,
s.ins_srtdeel_uitleenbaar,
rd.res_deel_opmerking,
i.ins_deel_vervaldatum,
NULL eigenaar,
i.ins_deel_verwijder
FROM ins_deel i,
ins_v_alg_overzicht o,
ins_srtdeel s,
ins_srtgroep g,
alg_locatie l,
alg_district di,
(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 NOT 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 s.ins_srtdeel_key = i.ins_srtdeel_key
AND g.ins_srtgroep_key = s.ins_srtgroep_key;
-- HSLE#65705: Toevoegen 2 kolommen (aant_zitsta160 + aant_zitsta120).
CREATE OR REPLACE VIEW hsle_v_oppervlak_afdeling
(
alg_ruimte_key,
prs_kostenplaats_nr,
prs_afdeling_omschrijving,
alg_gebouw_omschrijving,
alg_verdieping_volgnr,
alg_verdieping_code,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_srtruimte_omschrijving,
alg_ruimte_opmerking,
alg_ruimte_vloerafwerking,
alg_ruimte_status,
alg_ruimte_inrichting,
alg_ruimte_toelichting,
alg_ruimte_aantal_werkplekken,
alg_gebouw_key,
prs_afdeling_key,
alg_ruimte_bruto_vloeropp,
prs_ruimteafdeling_bezetting,
product,
verhuurbaar,
bevat_werkplek,
aant_zitsta160,
aant_zitsta120
)
AS
SELECT rg.alg_ruimte_key,
COALESCE (ra.prs_kostenplaats_nr, 'Geen') prs_kostenplaats_nr,
COALESCE (ra.prs_afdeling_omschrijving, 'Geen') prs_afdeling_omschrijving,
rg.alg_gebouw_omschrijving,
rg.alg_verdieping_volgnr,
rg.alg_verdieping_code,
rg.alg_ruimte_nr,
rg.alg_ruimte_omschrijving,
sr.alg_srtruimte_omschrijving,
rg.alg_ruimte_opmerking,
(SELECT fac_usrdata_code
FROM alg_v_aanwezigonrgoedkenmerk aok, fac_usrdata ud
WHERE aok.alg_onrgoed_key = rg.alg_ruimte_key
AND aok.alg_onrgoed_niveau = 'R'
AND aok.alg_kenmerk_key = 1003
AND fac.safe_to_number (aok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key)
vloerafwerking,
(SELECT fac_usrdata_code
FROM alg_v_aanwezigonrgoedkenmerk aok, fac_usrdata ud
WHERE aok.alg_onrgoed_key = rg.alg_ruimte_key
AND aok.alg_onrgoed_niveau = 'R'
AND aok.alg_kenmerk_key = 1004
AND fac.safe_to_number (aok.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key)
status,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_onrgoed_key = rg.alg_ruimte_key
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1040)
alg_ruimte_inrichting,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_onrgoed_key = rg.alg_ruimte_key
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1006)
alg_ruimte_toelichting,
(SELECT alg_onrgoedkenmerk_waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_onrgoed_key = rg.alg_ruimte_key
AND alg_onrgoed_niveau = 'R'
AND alg_kenmerk_key = 1005)
alg_ruimte_aantal_werkplekken,
rg.alg_gebouw_key,
ra.prs_afdeling_key,
rg.alg_ruimte_bruto_vloeropp,
ra.prs_ruimteafdeling_bezetting,
COALESCE (rg.alg_ruimte_bruto_vloeropp, 0) * ra.prs_ruimteafdeling_bezetting / 100
product,
DECODE (sr.prs_verhuurbaar, 1, 'Ja', 'Nee') prs_verhuurbaar,
DECODE (sr.prs_bevat_werkplek, 1, 'Ja', 'Nee') prs_bevat_werkplek,
fac.safe_to_number (azs160.alg_onrgoedkenmerk_waarde)
aant_zitsta160,
fac.safe_to_number (azs120.alg_onrgoedkenmerk_waarde)
aant_zitsta120
FROM alg_v_ruimte_gegevens rg,
alg_srtruimte sr,
(SELECT ra.alg_ruimte_key,
a.prs_afdeling_key,
a.prs_afdeling_omschrijving,
kp.prs_kostenplaats_nr,
ra.prs_ruimteafdeling_bezetting
FROM prs_v_aanwezigruimteafdeling ra, prs_afdeling a, prs_kostenplaats kp
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key) ra,
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1080) azs160, -- Aantal zit sta 1.60
(SELECT alg_onrgoed_key, alg_onrgoedkenmerk_waarde
FROM alg_v_aanwezigonrgoedkenmerk
WHERE alg_kenmerk_key = 1081) azs120 -- Aantal zit sta 1.20
WHERE rg.alg_srtruimte_key = sr.alg_srtruimte_key(+)
AND rg.alg_ruimte_key = ra.alg_ruimte_key(+)
AND rg.alg_ruimte_key = azs160.alg_onrgoed_key(+)
AND rg.alg_ruimte_key = azs120.alg_onrgoed_key(+);
-- HSLE#37030 object x ruimte rapportage
CREATE OR REPLACE VIEW HSLE_V_UDR_RUIMTExOBJECT
AS
SELECT ins_deel_key,
ins_deel_omschrijving identificatie,
ins_deel_opmerking beschrijving,
dsc.ins_discipline_omschrijving discipline,
sg.ins_srtgroep_omschrijving groep,
sd.ins_srtdeel_omschrijving objectsoort,
ins_alg_ruimte_key alg_ruimte_key,
ins_deel_vervaldatum vervaldatum,
prs_perslid_naam_full beheerder,
prs_kostenplaats_nr prs_afdeling_omschrijving,
alg_gebouw_omschrijving,
alg_verdieping_volgnr,
alg_verdieping_code,
alg_ruimte_nr,
alg_ruimte_omschrijving,
alg_srtruimte_omschrijving,
alg_ruimte_opmerking,
alg_ruimte_vloerafwerking,
alg_ruimte_status,
alg_ruimte_toelichting,
alg_ruimte_aantal_werkplekken,
alg_ruimte_bruto_vloeropp,
prs_ruimteafdeling_bezetting,
product,
verhuurbaar,
bevat_werkplek
FROM ins_deel d,
ins_srtdeel sd,
ins_srtgroep sg,
ins_discipline dsc,
prs_v_perslid_fullnames_all p,
hsle_v_oppervlak_afdeling ra
WHERE ins_deel_verwijder IS NULL
AND ins_alg_ruimte_type = 'R'
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND dsc.ins_discipline_key = sg.ins_discipline_key
AND p.prs_perslid_key(+) = d.prs_perslid_key_beh
AND ra.alg_ruimte_key = ins_alg_ruimte_key;
CREATE OR REPLACE VIEW hsle_v_evenement
(
RES_RESERVERING_KEY,
RES_RESERVERING_OMSCHRIJVING
)
AS
SELECT r.res_reservering_key,
TO_CHAR (r.res_reservering_key)
|| ' - '
|| MAX (res_rsv_ruimte_omschrijving) res_reservering_omschrijving
FROM res_reservering r, res_rsv_ruimte rrr
WHERE r.res_reservering_key = rrr.res_reservering_key
AND rrr.res_activiteit_key = 30 -- evenementen
GROUP BY r.res_reservering_key;
CREATE OR REPLACE VIEW HSLE_V_EVENEMENT_BES
(
BES_BESTELLING_KEY,
BES_BESTELLING_OMSCHR
)
AS
SELECT b.BES_BESTELLING_KEY,
TO_CHAR (b.bes_bestelling_key)
|| ' - '
|| MAX (ins_discipline_omschrijving) ins_discipline_omschrijving
FROM bes_bestelling b,
bes_bestelling_item bi,
bes_srtdeel sd,
bes_srtgroep sg,
bes_discipline d
WHERE b.bes_bestelling_key = bi.bes_bestelling_key
AND bi.bes_srtdeel_key = sd.bes_srtdeel_key
AND sd.bes_srtgroep_key = sg.bes_srtgroep_key
AND sg.ins_discipline_key = d.ins_discipline_key
GROUP BY b.bes_bestelling_key;
-- view tbv kenmerkdomein. Alle AV objecten
-- KEY 42 = discipline AV
CREATE OR REPLACE VIEW hsle_v_deel_av
(
ins_deel_key,
ins_deel_omschrijving,
ins_deel_opmerking,
ins_deel_oms2,
ins_deel_vervaldatum
)
AS
SELECT ins_deel_key,
ins_deel_omschrijving,
ins_deel_opmerking,
ins_deel_omschrijving || ' - ' || ins_deel_opmerking ins_deel_oms2,
ins_deel_vervaldatum
FROM ins_v_aanwezigdeel d, ins_v_srtdeel_gegevens srt
WHERE d.ins_srtdeel_key = srt.ins_srtdeel_key
AND srt.ins_discipline_key = 42;
CREATE OR REPLACE VIEW hsle_v_ict_rfc_kenmerken
AS
SELECT mld_kenmerk_key,
mld_srtkenmerk_key,
mld_stdmelding_key,
mld_typeopdr_key,
mld_kenmerk_niveau,
mld_kenmerk_verplicht,
mld_kenmerk_groep,
mld_kenmerk_toonbaar,
mld_kenmerk_volgnummer,
mld_kenmerk_uniek,
mld_kenmerk_regexp,
mld_kenmerk_hint,
mld_kenmerk_aanmaak,
mld_kenmerk_default,
mld_kenmerk_verwijder,
mld_kenmerk_verplicht_status,
mld_kenmerk_code,
mld_kenmerk_onderbreken,
mld_kenmerk_obligation_fill,
mld_kenmerk_show_expr
FROM mld_kenmerk
WHERE mld_kenmerk_verwijder IS NULL
AND mld_kenmerk_niveau = 'D'
AND mld_stdmelding_key IN (642, 644) -- RFC/Change
;
CREATE OR REPLACE VIEW hsle_v_rap_ict_rfc
(
mld_melding_key,
mld_stdmelding_key,
mld_discipline_key,
mld_stdmelding_omschrijving,
mld_datum_create,
mld_datum_deadline_akkoord,
mld_melding_prioriteit,
mld_melding_status,
mld_melding_impact,
mld_melding_onderwerp,
fclt_mld_melding_parentkey,
--html_mld_melding_parentkey,
ins_deel_ci,
mld_melding_aanvrager,
mld_melding_eigenaar,
mld_melding_startdatum,
mld_melding_einddatum,
mld_melding_aanwezig_cab_i,
mld_melding_aanwezig_cab_a,
mld_melding_aanwezig_cab_t,
mld_melding_aanwezig_cab_s,
mld_melding_aanwezig_cab_v,
mld_melding_aanwezig_cab_n,
mld_melding_aanwezig_cab_w,
mld_melding_aanwezig_cab_f,
mld_melding_aanwezig_cab_c,
mld_melding_akkoord_i,
mld_melding_akkoord_a,
mld_melding_akkoord_t,
mld_melding_akkoord_s,
mld_melding_akkoord_v,
mld_melding_akkoord_n,
mld_melding_akkoord_w,
mld_melding_akkoord_f,
mld_melding_akkoord_c,
mld_opdr_deelnemer_key,
mld_opdr_deelnemer,
mld_opdr_omschrijving,
mld_opdr_startdatum,
mld_opdr_einddatum,
mld_opdr_plandatum,
mld_opdr_uren
)
AS
SELECT m.mld_melding_key,
sm.mld_stdmelding_key,
sm.mld_ins_discipline_key,
sm.mld_stdmelding_omschrijving,
--to_date(to_char(fac.gettrackingdate('MLDNEW',m.mld_melding_key),'dd-mm-yyyy'),'dd-mm-yyyy'),
TRUNC (fac.gettrackingdate ('MLDNEW', m.mld_melding_key)),
(SELECT fac.safe_to_date (km.mld_kenmerkmelding_waarde,
'dd-mm-yyyy')
FROM mld_kenmerkmelding km, hsle_v_ict_rfc_kenmerken k
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 382 -- Deadline akkoord
AND km.mld_melding_key = m.mld_melding_key),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 395 -- Prioriteit (Laag, Middel, Hoog)
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)
AND km.mld_melding_key = m.mld_melding_key),
CASE
-- Onderstaande WHEN-THEN volgorde is cruciaal voor tonen juiste status...
WHEN m.mld_melding_status IN (1) -- Afgewezen (1)
THEN
'Afgewezen'
WHEN m.mld_melding_status IN (5, 6) -- Gesloten (5), Historie (6)
THEN
'Afgerond'
WHEN -- Als NIET alle 4 vakgebieden I, A, T en S hebben goedgekeurd, maar WEL de Voorzitter heeft goedgekeurd, dan GOEDGEKEURD (ongeacht de melding-status)
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 377 -- Akkoord [Voorzitter]
AND fac.safe_to_number (
km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)
AND km.mld_melding_key = m.mld_melding_key) =
'V'
THEN
'Goedgekeurd' -- Akkoord door Voorzitter (HSLE#56209)
WHEN m.mld_melding_status IN (0) -- Bij Frontoffice (0)
THEN
'Concept'
WHEN m.mld_melding_status IN (2, 3) -- Nieuw (2), Te accepteren (3)
THEN
'Ingediend'
WHEN m.mld_melding_status IN (4, 7) -- Geaccepteerd (4), Uitgegeven (7)
THEN
'In behandeling'
END
status,
(SELECT TO_CHAR (
fac.safe_to_number (km1.mld_kenmerkmelding_waarde)
* fac.safe_to_number (km2.mld_kenmerkmelding_waarde))
FROM mld_kenmerkmelding km1,
hsle_v_ict_rfc_kenmerken k1,
mld_kenmerkmelding km2,
hsle_v_ict_rfc_kenmerken k2
WHERE km1.mld_kenmerk_key = k1.mld_kenmerk_key
AND k1.mld_srtkenmerk_key = 399 -- Risico impact
AND km1.mld_melding_key = m.mld_melding_key
AND km2.mld_kenmerk_key = k2.mld_kenmerk_key
AND k2.mld_srtkenmerk_key = 389 -- Kans op storing
AND km2.mld_melding_key = m.mld_melding_key),
m.mld_melding_omschrijving,
CASE
WHEN m.mld_melding_kto_type = 'M'
THEN
TO_CHAR (m.mld_melding_kto_key)
END,
--CASE
-- WHEN m.mld_melding_kto_type = 'M'
-- THEN '<a class="details" onclick=''FcltMgr.openDetail("appl/fac/fac_report.asp?usrrap_key=161+mode=list+fclt_mld_melding_parentkey='
-- || TO_CHAR (m.mld_melding_kto_key)
-- || '")''>'
-- || TO_CHAR (m.mld_melding_kto_key)
-- || '</a>'
--END,
(SELECT LISTAGG (d.ins_deel_omschrijving, ', ')
WITHIN GROUP (ORDER BY d.ins_deel_omschrijving)
FROM mld_melding_object mo, ins_deel d
WHERE mo.mld_melding_object_verwijder IS NULL
AND mo.ins_deel_key = d.ins_deel_key
AND mo.mld_melding_key = m.mld_melding_key)
ci,
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = m.prs_perslid_key_voor),
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = m.mld_melding_behandelaar_key),
--to_date(to_char(m.mld_melding_datum,'dd-mm-yyyy'),'dd-mm-yyyy'),
--to_date(to_char(m.mld_melding_einddatum,'dd-mm-yyyy'),'dd-mm-yyyy'),
TRUNC (m.mld_melding_datum),
TRUNC (m.mld_melding_einddatum),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 366 -- Aanwezig [Systeembeheer]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 361 -- Aanwezig [Architect]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 367 -- Aanwezig [TAB]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 365 -- Aanwezig [Servicedesk]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 368 -- Aanwezig [Voorzitter]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 364 -- Aanwezig [Netwerkbeheer]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 369 -- Aanwezig [Werkplekbeheer]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 363 -- Aanwezig [FAB]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT ud.fac_usrdata_code
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 362 -- Aanwezig [Co<43>rdinator]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 375 -- Akkoord [Systeembeheer]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 370 -- Akkoord [Architect]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 376 -- Akkoord [TAB]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 374 -- Akkoord [Servicedesk]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 377 -- Akkoord [Voorzitter]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 373 -- Akkoord [Netwerkbeheer]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 378 -- Akkoord [Werkplekbeheer]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 372 -- Akkoord [FAB]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
(SELECT DECODE (UPPER (ud.fac_usrdata_code),
'JA', 'V',
'NEE', 'X',
'')
FROM mld_kenmerkmelding km,
hsle_v_ict_rfc_kenmerken k,
fac_usrdata ud
WHERE m.mld_melding_key = km.mld_melding_key(+)
AND km.mld_kenmerk_key = k.mld_kenmerk_key(+)
AND k.mld_srtkenmerk_key = 371 -- Akkoord [Co<43>rdinator]
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) =
ud.fac_usrdata_key(+)),
u.mld_uitvoerende_key,
CASE
WHEN u.TYPE = 'P'
THEN
(SELECT prs_perslid_naam_full
FROM prs_v_perslid_fullnames_all
WHERE prs_perslid_key = u.mld_uitvoerende_key)
WHEN u.TYPE = 'B'
THEN
(SELECT prs_bedrijf_naam
FROM prs_bedrijf
WHERE prs_bedrijf_key = u.mld_uitvoerende_key)
END,
o.mld_opdr_omschrijving,
--to_date(to_char(o.mld_opdr_datumbegin, 'dd-mm-yyyy'),'dd-mm-yyyy'),
--to_date(to_char(o.mld_opdr_einddatum, 'dd-mm-yyyy'),'dd-mm-yyyy'),
--COALESCE(to_date(to_char(o.mld_opdr_plandatum, 'dd-mm-yyyy'),'dd-mm-yyyy'), to_date(to_char(o.mld_opdr_einddatum - (o.mld_opdr_einddatum - o.mld_opdr_datumbegin)/2, 'dd-mm-yyyy'),'dd-mm-yyyy')) plandatum,
TRUNC (o.mld_opdr_datumbegin),
TRUNC (o.mld_opdr_einddatum),
COALESCE (
TRUNC (o.mld_opdr_plandatum),
TRUNC (
o.mld_opdr_einddatum
- (o.mld_opdr_einddatum - o.mld_opdr_datumbegin) / 2))
plandatum,
o.mld_opdr_uren
FROM mld_melding m,
mld_stdmelding sm,
mld_opdr o,
mld_v_uitvoerende u
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key IN (642, 644) -- RFC/Change
AND m.mld_melding_key = o.mld_melding_key(+)
AND o.mld_uitvoerende_keys = u.mld_uitvoerende_key(+);
CREATE OR REPLACE VIEW hsle_v_ins_qrc
(
fclt_3d_discipline_key,
fclt_3d_locatie_key,
fclt_f_locatie,
fclt_f_gebouw,
plaats,
soortruimte,
ins_srtdeel_code,
ins_srtdeel_omschrijving,
ins_deel_omschrijving,
ins_deel_key,
ins_srtdeel_key,
fclt_f_objectsoort,
ins_alg_ruimte_type,
alg_district_key,
ins_deel_upper,
alg_ruimte_key,
fclt_f_fac_bookmark_naam,
hide_f_bookmark_id
)
AS
SELECT i.ins_discipline_key,
l.alg_locatie_key,
l.alg_locatie_omschrijving,
o.alg_gebouw_omschrijving,
o.alg_plaatsaanduiding plaats,
(SELECT r.alg_ruimte_omschrijving
FROM alg_ruimte r
WHERE r.alg_ruimte_key = i.ins_alg_ruimte_key) soortruimte,
s.ins_srtdeel_code,
s.ins_srtdeel_omschrijving,
i.ins_deel_omschrijving,
i.ins_deel_key,
s.ins_srtdeel_key,
s.ins_srtdeel_upper,
i.ins_alg_ruimte_type,
l.alg_district_key,
ins_deel_upper,
i.ins_alg_ruimte_key,
b.fac_bookmark_naam,
b.fac_bookmark_id
FROM ins_deel i,
ins_v_alg_overzicht o,
ins_srtdeel s,
alg_locatie l,
alg_district di,
fac_bookmark b
WHERE b.fac_bookmark_naam LIKE '%QRC%'
AND ins_deel_verwijder IS NULL
AND i.ins_deel_module = 'INS'
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 s.ins_srtdeel_key = i.ins_srtdeel_key;
-- Notificatie-job die 2 weken (=14 dagen) VOOR de uiterlijke inleverdatum (kenmerk-key 201) van het object parkeerpas (ins_srtdeel_key = 301) een mail verstuurd naar de lener.
CREATE OR REPLACE VIEW hsle_v_noti_pp1
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT 'CUST01',
'',
d.ins_alg_ruimte_key,
'Reminder parkeerpas - Uiterlijke inleverdatum: '
|| kd.ins_kenmerkdeel_waarde,
d.ins_deel_key,
NULL
FROM ins_deel d, ins_kenmerkdeel kd, fac_notificatie_job nj
WHERE ins_srtdeel_key = 301
AND ins_alg_ruimte_key_org IS NOT NULL
AND ins_alg_ruimte_type_org IS NOT NULL
AND ins_alg_ruimte_type = 'P'
AND ins_deel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 201
AND KD.INS_KENMERKDEEL_VERWIJDER IS NULL
AND TO_DATE (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') - 14 <=
TRUNC (SYSDATE)
AND nj.fac_notificatie_job_view = 'HSLE_V_NOTI_PP1'
AND TO_DATE (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') - 14 >=
TRUNC (nj.fac_notificatie_job_nextrun);
-- Notificatie-job die 1 week (=7 dagen) NA de uiterlijke inleverdatum (kenmerk-key 201) van het object parkeerpas (ins_srtdeel_key = 301) een mail verstuurd naar de lener.
CREATE OR REPLACE VIEW hsle_v_noti_pp2
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT 'CUST02',
'',
d.ins_alg_ruimte_key,
'Reminder parkeerpas - Geblokkeerd',
d.ins_deel_key,
NULL
FROM ins_deel d, ins_kenmerkdeel kd, fac_notificatie_job nj
WHERE ins_srtdeel_key = 301
AND ins_alg_ruimte_key_org IS NOT NULL
AND ins_alg_ruimte_type_org IS NOT NULL
AND ins_alg_ruimte_type = 'P'
AND ins_deel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 201
AND KD.INS_KENMERKDEEL_VERWIJDER IS NULL
AND TO_DATE (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') + 7 <=
TRUNC (SYSDATE)
AND nj.fac_notificatie_job_view = 'HSLE_V_NOTI_PP2'
AND TO_DATE (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') + 7 >=
TRUNC (nj.fac_notificatie_job_nextrun);
-- Notificatie-job die 4 weken (=28 dagen) VOOR de uiterlijke inleverdatum (kenmerk-key 201) van het object parkeerpas (ins_srtdeel_key = 301) een mail verstuurd naar de lener.
CREATE OR REPLACE VIEW hsle_v_noti_pp3
(
code,
sender,
receiver,
text,
key,
xkey
)
AS
SELECT 'CUST03',
'',
d.ins_alg_ruimte_key,
'Reminder parkeerpas - Uiterlijke inleverdatum: '
|| kd.ins_kenmerkdeel_waarde,
d.ins_deel_key,
NULL
FROM ins_deel d, ins_kenmerkdeel kd, fac_notificatie_job nj
WHERE ins_srtdeel_key = 301
AND ins_alg_ruimte_key_org IS NOT NULL
AND ins_alg_ruimte_type_org IS NOT NULL
AND ins_alg_ruimte_type = 'P'
AND ins_deel_verwijder IS NULL
AND kd.ins_deel_key = d.ins_deel_key
AND kd.ins_kenmerk_key = 201
AND KD.INS_KENMERKDEEL_VERWIJDER IS NULL
AND TO_DATE (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') - 28 <=
TRUNC (SYSDATE)
AND nj.fac_notificatie_job_view = 'HSLE_V_NOTI_PP3'
AND TO_DATE (kd.ins_kenmerkdeel_waarde, 'dd-mm-yyyy') - 28 >=
TRUNC (nj.fac_notificatie_job_nextrun);
--- HSLE#38447 maatwerk rapportage voor draaiboek reserveringen
CREATE OR REPLACE VIEW hsle_v_rap_res_draaiboek
(
key,
res_nummer,
duur,
dag_van,
datum_van,
tijd_van,
dag_tot,
datum_tot,
tijd_tot,
aant_pers,
ruimte,
omschrijving,
voorziening,
gastheer,
aanvrager,
opmerking,
activiteit
)
AS
SELECT u.key,
nummer,
CASE WHEN TRUNC (van) = TRUNC (tot) THEN '-' ELSE 'meerdaags' END
AS duur,
TO_CHAR (van, 'DAY')
AS dag_van,
van
datum_van,
TO_CHAR (van, 'HH24:Mi')
tijd_van,
TO_CHAR (tot, 'DAY')
AS dag_tot,
tot
datum_tot,
TO_CHAR (tot, 'HH24:Mi')
tijd_tot,
bezoekers,
locatie || '-' || gebouw || '-' || verdieping || '- ' || ruimte
AS ruimte,
res_omschrijving,
voorziening_product,
gastheer,
contact,
r.res_rsv_ruimte_opmerking,
activiteit
FROM res_v_udr_reserveringincl u, res_rsv_ruimte r
WHERE u.key = r.res_rsv_ruimte_key;
--- HSLE#38543 maatwerk rapportage aantallen meldingen
CREATE OR REPLACE VIEW HSLE_V_MLD_MLDLIST
(
MELDINGNR,
DATUM,
STDMLDKEY,
MELDING,
VAKGROEP,
AANTAL
)
AS
SELECT m.mld_melding_key,
m.mld_melding_datum,
sm.mld_stdmelding_key,
sm.mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving,
COUNT (m.mld_stdmelding_key) AS COUNT
FROM mld_melding m, mld_stdmelding sm, ins_tab_discipline d
WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key(+)
AND d.ins_discipline_key = sm.mld_ins_discipline_key
GROUP BY sm.mld_stdmelding_key,
m.mld_melding_key,
mld_melding_datum,
sm.mld_stdmelding_omschrijving,
d.ins_discipline_omschrijving
ORDER BY mld_stdmelding_key;
--- HSLE#38543 maatwerk rapportage aantallen meldingen
CREATE OR REPLACE VIEW HSLE_V_MLD_MLDLIST2
(
MELDINGNR,
DATUM,
STDMLDKEY,
MELDING,
VAKGROEP,
AANTAL
)
AS
SELECT v.meldingnr,
v.datum,
v.stdmldkey,
v.melding,
v.vakgroep,
SUM (aantal)
FROM hsle_v_mld_mldlist v
GROUP BY v.stdmldkey,
v.vakgroep,
v.melding,
v.datum,
v.meldingnr
ORDER BY v.stdmldkey;
--- HSLE#51829 maatwerk rapportage wijzigingen objectbeheer met tracking
CREATE OR REPLACE VIEW HSLE_V_RAP_INS_TRACKING
(
Discipline,
Deel_key,
Deel_omschrijving,
Deel_opmerking,
Srtdeel,
Srtdeel_omschrijving,
Tracking_key,
Tracking_datum,
Tracking_omschrijving,
Uitgegeven_Aan
)
AS
SELECT disc.ins_discipline_omschrijving AS Discipline,
d.ins_deel_key AS Deel_key,
d.ins_deel_omschrijving AS Deel_omschrijving,
d.ins_deel_opmerking AS Deel_opmerking,
sd.ins_srtdeel_code AS Srtdeel,
sd.ins_srtdeel_omschrijving Srtdeel_omschrijving,
t.fac_tracking_key AS Tracking_key,
t.fac_tracking_datum AS Tracking_datum,
t.fac_tracking_oms AS Tracking_omschrijving,
CASE
WHEN t.fac_tracking_oms LIKE '%uitgegeven aan Extern%'
THEN
'Extern'
ELSE
CASE
WHEN t.fac_tracking_oms LIKE '%uitgegeven aan%'
THEN
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'uitgegeven aan')
+ 15,
INSTR (t.fac_tracking_oms, ')')
- INSTR (t.fac_tracking_oms, 'uitgegeven aan')
- 14)
ELSE
''
END
END AS Uitgegeven_Aan
FROM ins_tab_discipline disc,
ins_deel d,
ins_srtdeel sd,
fac_tracking t,
fac_srtnotificatie n
WHERE t.fac_tracking_refkey = d.ins_deel_key
AND n.fac_srtnotificatie_xmlnode = 'deel'
AND t.fac_tracking_oms IS NOT NULL
AND t.fac_srtnotificatie_key = n.fac_srtnotificatie_key
AND disc.ins_discipline_key = d.ins_discipline_key
AND sd.ins_srtdeel_key = d.ins_srtdeel_key
ORDER BY sd.ins_srtdeel_omschrijving, ins_deel_key;
CREATE OR REPLACE VIEW HSLE_V_BEZOEKERSAFSPRAAK
(
BEZ_AFSPRAAK_KEY,
BEZ_AFSPRAAK_DATUM,
BEZ_AFSPRAAK_EIND,
BEZ_RUIMTE,
BEZ_AFSPRAAK_OPMERKING,
BEZ_AFSPRAAK_GASTHEER,
BEZ_AFSPRAAK_TELEFOONNR,
OMSCHRIJVING
)
AS
SELECT a.bez_afspraak_key,
a.bez_afspraak_datum,
a.bez_afspraak_eind,
a.bez_afspraak_ruimte,
a.bez_afspraak_opmerking,
a.bez_afspraak_gastheer,
a.bez_afspraak_telefoonnr,
a.bez_afspraak_key
|| ' - '
|| TO_CHAR (a.bez_afspraak_datum, 'YYYY-MM-DD')
|| ' '
|| TO_CHAR (a.bez_afspraak_datum, 'HH24:MI')
|| '/'
|| TO_CHAR (a.bez_afspraak_eind, 'HH24:MI')
|| ' - '
|| a.bez_afspraak_gastheer
|| ' - '
|| a.bez_afspraak_ruimte AS Omschrijving
FROM bez_afspraak a
WHERE TRUNC (a.bez_afspraak_datum) >= TRUNC (SYSDATE - 31);
-- HSLE#40151: Rapportage doorlooptijden mld obv gewijzigde vakgroepen
-- Later toegevoegd: behandelgroep_oud en behandelgroep_nieuw
CREATE OR REPLACE VIEW hsle_v_rap_mldstat
(
track_datum,
srtnotificatie_code,
discipline_omschrijving,
stdmelding_omschrijving,
melding_key,
melding_datum,
tracking_omschrijving,
vakgroep_oud,
vakgroep_nieuw,
behandelgroep_oud,
behandelgroep_nieuw,
melder,
behandelaar,
melding_datum_afgemeld
)
AS
SELECT t.fac_tracking_datum,
DECODE (t.fac_srtnotificatie_key,
38, 'MLDAFM',
43, 'MLDNEW',
44, 'MLDREJ',
45, 'MLDUPD'),
d.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
m.mld_melding_key,
m.mld_melding_datum,
t.fac_tracking_oms,
CASE
WHEN t.fac_tracking_oms LIKE '%Vakgroep:%'
THEN
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'Vakgroep:') + 10,
INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'Vakgroep:') + 10,
100),
' --> '))
ELSE
''
END
AS vakgr_oud,
CASE
WHEN t.fac_tracking_oms LIKE '%Vakgroep:%'
THEN
SUBSTR (
SUBSTR (t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'Vakgroep:') + 10,
999),
INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'Vakgroep:') + 10,
999),
' --> ')
+ 5,
INSTR (
SUBSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'Vakgroep:')
+ 14
+ INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Vakgroep:')
+ 10,
999),
' --> ')),
0),
CHR (10)))
ELSE
''
END
AS vakgr_nieuw,
CASE
WHEN (CASE
WHEN t.fac_tracking_oms LIKE '%Behandelgroep:%'
THEN
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Behandelgroep:')
+ 15,
INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Behandelgroep:')
+ 15,
100),
' --> '))
ELSE
''
END) =
'(leeg) '
THEN
''
ELSE
CASE
WHEN t.fac_tracking_oms LIKE '%Behandelgroep:%'
THEN
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'Behandelgroep:')
+ 15,
INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Behandelgroep:')
+ 15,
100),
' --> '))
ELSE
''
END
END
AS behandelgr_oud,
CASE
WHEN t.fac_tracking_oms LIKE '%Behandelgroep:%'
THEN
CASE
WHEN SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Behandelgroep:')
+ 19
+ INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Behandelgroep:')
+ 15,
999),
' --> '),
999) =
'(gewist)'
THEN
''
ELSE
SUBSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Behandelgroep:')
+ 19
+ INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Behandelgroep:')
+ 15,
999),
' --> '),
999),
1,
(CASE
WHEN (INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (
t.fac_tracking_oms,
'Behandelgroep:')
+ 19
+ INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (
t.fac_tracking_oms,
'Behandelgroep:')
+ 15,
999),
' --> '),
999),
CHR (10))) =
0
THEN
999
ELSE
INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Behandelgroep:')
+ 19
+ INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (
t.fac_tracking_oms,
'Behandelgroep:')
+ 15,
999),
' --> '),
999),
CHR (10))
END))
END
ELSE
''
END
AS grpnew,
(SELECT prs_perslid_naam
FROM prs_perslid p
WHERE p.prs_perslid_key = m.prs_perslid_key_voor)
AS melder,
(SELECT prs_perslid_naam
FROM prs_perslid p
WHERE p.prs_perslid_key = m.mld_melding_behandelaar_key)
AS behandelaar,
COALESCE (fac.gettrackingdate ('MLDAFM', m.mld_melding_key),
fac.gettrackingdate ('MLDREJ', m.mld_melding_key))
FROM mld_melding m,
mld_stdmelding sm,
ins_tab_discipline d,
fac_tracking t
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = d.ins_discipline_key
AND TRUNC (m.mld_melding_datum) >=
TRUNC (TO_DATE ('2018-01-01', 'yyyy-mm-dd'))
AND t.fac_srtnotificatie_key IN (38,
43,
44,
45) -- MLDAFM, MLDNEW, MLDREJ, MLDUPD
AND m.mld_melding_key = t.fac_tracking_refkey
ORDER BY m.mld_melding_key, t.fac_tracking_datum DESC;
CREATE OR REPLACE VIEW HSLE_V_RAP_MAIL_PP
(
MAILADRESSEN
)
AS
SELECT RTRIM (
XMLAGG (
XMLELEMENT (e, pas.prs_perslid_email || ';')
ORDER BY pas.ins_srtdeel_key).EXTRACT (
'//text()').getclobval (),
',')
listofsgs
FROM (SELECT d.ins_alg_ruimte_key,
d.ins_deel_upper,
d.ins_srtdeel_key,
p.prs_perslid_email
FROM ins_deel d,
prs_perslid p,
(SELECT k.ins_deel_key,
ud.fac_usrdata_key,
ud.fac_usrdata_omschr
FROM ins_kenmerkdeel k, fac_usrdata ud
WHERE k.ins_kenmerk_key = 103
AND fac.safe_to_number (k.ins_kenmerkdeel_waarde) = ud.fac_usrdata_key
AND ud.fac_usrtab_key = 161) status_pas
WHERE d.ins_srtdeel_key = 301
AND d.ins_alg_ruimte_type = 'P' -- uitgeleend
AND d.ins_alg_ruimte_key = p.prs_perslid_key
AND p.prs_srtperslid_key = 26 -- studenten
AND p.prs_perslid_email IS NOT NULL
AND d.ins_deel_key = status_pas.ins_deel_key
AND status_pas.fac_usrdata_key = 281 -- uitgegeven
AND d.ins_deel_key NOT IN (SELECT k.ins_deel_key -- niet topsport of medische indicatie
FROM ins_kenmerkdeel k
WHERE k.ins_kenmerk_key = 261))
pas;
CREATE OR REPLACE VIEW HSLE_V_RAP_POWERBI
(
rapport,
vakgroep,
meldingsoort,
meldingnummer,
melddatum,
einddatum,
afh_optijd,
melding_status,
kleurmarkering,
cluster_code,
cluster_oms,
afdeling_code,
afdeling_oms,
hv_betrokken,
laatstbij_hv,
objecten,
naam_melder, --kenmerk1,
telefoonnr, --kenmerk2,
email, --kenmerk3,
begintijd_van, --kenmerk4,
keuze_afvalbeh, --kenmerk5,
datum, --kenmerk6,
naam_budgeth, --kenmerk7,
kostenplaats, --kenmerk8,
keuze_st, --kenmerk9,
keuze_st_kofaut, --kenmerk10,
opleiding, --kenmerk11,
keuze_st_mfp, --kenmerk12,
begin_eind, --kenmerk13,
behand, --kenmerk14,
cat_keuze, --kenmerk15,
cat_srtmld, --kenmerk16,
keuze_rep, --kenmerk17,
aant_pers, --kenmerk18,
meldbron, --kenmerk19,
grootboekrek, --kenmerk20,
ruimte, --kenmerk21,
verdieping, --kenmerk22,
boekenlijst, --kenmerk23,
startbrief, --kenmerk24,
klasindeling, --kenmerk25,
onderwerp_jp, --kenmerk26,
startbijeenk, --kenmerk27,
cat_keuze_rest, --kenmerk28,
examencomm_verz, --kenmerk29,
toner_kleur, --kenmerk30,
ref_res, --kenmerk31,
hergebr_art, --kenmerk32,
loc_oph_mat, --kenmerk33,
kenmerk34,
kenmerk35,
kenmerk36,
kenmerk37,
kenmerk38,
kenmerk39,
kenmerk40,
kenmerk41,
kenmerk42,
kenmerk43,
kenmerk44,
kenmerk45,
kenmerk46,
kenmerk47,
kenmerk48,
kenmerk49,
kenmerk50
)
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 mld_srtkenmerk_key, mld_srtkenmerk_omschrijving
FROM mld_srtkenmerk -- Inclusief alle verwijderde entries!
WHERE mld_srtkenmerk_key IN (24, 25, 26, 106, 142, 161, 221, 222, 242, 261,
481, 542, 921, 1041, 1661, 1701, 1761, 2021, 2401, 2461,
2481, 2541, 2983, 2984, 2985, 3001, 3021, 3081, 3101, 3541,
3661, 3682, 3681)
ORDER BY mld_srtkenmerk_key)) sk -- Kenmerksoorten onder vakgroepen 82, 110, 112 en 2001 [LET OP: Lijkt dynamisch, maar is het niet!]
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 CASE
WHEN x.ins_discipline_key IN (94,
176,
261,
116,
118,
2021,
1541,
381,
178,
110, -- SD (Studentinformatie)
2022,
1781,
1841)
THEN
'Servicedesk'
WHEN x.ins_discipline_key IN (102,
1861, -- Balie - SD
112, -- Catering
2001, -- Catering en Ruimtes VL en LC
82, -- Concierge
162,
108,
166,
104,
106,
182,
88,
86,
100,
1861, -- Balie - Receptie
2281) -- Quickmelding Concierge
THEN
'Facilitair'
WHEN x.ins_discipline_key IN (92) -- ICT (Werkplekbeheer)
THEN
'ICT backoffice'
ELSE
'Onbekend'
END
rapport,
x.ins_discipline_omschrijving vakgroep,
x.mld_stdmelding_omschrijving meldingsoort,
x.ins_srtdiscipline_prefix || TO_CHAR (x.melding_key) meldingnummer,
x.mld_melding_datum,
x.mld_melding_einddatum,
DECODE (x.mld_statuses_key,
1, DECODE (SIGN (x.mld_melding_einddatum_std - TRUNC (COALESCE (fac.gettrackingdate ('MLDREJ', x.melding_key), SYSDATE), 'mi')), -1, 'Nee', 'Ja'),
5, DECODE (SIGN (x.mld_melding_einddatum_std - TRUNC (COALESCE (fac.gettrackingdate ('MLDAFM', x.melding_key), SYSDATE), 'mi')), -1, 'Nee', 'Ja'),
6, DECODE (SIGN (x.mld_melding_einddatum_std - TRUNC (COALESCE (fac.gettrackingdate ('MLDAFM', x.melding_key), SYSDATE), 'mi')), -1, 'Nee', 'Ja'),
DECODE (SIGN (x.mld_melding_einddatum_std - TRUNC (SYSDATE, 'mi')), -1, 'Nee', NULL))
afh_optijd,
x.mld_statuses_omschrijving melding_status,
CASE
WHEN x.mld_melding_flag > 0
THEN lcl.l ('lcl_mld_flag' || x.mld_melding_flag)
END
bolletje,
x.cluster_code,
x.cluster_oms,
x.afdeling_code,
x.afdeling_oms,
DECODE (t.lbh, NULL, 'Nee', 'Ja') hb, -- HV betrokken
t.lbh, -- Laatstbij HV
o.objecten,
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,
k31.waarde kenmerk31,
k32.waarde kenmerk32,
k33.waarde kenmerk33,
k34.waarde kenmerk34,
k35.waarde kenmerk35,
k36.waarde kenmerk36,
k37.waarde kenmerk37,
k38.waarde kenmerk38,
k39.waarde kenmerk39,
k40.waarde kenmerk40,
k41.waarde kenmerk41,
k42.waarde kenmerk42,
k43.waarde kenmerk43,
k44.waarde kenmerk44,
k45.waarde kenmerk45,
k46.waarde kenmerk46,
k47.waarde kenmerk47,
k48.waarde kenmerk48,
k49.waarde kenmerk49,
k50.waarde kenmerk50
FROM (SELECT sd.ins_srtdiscipline_prefix,
md.ins_discipline_key,
md.ins_discipline_omschrijving,
sm.mld_stdmelding_omschrijving,
m.mld_melding_key melding_key,
m.mld_melding_datum,
m.mld_melding_einddatum,
m.mld_melding_einddatum_std,
m.mld_melding_flag,
ms.mld_statuses_key,
ms.mld_statuses_omschrijving,
a1.prs_afdeling_naam cluster_code,
a1.prs_afdeling_omschrijving cluster_oms,
a.prs_afdeling_naam afdeling_code,
a.prs_afdeling_omschrijving afdeling_oms
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_statuses ms,
prs_perslid p,
prs_v_afdeling_boom ab,
prs_afdeling a1,
prs_afdeling a
WHERE 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 md.ins_discipline_key IN (94,
176,
261,
116,
118,
2021,
1541,
381,
178,
110,
2022,
1781,
1841,
102,
1861,
112,
2001,
82,
162,
108,
166,
104,
106,
182,
88,
86,
100,
92,
1861,
2281)
AND m.prs_perslid_key = p.prs_perslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key1 = a1.prs_afdeling_key
AND ab.prs_afdeling_key = a.prs_afdeling_key
AND m.mld_melding_status = ms.mld_statuses_key) x
LEFT JOIN ( SELECT fac_tracking_refkey,
MAX (fac_tracking_datum) lbh -- Laatstbij HV
FROM fac_tracking
WHERE fac_srtnotificatie_key = 45 -- MLDUPD
AND INSTR (fac_tracking_oms, '--> Huisvesting') > 0
GROUP BY fac_tracking_refkey) t
ON x.melding_key = t.fac_tracking_refkey -- HSLE#61578
LEFT JOIN ( SELECT mo.mld_melding_key,
listagg (d.ins_deel_omschrijving, ',')
WITHIN GROUP (ORDER BY d.ins_deel_omschrijving)
AS objecten
FROM mld_v_aanwezigmelding_object mo, ins_deel d, ins_srtdeel sd
WHERE mo.ins_deel_key = d.ins_deel_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
GROUP BY mo.mld_melding_key) o
ON x.melding_key = o.mld_melding_key
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
LEFT JOIN mk k31 ON x.melding_key = k31.melding_key AND k31.vnr = 31
LEFT JOIN mk k32 ON x.melding_key = k32.melding_key AND k32.vnr = 32
LEFT JOIN mk k33 ON x.melding_key = k33.melding_key AND k33.vnr = 33
LEFT JOIN mk k34 ON x.melding_key = k34.melding_key AND k34.vnr = 34
LEFT JOIN mk k35 ON x.melding_key = k35.melding_key AND k35.vnr = 35
LEFT JOIN mk k36 ON x.melding_key = k36.melding_key AND k36.vnr = 36
LEFT JOIN mk k37 ON x.melding_key = k37.melding_key AND k37.vnr = 37
LEFT JOIN mk k38 ON x.melding_key = k38.melding_key AND k38.vnr = 38
LEFT JOIN mk k39 ON x.melding_key = k39.melding_key AND k39.vnr = 39
LEFT JOIN mk k40 ON x.melding_key = k40.melding_key AND k40.vnr = 40
LEFT JOIN mk k41 ON x.melding_key = k41.melding_key AND k41.vnr = 41
LEFT JOIN mk k42 ON x.melding_key = k42.melding_key AND k42.vnr = 42
LEFT JOIN mk k43 ON x.melding_key = k43.melding_key AND k43.vnr = 43
LEFT JOIN mk k44 ON x.melding_key = k44.melding_key AND k44.vnr = 44
LEFT JOIN mk k45 ON x.melding_key = k45.melding_key AND k45.vnr = 45
LEFT JOIN mk k46 ON x.melding_key = k46.melding_key AND k46.vnr = 46
LEFT JOIN mk k47 ON x.melding_key = k47.melding_key AND k47.vnr = 47
LEFT JOIN mk k48 ON x.melding_key = k48.melding_key AND k48.vnr = 48
LEFT JOIN mk k49 ON x.melding_key = k49.melding_key AND k49.vnr = 49
LEFT JOIN mk k50 ON x.melding_key = k50.melding_key AND k50.vnr = 50;
-- HSLE#60376: Meldingen onder vakgroepen 2041=Applicatiebeheer, 2062=Infra (SN)
-- en 2063=Infra (DT) incl. kenmerken tbv. PWRBI
CREATE OR REPLACE VIEW hsle_v_udr_mld_ab_infra
(
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,
bron, -- meldbron
--vakgroeptype, --soortmelding
--fclt_3d_discipline_key,
vakgroep, --productgroep,
meldingsoort, --subproductgroep,
--behandelgroep,
behandelaar,
behandelaar_key,
meldinggroep, --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,
omschrijving,
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,
naam_melder, --kenmerk1,
telefoonnr, --kenmerk2,
email, --kenmerk3,
dat_laatst_gez, --kenmerk4,
datum_const, --kenmerk5,
beschr_sit, --kenmerk6,
beschr_goed, --kenmerk7,
eigendom_hsl, --kenmerk8,
pin_ww_op_app, --kenmerk9,
account_op_app, --kenmerk10,
serienr, --kenmerk11,
waarde, --kenmerk12,
begin_eind, --kenmerk13,
behand, --kenmerk14,
keuze_mob, --kenmerk15,
huidige_mob, --kenmerk16,
reden_aanvr_mob, --kenmerk17,
geg_nieuwe_mdw, --kenmerk18,
meldbron, --kenmerk19,
email_prive, --kenmerk20,
indienst_per, --kenmerk21,
naam_mb, --kenmerk22,
weergavenaam_mb, --kenmerk23,
wie_beh_mb, --kenmerk24,
wie_fa_recht, --kenmerk25,
wie_sob_recht, --kenmerk26,
wie_sa_recht, --kenmerk27,
inlog_geconst, --kenmerk28,
zelf_apps_gebl, --kenmerk29,
contactgeg, --kenmerk30,
extra_info, --kenmerk31,
soortmelding, --kenmerk32,
security_incident, --kenmerk33,
vermissing, --kenmerk34,
informatieverz, --kenmerk35,
incident, --kenmerk36,
serviceverz, --kenmerk37,
filemaker, --kenmerk38,
sharepoint, --kenmerk39,
melding_opgelost, --kenmerk40,
domein, --kenmerk41,
incident_a_sn, --kenmerk42,
incident_n_sn, --kenmerk43,
incident_s_sn, --kenmerk44,
melding_opgelost_j, --kenmerk45,
serviceverz_a_sn, --kenmerk46
serviceverz_n_sn, --kenmerk47,
serviceverz_s_sn, --kenmerk48,
alg_storing_keuze, --kenmerk49,
autorisatie_mb, --kenmerk50,
beheerder_mt, --kenmerk51,
desktop_keuze, --kenmerk52,
email_keuze1, --kenmerk53,
email_keuze2, --kenmerk54,
hoeveel_wp, --kenmerk55,
gemeld_bij_maas, --kenmerk56,
incident_h, --kenmerk57,
incident_s, --kenmerk58,
incident_t, --kenmerk59,
laptop_keuze, --kenmerk60,
mfp_storing_keuze, --kenmerk61,
mob_storing_keuze, --kenmerk62,
nummerport_keuze, --kenmerk63,
off_app_keuze, --kenmerk64,
off_groep_keuze, --kenmerk65,
serviceverz_a, --kenmerk66,
serviceverz_h, --kenmerk67,
serviceverz_o, --kenmerk68,
serviceverz_s, --kenmerk69,
serviceverz_t, --kenmerk70,
vaste_tel_keuze, --kenmerk71,
toestemming_ldg_j, --kenmerk72,
kenmerk73,
kenmerk74,
kenmerk75,
kenmerk76,
kenmerk77,
kenmerk78,
kenmerk79,
kenmerk80
)
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 mld_srtkenmerk_key, mld_srtkenmerk_omschrijving
FROM mld_srtkenmerk -- Inclusief alle verwijderde entries!
WHERE mld_srtkenmerk_key IN (24, 25, 26, 661, 663, 664, 665, 666, 681, 682,
721, 722, 921, 1041, 2361, 2362, 2363, 2381, 2401, 2421,
2422, 2581, 2582, 2583, 2584, 2585, 2586, 2761, 2781, 2841,
2861, 3641, 3642, 3645, 3646, 3647, 3648, 3701, 3761, 3762,
3901, 3961, 3962, 3963, 3964, 3966, 3967, 3968, 3981, 3982,
3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992,
3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002,
4003, 4021)
ORDER BY mld_srtkenmerk_key)) 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,
k31.waarde kenmerk31,
k32.waarde kenmerk32,
k33.waarde kenmerk33,
k34.waarde kenmerk34,
k35.waarde kenmerk35,
k36.waarde kenmerk36,
k37.waarde kenmerk37,
k38.waarde kenmerk38,
k39.waarde kenmerk39,
k40.waarde kenmerk40,
k41.waarde kenmerk41,
k42.waarde kenmerk42,
k43.waarde kenmerk43,
k44.waarde kenmerk44,
k45.waarde kenmerk45,
k46.waarde kenmerk46,
k47.waarde kenmerk47,
k48.waarde kenmerk48,
k49.waarde kenmerk49,
k50.waarde kenmerk50,
k51.waarde kenmerk51,
k52.waarde kenmerk52,
k53.waarde kenmerk53,
k54.waarde kenmerk54,
k55.waarde kenmerk55,
k56.waarde kenmerk56,
k57.waarde kenmerk57,
k58.waarde kenmerk58,
k59.waarde kenmerk59,
k60.waarde kenmerk60,
k61.waarde kenmerk61,
k62.waarde kenmerk62,
k63.waarde kenmerk63,
k64.waarde kenmerk64,
k65.waarde kenmerk65,
k66.waarde kenmerk66,
k67.waarde kenmerk67,
k68.waarde kenmerk68,
k69.waarde kenmerk69,
k70.waarde kenmerk70,
k71.waarde kenmerk71,
k72.waarde kenmerk72,
k73.waarde kenmerk73,
k74.waarde kenmerk74,
k75.waarde kenmerk75,
k76.waarde kenmerk76,
k77.waarde kenmerk77,
k78.waarde kenmerk78,
k79.waarde kenmerk79,
k80.waarde kenmerk80
FROM (SELECT v.* FROM mld_v_udr_melding v WHERE fclt_3d_discipline_key IN (2041, 2162, 2163)) x -- Applicatiebeheer/Infra (SN)/Infra (DT)
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
LEFT JOIN mk k31 ON x.melding_key = k31.melding_key AND k31.vnr = 31
LEFT JOIN mk k32 ON x.melding_key = k32.melding_key AND k32.vnr = 32
LEFT JOIN mk k33 ON x.melding_key = k33.melding_key AND k33.vnr = 33
LEFT JOIN mk k34 ON x.melding_key = k34.melding_key AND k34.vnr = 34
LEFT JOIN mk k35 ON x.melding_key = k35.melding_key AND k35.vnr = 35
LEFT JOIN mk k36 ON x.melding_key = k36.melding_key AND k36.vnr = 36
LEFT JOIN mk k37 ON x.melding_key = k37.melding_key AND k37.vnr = 37
LEFT JOIN mk k38 ON x.melding_key = k38.melding_key AND k38.vnr = 38
LEFT JOIN mk k39 ON x.melding_key = k39.melding_key AND k39.vnr = 39
LEFT JOIN mk k40 ON x.melding_key = k40.melding_key AND k40.vnr = 40
LEFT JOIN mk k41 ON x.melding_key = k41.melding_key AND k41.vnr = 41
LEFT JOIN mk k42 ON x.melding_key = k42.melding_key AND k42.vnr = 42
LEFT JOIN mk k43 ON x.melding_key = k43.melding_key AND k43.vnr = 43
LEFT JOIN mk k44 ON x.melding_key = k44.melding_key AND k44.vnr = 44
LEFT JOIN mk k45 ON x.melding_key = k45.melding_key AND k45.vnr = 45
LEFT JOIN mk k46 ON x.melding_key = k46.melding_key AND k46.vnr = 46
LEFT JOIN mk k47 ON x.melding_key = k47.melding_key AND k47.vnr = 47
LEFT JOIN mk k48 ON x.melding_key = k48.melding_key AND k48.vnr = 48
LEFT JOIN mk k49 ON x.melding_key = k49.melding_key AND k49.vnr = 49
LEFT JOIN mk k50 ON x.melding_key = k50.melding_key AND k50.vnr = 50
LEFT JOIN mk k51 ON x.melding_key = k51.melding_key AND k51.vnr = 51
LEFT JOIN mk k52 ON x.melding_key = k52.melding_key AND k52.vnr = 52
LEFT JOIN mk k53 ON x.melding_key = k53.melding_key AND k53.vnr = 53
LEFT JOIN mk k54 ON x.melding_key = k54.melding_key AND k54.vnr = 54
LEFT JOIN mk k55 ON x.melding_key = k55.melding_key AND k55.vnr = 55
LEFT JOIN mk k56 ON x.melding_key = k56.melding_key AND k56.vnr = 56
LEFT JOIN mk k57 ON x.melding_key = k57.melding_key AND k57.vnr = 57
LEFT JOIN mk k58 ON x.melding_key = k58.melding_key AND k58.vnr = 58
LEFT JOIN mk k59 ON x.melding_key = k59.melding_key AND k59.vnr = 59
LEFT JOIN mk k60 ON x.melding_key = k60.melding_key AND k60.vnr = 60
LEFT JOIN mk k61 ON x.melding_key = k61.melding_key AND k61.vnr = 61
LEFT JOIN mk k62 ON x.melding_key = k62.melding_key AND k62.vnr = 62
LEFT JOIN mk k63 ON x.melding_key = k63.melding_key AND k63.vnr = 63
LEFT JOIN mk k64 ON x.melding_key = k64.melding_key AND k64.vnr = 64
LEFT JOIN mk k65 ON x.melding_key = k65.melding_key AND k65.vnr = 65
LEFT JOIN mk k66 ON x.melding_key = k66.melding_key AND k66.vnr = 66
LEFT JOIN mk k67 ON x.melding_key = k67.melding_key AND k67.vnr = 67
LEFT JOIN mk k68 ON x.melding_key = k68.melding_key AND k68.vnr = 68
LEFT JOIN mk k69 ON x.melding_key = k69.melding_key AND k69.vnr = 69
LEFT JOIN mk k70 ON x.melding_key = k70.melding_key AND k70.vnr = 70
LEFT JOIN mk k71 ON x.melding_key = k71.melding_key AND k71.vnr = 71
LEFT JOIN mk k72 ON x.melding_key = k72.melding_key AND k72.vnr = 72
LEFT JOIN mk k73 ON x.melding_key = k73.melding_key AND k73.vnr = 73
LEFT JOIN mk k74 ON x.melding_key = k74.melding_key AND k74.vnr = 74
LEFT JOIN mk k75 ON x.melding_key = k75.melding_key AND k75.vnr = 75
LEFT JOIN mk k76 ON x.melding_key = k76.melding_key AND k76.vnr = 76
LEFT JOIN mk k77 ON x.melding_key = k77.melding_key AND k77.vnr = 77
LEFT JOIN mk k78 ON x.melding_key = k78.melding_key AND k78.vnr = 78
LEFT JOIN mk k79 ON x.melding_key = k79.melding_key AND k79.vnr = 79
LEFT JOIN mk k80 ON x.melding_key = k80.melding_key AND k80.vnr = 80;
-- HSLE#61425: Hoe lang hebben meldingen uit hsle_v_udr_mld_ab_infra-view bij
-- welk Behandelteam gelegen.
CREATE OR REPLACE VIEW hsle_v_udr_mld_ab_infra_bt
(
melding_key,
meldingnummer,
meldingstatus,
toegewezen_bt,
toegewezen_op,
werkuren,
werkduur
)
AS
WITH kantoortijden
AS (SELECT fac.safe_to_number (fac.getsetting ('fac_t_endofworkday')) - fac.safe_to_number (fac.getsetting ('fac_t_startofworkday')) uren
FROM DUAL),
x
AS (SELECT m.mld_melding_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
m.mld_melding_status,
t.fac_tracking_key,
'Nieuw' bt,
t.fac_tracking_datum op
FROM mld_melding m, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd, fac_tracking t
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_discipline_key IN (2041, 2162, 2163) -- Applicatiebeheer/Infra (SN)/Infra (DT)
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 43 -- MLDNEW
UNION ALL
SELECT m.mld_melding_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
m.mld_melding_status,
t.fac_tracking_key,
SUBSTR (
SUBSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'Behandelteam:')),
INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'Behandelteam:')),
' --> ')
+ 5),
1,
INSTR (
SUBSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms, 'Behandelteam:')),
INSTR (
SUBSTR (
t.fac_tracking_oms,
INSTR (t.fac_tracking_oms,
'Behandelteam:')),
' --> ')
+ 5)
|| CHR (10),
CHR (10))
- 1)
bt,
t.fac_tracking_datum op
FROM mld_melding m, mld_stdmelding sm, mld_discipline md, ins_srtdiscipline sd, fac_tracking t
WHERE m.mld_stdmelding_key = sm.mld_stdmelding_key
AND sm.mld_ins_discipline_key = md.ins_discipline_key
AND md.ins_discipline_key IN (2041, 2162, 2163) -- Applicatiebeheer/Infra (SN)/Infra (DT)
AND md.ins_srtdiscipline_key = sd.ins_srtdiscipline_key
AND m.mld_melding_key = t.fac_tracking_refkey
AND t.fac_srtnotificatie_key = 45 -- MLDUPD
AND INSTR (t.fac_tracking_oms, 'Behandelteam:') > 0
AND INSTR (SUBSTR (t.fac_tracking_oms, INSTR (t.fac_tracking_oms, 'Behandelteam:')), ' --> ') > 0)
SELECT mld_melding_key,
meldingnummer,
mld_melding_status,
bt toegewezen_bt,
op toegewezen_op,
ROUND (duur, 2) werkuren,
TO_CHAR (FLOOR (duur / kt.uren)) || 'D-' || TO_CHAR (FLOOR (ROUND (MOD (duur, kt.uren) * 60) / 60)) || 'U-' || TO_CHAR (ROUND (MOD (duur, 1) * 60)) || 'M'
werkduur
FROM kantoortijden kt,
(SELECT x.mld_melding_key,
x.meldingnummer,
x.mld_melding_status,
x.bt,
x.op,
--COALESCE (y.tot, fac.gettrackingdate ('MLDREJ', x.mld_melding_key), fac.gettrackingdate ('MLDAFM', x.mld_melding_key), SYSDATE)
-- tot,
fac.datumtijdnaaruitvoertijd (x.op, COALESCE (y.tot, fac.gettrackingdate ('MLDREJ', x.mld_melding_key), fac.gettrackingdate ('MLDAFM', x.mld_melding_key), SYSDATE), 'U').tijdsduur
duur
FROM x
LEFT JOIN
( SELECT cur.mld_melding_key, cur.fac_tracking_key, MIN (nxt.op) tot
FROM x cur, x nxt
WHERE cur.mld_melding_key = nxt.mld_melding_key
AND nxt.fac_tracking_key > cur.fac_tracking_key
GROUP BY cur.mld_melding_key, cur.fac_tracking_key) y
ON x.mld_melding_key = y.mld_melding_key
AND x.fac_tracking_key = y.fac_tracking_key);
-- HSLE#61163: Rapportage tbv. Steef Harlaar=beheerder deurbordjes/sleutels.
CREATE OR REPLACE VIEW hsle_v_rap_prs_wp_sleutel
(
prs_perslid_key,
medewerker,
email,
functie,
fte,
organisatie,
aant_wp,
locatie,
gebouw,
verdieping,
ruimte,
werkplek,
--leidinggevende,
inactief,
sleutelsoort,
een_of_meer,
aant_sl,
ins_deel_key,
sleutelid,
status,
opmerking,
borg,
borg_bedrag,
mld_melding_key,
meldingnr,
top_med_ind
)
AS
SELECT x.prs_perslid_key,
x.prs_perslid_naam_full medewerker,
x.prs_perslid_email email,
x.prs_srtperslid_omschrijving functie,
ROUND (x.prs_perslid_dienstverband / 100, 2) fte,
x.prs_afdeling_naam || '-' || x.prs_afdeling_omschrijving organisatie,
pw1.aantal aant_wp,
SUBSTR (pwg.prs_werkplek_aanduiding, 1, INSTR (pwg.prs_werkplek_aanduiding, '-') - 1) locatie,
pwg.alg_gebouw_code gebouw,
pwg.alg_verdieping_code verdieping,
pwg.alg_ruimte_nr ruimte,
pwg.prs_werkplek_aanduiding werkplek,
--'?' leidinggevende,
DECODE (INSTR (x.prs_perslid_naam, 'INACTIEF:'), 0, 'Nee', 'Ja') inactief,
d2.ins_srtdeel_omschrijving sleutelsoort,
DECODE (d1.aantal, NULL, NULL, 1, '1', '>1') een_of_meer,
d1.aantal sleutels,
d2.ins_deel_key,
d2.ins_deel_omschrijving sleutelid,
sts_ud.fac_usrdata_omschr status,
opm.ins_kenmerkdeel_waarde opmerking,
DECODE (SIGN (fac.safe_to_number (COALESCE (brg.ins_kenmerkdeel_waarde, '0'))), 0, 'Nee', 'Ja') borg,
fac.safe_to_number (COALESCE (brg.ins_kenmerkdeel_waarde, '0')) borg_bedrag,
fac.safe_to_number (SUBSTR (mnr.ins_kenmerkdeel_waarde, REGEXP_INSTR (mnr.ins_kenmerkdeel_waarde, '\d'))) mld_melding_key,
mnr.ins_kenmerkdeel_waarde meldingnr,
DECODE (COALESCE (ind.ins_kenmerkdeel_waarde, '0'), '0', 'Nee', 'Ja') top_med_ind
FROM (SELECT p.prs_perslid_key, p.prs_perslid_naam, p.prs_perslid_email, p.prs_perslid_dienstverband, p.prs_perslid_verwijder,
pf.prs_perslid_naam_full, sp.prs_srtperslid_omschrijving, a.prs_afdeling_naam, a.prs_afdeling_omschrijving
FROM prs_perslid p, prs_v_perslid_fullnames_all pf, prs_srtperslid sp, prs_v_afdeling_boom ab, prs_afdeling a
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
AND p.prs_afdeling_key = ab.prs_afdeling_key
AND ab.prs_afdeling_key = a.prs_afdeling_key) x -- Parkeren/Toegang
LEFT JOIN ( SELECT pw.prs_perslid_key, COUNT ( * ) aantal
FROM prs_perslidwerkplek pw, prs_werkplek wp
WHERE pw.prs_werkplek_key = wp.prs_werkplek_key
AND wp.prs_werkplek_virtueel = 0
GROUP BY pw.prs_perslid_key) pw1
ON x.prs_perslid_key = pw1.prs_perslid_key
LEFT JOIN (SELECT pw1.prs_perslid_key, wp1.prs_werkplek_key
FROM prs_perslidwerkplek pw1, prs_werkplek wp1
WHERE pw1.prs_werkplek_key = wp1.prs_werkplek_key
AND wp1.prs_werkplek_virtueel = 0
AND NOT EXISTS
(SELECT 1
FROM prs_perslidwerkplek pw2, prs_werkplek wp2
WHERE pw2.prs_werkplek_key = wp2.prs_werkplek_key
AND wp2.prs_werkplek_virtueel = 0
AND pw2.prs_perslid_key = pw1.prs_perslid_key
--AND pw2.prs_werkplek_key != pw1.prs_werkplek_key
AND COALESCE (pw2.prs_perslidwerkplek_volgnr, 10000 + pw2.prs_perslidwerkplek_key) <
COALESCE (pw1.prs_perslidwerkplek_volgnr, 10000 + pw1.prs_perslidwerkplek_key))) pw2
ON x.prs_perslid_key = pw2.prs_perslid_key
LEFT JOIN prs_v_perslidwerkplek_gegevens pwg
ON pw2.prs_werkplek_key = pwg.prs_werkplek_key
LEFT JOIN ( SELECT d.ins_alg_ruimte_key, COUNT ( * ) aantal
FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = 501 -- Toegang
GROUP BY d.ins_alg_ruimte_key) d1
ON x.prs_perslid_key = d1.ins_alg_ruimte_key
LEFT JOIN ( SELECT d.ins_alg_ruimte_key, d.ins_deel_key, d.ins_deel_omschrijving, sd.ins_srtdeel_omschrijving
FROM ins_v_aanwezigdeel d, ins_srtdeel sd, ins_srtgroep sg
WHERE d.ins_alg_ruimte_type = 'P'
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND sd.ins_srtgroep_key = sg.ins_srtgroep_key
AND sg.ins_discipline_key = 501) d2 -- Toegang
ON x.prs_perslid_key = d2.ins_alg_ruimte_key
LEFT JOIN ins_v_aanwezigkenmerkdeel sts -- 84/221=Status pas/sleutel
ON d2.ins_deel_key = sts.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key IN (84, 221) AND ins_kenmerk_key = sts.ins_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata sts_ud
ON fac.safe_to_number (sts.ins_kenmerkdeel_waarde) = sts_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel opm -- 83=Opmerking
ON d2.ins_deel_key = opm.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 83 AND ins_kenmerk_key = opm.ins_kenmerk_key)
LEFT JOIN ins_v_aanwezigkenmerkdeel brg -- 141=Betaalde borg
ON d2.ins_deel_key = brg.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 141 AND ins_kenmerk_key = brg.ins_kenmerk_key)
LEFT JOIN ins_v_aanwezigkenmerkdeel mnr -- 188=Meldingsnummer
ON d2.ins_deel_key = mnr.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 188 AND ins_kenmerk_key = mnr.ins_kenmerk_key)
LEFT JOIN ins_v_aanwezigkenmerkdeel ind -- 201=Topsport/medische indicatie
ON d2.ins_deel_key = ind.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 201 AND ins_kenmerk_key = ind.ins_kenmerk_key)
WHERE INSTR (LOWER (x.prs_perslid_email), '%@hsleiden.nl') > 0 OR pw1.aantal IS NOT NULL OR d1.aantal IS NOT NULL;
-- HSLE#59636: CUST04/CUST05-notijob naar nieuwe medewerker en BHV-er.
-- HSLE#78365: BHV-er voortaan Ruud de Leeuw (ipv. Ed van Oudheusden).
CREATE OR REPLACE VIEW hsle_v_rap_bezittingen
(
ins_deel_key,
extra_key, -- Moet zo heten!
gebruiker,
identificatie,
objectsoort,
beschrijving,
registratiedatum,
--verwijderdatum,
--tonen,
vervaldatum,
mdw_email,
ldg_email,
behandelaar -- Gewenst op notificatie, dus in rapportage (best listig)!
)
AS
SELECT d.ins_deel_key,
d.ins_alg_ruimte_key, -- Gebruiker
pf.prs_perslid_naam_friendly,
d.ins_deel_omschrijving,
sd.ins_srtdeel_omschrijving,
d.ins_deel_opmerking,
d.ins_deel_aanmaak,
--d.ins_deel_verwijder,
--DECODE (d.ins_deel_verwijder, NULL, DECODE (SIGN (ADD_MONTHS (d.ins_deel_vervaldatum, 1) - SYSDATE), -1, 0, 1), 0) tonen,
DECODE (SIGN (d.ins_deel_vervaldatum - SYSDATE), -1, d.ins_deel_vervaldatum, NULL) vervaldatum,
m2lb.mdw_perslid_email,
m2lb.ldg_perslid_email,
m2lb.behandelaar_naam_friendly
FROM ins_v_aanwezigdeel d, -- Niet verwijderde objecten!
prs_v_perslid_fullnames_all pf,
ins_srtdeel sd,
(SELECT DISTINCT
fac.safe_to_number (km.mld_kenmerkmelding_waarde) mdw_perslid_key,
pm.prs_perslid_email mdw_perslid_email,
pl.prs_perslid_email ldg_perslid_email,
pb.prs_perslid_naam_friendly behandelaar_naam_friendly
FROM fac_tracking t,
mld_melding m,
mld_v_aanwezigkenmerkmelding km,
mld_kenmerk k,
prs_perslid pm,
prs_perslid pl,
prs_v_perslid_fullnames_all pb
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE - 1) -- Gisteren afgemeld (heel sterk als >1 en anders DISTINCT?)!
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = 3461 -- Nieuwe medewerker
AND m.mld_melding_key = km.mld_melding_key
AND km.mld_kenmerk_key = k.mld_kenmerk_key
AND k.mld_srtkenmerk_key = 4321 -- Nieuwe medewerker
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pm.prs_perslid_key
AND pm.prs_perslid_key <> 15661 -- HSLE#71143: Geen CUST04/05 igv. _Extern!
AND m.prs_perslid_key_voor = pl.prs_perslid_key
AND t.prs_perslid_key = pb.prs_perslid_key) m2lb
WHERE d.ins_alg_ruimte_type = 'P' -- Alle P-objecten!
AND d.ins_alg_ruimte_key = pf.prs_perslid_key
AND COALESCE (d.ins_deel_verwijder, SYSDATE) >= TRUNC (SYSDATE - 1)
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND d.ins_alg_ruimte_key = m2lb.mdw_perslid_key(+);
CREATE OR REPLACE VIEW hsle_v_noti_bezittingen
(
code,
sender,
receiver,
text,
key,
xkey,
xsender,
xemail,
xmobile,
attachments
)
AS -- CUST04 naar nieuwe medewerker!
SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL,
NULL,
sn.fac_srtnotificatie_oms,
r.fac_usrrap_key,
v.extra_key,
NULL,
COALESCE (v.mdw_email, v.ldg_email),
NULL,
NULL
FROM hsle_v_rap_bezittingen v,
fac_usrrap r,
fac_srtnotificatie sn
WHERE v.behandelaar IS NOT NULL
AND UPPER (r.fac_usrrap_view_name) = 'HSLE_V_RAP_BEZITTINGEN'
AND sn.fac_srtnotificatie_code = 'CUST04'
AND BITAND (sn.fac_srtnotificatie_mode, 2) = 2
UNION ALL -- CUST05 naar BHV-er!
SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL,
NULL,
sn.fac_srtnotificatie_oms,
r.fac_usrrap_key,
v.extra_key,
NULL,
'leeuw.de.r@hsleiden.nl',
NULL,
NULL
FROM hsle_v_rap_bezittingen v,
fac_usrrap r,
fac_srtnotificatie sn
WHERE v.behandelaar IS NOT NULL
AND UPPER (r.fac_usrrap_view_name) = 'HSLE_V_RAP_BEZITTINGEN'
AND sn.fac_srtnotificatie_code = 'CUST05'
AND BITAND (sn.fac_srtnotificatie_mode, 2) = 2;
/*
SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL,
NULL,
sn.fac_srtnotificatie_oms,
r.fac_usrrap_key,
pm.prs_perslid_key extra_key,
NULL,
COALESCE (pm.prs_perslid_email, pl.prs_perslid_email),
NULL,
NULL
FROM fac_tracking t,
mld_melding m,
prs_perslid pl,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding km
WHERE EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 4281 AND mld_kenmerk_key = km.mld_kenmerk_key)) km,
prs_perslid pm,
fac_usrrap r,
fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = 3461 -- Nieuwe medewerker
AND m.prs_perslid_key_voor = pl.prs_perslid_key
AND m.mld_melding_key = km.mld_melding_key
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pm.prs_perslid_key
AND EXISTS
(SELECT 1
FROM hsle_v_rap_bezittingen
WHERE extra_key = pm.prs_perslid_key)
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE - 1) -- Gisteren afgemeld!
AND UPPER (r.fac_usrrap_view_name) = 'HSLE_V_RAP_BEZITTINGEN'
AND sn.fac_srtnotificatie_code = 'CUST04'
AND BITAND (sn.fac_srtnotificatie_mode, 2) = 2
UNION ALL -- CUST05 naar BHV-er!
SELECT DISTINCT
sn.fac_srtnotificatie_code,
NULL,
NULL,
sn.fac_srtnotificatie_oms,
r.fac_usrrap_key,
pm.prs_perslid_key extra_key,
NULL,
'oudheusden.van.e@hsleiden.nl',
NULL,
NULL
FROM fac_tracking t,
mld_melding m,
(SELECT *
FROM mld_v_aanwezigkenmerkmelding km
WHERE EXISTS (SELECT 1 FROM mld_kenmerk WHERE mld_srtkenmerk_key = 4281 AND mld_kenmerk_key = km.mld_kenmerk_key)) km,
prs_perslid pm,
fac_usrrap r,
fac_srtnotificatie sn
WHERE t.fac_srtnotificatie_key = 38 -- MLDAFM
AND t.fac_tracking_refkey = m.mld_melding_key
AND m.mld_stdmelding_key = 3461 -- Nieuwe medewerker
AND m.mld_melding_key = km.mld_melding_key
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = pm.prs_perslid_key
AND EXISTS
(SELECT 1
FROM hsle_v_rap_bezittingen
WHERE extra_key = pm.prs_perslid_key)
AND TRUNC (t.fac_tracking_datum) = TRUNC (SYSDATE - 1) -- Gisteren afgemeld!
AND UPPER (r.fac_usrrap_view_name) = 'HSLE_V_RAP_BEZITTINGEN'
AND sn.fac_srtnotificatie_code = 'CUST05'
AND BITAND (sn.fac_srtnotificatie_mode, 2) = 2;
*/
-- HSLE#76373: Uurlijkse CUST06-notificatie van reguliere RES-bon naar cateraar
-- na boeking op activiteit 90=Catering bestellen uit de
-- catalogi 130=Receptiearrangementen (verbruiksartikelen met keys
-- 2258+2259+2260+2261+2262+2326) en 131=Dinerbuffetten.
CREATE OR REPLACE VIEW HSLE_V_NOTI_CATERAAR
(
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,
'##KEY##',
TO_CHAR (rrr.res_reservering_key)
|| '/'
|| TO_CHAR (rrr.res_rsv_ruimte_volgnr)),
'##DESC##',
rrr.res_rsv_ruimte_omschrijving),
rrr.res_reservering_key,
rrr.res_rsv_ruimte_key,
NULL xsender,
'NL1209@compass-group.nl' xemail,
NULL xmobile,
NULL attachments
FROM fac_tracking t,
res_v_aanwezigrsv_ruimte rrr,
res_v_aanwezigrsv_artikel rra,
res_v_aanwezigartikel ra,
fac_srtnotificatie sn,
fac_notificatie_job nj
WHERE t.fac_srtnotificatie_key = 81 -- RESNEW
AND t.fac_tracking_refkey = rrr.res_rsv_ruimte_key
AND rrr.res_activiteit_key = 90
AND rrr.res_rsv_ruimte_key = rra.res_rsv_ruimte_key
AND rra.res_artikel_key = ra.res_artikel_key
AND ((ra.res_discipline_key = 130 AND ra.res_artikel_key IN (2258, 2259, 2260, 2261, 2262, 2326))
OR ra.res_discipline_key = 131)
AND sn.fac_srtnotificatie_code = 'CUST06'
AND nj.fac_notificatie_job_view = 'HSLE_V_NOTI_CATERAAR'
AND t.fac_tracking_datum > COALESCE (nj.fac_notificatie_job_lastrun, TRUNC (SYSDATE));
-- HSLE#62236: UDR-objecten inclusief e-mail eigenaar.
-- HSLE#63183: Toevoegen (specifieke) kenmerkkolommen.
CREATE OR REPLACE VIEW hsle_v_udr_ins_deel
(
deel_key,
discipline,
groep,
soort,
soortcode,
omschrijving,
plaatseigenaar,
plaatseigenaartype,
plaatsaanduiding,
eigenaar_key,
eigenaar,
eigenaar_mail,
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_ict,
status_sw,
faculteit,
managed,
gebruik,
afdeling,
locatie_opm,
hw_categorie,
sw_categorie,
merk,
type,
os,
leverancier,
ordernr,
afgevoerd_naar,
eigenaar2
)
AS
SELECT ii.ins_deel_key,
lcl.x ('ins_discipline_omschrijving',
id.ins_discipline_key,
id.ins_discipline_omschrijving),
lcl.x ('ins_srtgroep_omschrijving',
sg.ins_srtgroep_key,
sg.ins_srtgroep_omschrijving),
lcl.x ('ins_srtdeel_omschrijving',
sd.ins_srtdeel_key,
sd.ins_srtdeel_omschrijving),
sd.ins_srtdeel_code,
ii.ins_deel_omschrijving,
COALESCE (ii.plaats, ii.eigenaar),
ii.ins_alg_ruimte_type,
ii.plaats,
ii.eigenaar_key,
ii.eigenaar,
peig.prs_perslid_email,
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 (sd.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,
pfbeh.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,
si_ud.fac_usrdata_omschr status_ict,
ss_ud.fac_usrdata_omschr status_sw,
fac_ud.fac_usrdata_omschr faculteit,
man_ud.fac_usrdata_omschr managed,
geb_ud.fac_usrdata_omschr gebruik,
afd_ud.fac_usrdata_omschr afdeling,
lo.ins_kenmerkdeel_waarde locatie_opm,
COALESCE (hc1_ud.fac_usrdata_omschr, hc2_ud.fac_usrdata_omschr) hw_categorie,
COALESCE (sc1_ud.fac_usrdata_omschr, sc2_ud.fac_usrdata_omschr) sw_categorie,
COALESCE (mrk1.ins_kenmerkdeel_waarde, mrk2.ins_kenmerkdeel_waarde) merk,
COALESCE (typ1.ins_kenmerkdeel_waarde, typ2.ins_kenmerkdeel_waarde) type,
COALESCE (os1_ud.fac_usrdata_omschr, os2_ud.fac_usrdata_omschr) os,
lev.ins_kenmerkdeel_waarde leverancier,
onr.ins_kenmerkdeel_waarde ordernr,
an_ud.fac_usrdata_omschr afgevoerd_naar,
eig_ud.fac_usrdata_omschr eigenaar2
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,
NULL eigenaar_key,
a.prs_afdeling_omschrijving eigenaar,
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 a
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 = a.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_key eigenaar_key,
pf.prs_perslid_naam_full eigenaar,
i.ins_discipline_key,
p.prs_afdeling_key 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_perslid p,
prs_v_perslid_fullnames_all pf
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 i.ins_alg_ruimte_type = 'P'
AND p.prs_perslid_key = pf.prs_perslid_key
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,
NULL eigenaar_key,
c.prs_contactpersoon_naam eigenaar,
NULL ins_discipline_key,
NULL 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_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 plaats,
i.ins_deel_opmerking,
i.ins_alg_ruimte_type,
r.alg_regio_omschrijving,
d.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_key,
NULL eigenaar,
i.ins_discipline_key,
NULL ins_alg_ruimte_key,
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,
(SELECT res_deel_key, res_ins_deel_key, res_deel_opmerking res_deel_opmerking
FROM res_deel
WHERE res_deel_verwijder IS NULL) rd,
ins_v_alg_overzicht o,
alg_locatie l,
alg_district d,
alg_regio r
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 = o.alg_onroerendgoed_keys
AND i.ins_alg_ruimte_type = o.alg_onroerendgoed_type
AND i.ins_alg_ruimte_type IN ('R', 'W', 'T')
AND i.ins_alg_locatie_key = o.alg_locatie_key
AND i.ins_alg_locatie_key = l.alg_locatie_key
AND l.alg_district_key = d.alg_district_key
AND d.alg_regio_key = r.alg_regio_key) ii
LEFT JOIN ins_srtdeel sd
ON ii.ins_srtdeel_key = sd.ins_srtdeel_key
LEFT JOIN ins_srtgroep sg
ON sd.ins_srtgroep_key = sg.ins_srtgroep_key
LEFT JOIN ins_discipline id
ON sg.ins_discipline_key = id.ins_discipline_key
LEFT JOIN prs_v_perslid_fullnames pfbeh
ON ii.prs_perslid_key_beh = pfbeh.prs_perslid_key
LEFT JOIN prs_perslid peig
ON ii.eigenaar_key = peig.prs_perslid_key
LEFT JOIN ins_v_aanwezigkenmerkdeel si -- 60=Status ICT
ON ii.ins_deel_key = si.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 60 AND ins_kenmerk_key = si.ins_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata si_ud
ON fac.safe_to_number (si.ins_kenmerkdeel_waarde) = si_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel ss -- 461=Status software (1 waarde)
ON ii.ins_deel_key = ss.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 461 AND ins_kenmerk_key = ss.ins_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata ss_ud
ON fac.safe_to_number (ss.ins_kenmerkdeel_waarde) = ss_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel fac -- 63=Faculteit
ON ii.ins_deel_key = fac.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 63 AND ins_kenmerk_key = fac.ins_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata fac_ud
ON fac.safe_to_number (fac.ins_kenmerkdeel_waarde) = fac_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel man -- 62=Managed
ON ii.ins_deel_key = man.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 62 AND ins_kenmerk_key = man.ins_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata man_ud
ON fac.safe_to_number (man.ins_kenmerkdeel_waarde) = man_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel geb -- 61=Gebruik
ON ii.ins_deel_key = geb.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 61 AND ins_kenmerk_key = geb.ins_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata geb_ud
ON fac.safe_to_number (geb.ins_kenmerkdeel_waarde) = geb_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel afd -- 501=Afdeling
ON ii.ins_deel_key = afd.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 501 AND ins_kenmerk_key = afd.ins_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata afd_ud
ON fac.safe_to_number (afd.ins_kenmerkdeel_waarde) = afd_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel lo -- 65=Locatie-opmerking
ON ii.ins_deel_key = lo.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 65 AND ins_kenmerk_key = lo.ins_kenmerk_key)
LEFT JOIN ins_v_aanwezigkenmerkdeel hc1 -- 36=Harware categorie
ON ii.ins_deel_key = hc1.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 36 AND ins_kenmerk_key = hc1.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'D')
LEFT JOIN fac_v_aanwezigusrdata hc1_ud
ON fac.safe_to_number (hc1.ins_kenmerkdeel_waarde) = hc1_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel hc2 -- 36=Harware categorie
ON ii.ins_srtdeel_key = hc2.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 36 AND ins_kenmerk_key = hc2.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'S')
LEFT JOIN fac_v_aanwezigusrdata hc2_ud
ON fac.safe_to_number (hc2.ins_kenmerkdeel_waarde) = hc2_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel sc1 -- 441=Software categorie (1 waarde)
ON ii.ins_deel_key = sc1.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 441 AND ins_kenmerk_key = sc1.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'D')
LEFT JOIN fac_v_aanwezigusrdata sc1_ud
ON fac.safe_to_number (sc1.ins_kenmerkdeel_waarde) = sc1_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel sc2 -- 441=Software categorie
ON ii.ins_srtdeel_key = sc2.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 441 AND ins_kenmerk_key = sc2.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'S')
LEFT JOIN fac_v_aanwezigusrdata sc2_ud
ON fac.safe_to_number (sc2.ins_kenmerkdeel_waarde) = sc2_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel mrk1 -- 1=Merk
ON ii.ins_deel_key = mrk1.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 1 AND ins_kenmerk_key = mrk1.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'D')
LEFT JOIN ins_v_aanwezigkenmerkdeel mrk2 -- 1=Merk
ON ii.ins_srtdeel_key = mrk2.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 1 AND ins_kenmerk_key = mrk2.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'S')
LEFT JOIN ins_v_aanwezigkenmerkdeel typ1 -- 2=Type
ON ii.ins_deel_key = typ1.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 2 AND ins_kenmerk_key = typ1.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'D')
LEFT JOIN ins_v_aanwezigkenmerkdeel typ2 -- 2=Type
ON ii.ins_srtdeel_key = typ2.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 2 AND ins_kenmerk_key = typ2.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'S')
LEFT JOIN ins_v_aanwezigkenmerkdeel os1 -- 37=OS
ON ii.ins_deel_key = os1.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 37 AND ins_kenmerk_key = os1.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'D')
LEFT JOIN fac_v_aanwezigusrdata os1_ud
ON fac.safe_to_number (os1.ins_kenmerkdeel_waarde) = os1_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel os2 -- 37=OS
ON ii.ins_srtdeel_key = os2.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 37 AND ins_kenmerk_key = os2.ins_kenmerk_key AND ins_kenmerk_bewerkniveau = 'S')
LEFT JOIN fac_v_aanwezigusrdata os2_ud
ON fac.safe_to_number (os2.ins_kenmerkdeel_waarde) = os2_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel lev -- 20=Leverancier (0 waarde)
ON ii.ins_deel_key = lev.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 20 AND ins_kenmerk_key = lev.ins_kenmerk_key)
LEFT JOIN ins_v_aanwezigkenmerkdeel onr -- 50=Ordernummer
ON ii.ins_deel_key = onr.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 50 AND ins_kenmerk_key = onr.ins_kenmerk_key)
LEFT JOIN ins_v_aanwezigkenmerkdeel an -- 681=Afgevoerd naar
ON ii.ins_deel_key = an.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 681 AND ins_kenmerk_key = an.ins_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata an_ud
ON fac.safe_to_number (an.ins_kenmerkdeel_waarde) = an_ud.fac_usrdata_key
LEFT JOIN ins_v_aanwezigkenmerkdeel eig -- 58=Eigenaar
ON ii.ins_deel_key = eig.ins_deel_key
AND EXISTS (SELECT 1 FROM ins_kenmerk WHERE ins_srtkenmerk_key = 58 AND ins_kenmerk_key = eig.ins_kenmerk_key)
LEFT JOIN fac_v_aanwezigusrdata eig_ud
ON fac.safe_to_number (eig.ins_kenmerkdeel_waarde) = eig_ud.fac_usrdata_key;
-- HSLE#62534: Alle op te roepen bezoekers, dat is:
-- * bezoeker is binnen, maar nog niet opgeroepen (en nog niet
-- vertrokken)
-- * bezoeker is aangemeld voor vandaag
-- * bij de afspraak hoort een oproep-actie (geen ophaal-actie)
-- Filtering via API kan op gebouw, verdieping en wachtzone(groep), dus die
-- ook ophalen.
CREATE OR REPLACE VIEW hsle_v_api_bez_oproep
AS
SELECT TO_CHAR (b.bez_bezoekers_oproep, 'yyyy-mm-dd hh24:mi:ss') oproep_tijd,
COALESCE (rr.res_ruimte_friendlyname, rr.res_ruimte_nr) ruimtenr,
COALESCE (rr.res_ruimte_groep, ' ') groep,
b.bez_bezoekers_pasnr oproep_nummer,
b.bez_bezoekers_key bezoeker_key,
g.alg_gebouw_code gebouw_code,
g.alg_gebouw_key gebouw_key,
v.alg_verdieping_code verdieping_code,
v.alg_verdieping_key verdieping_key
FROM res_rsv_ruimte rrr,
bez_afspraak a,
bez_actie ac,
bez_bezoekers b,
res_ruimte_opstelling ro,
res_ruimte rr,
res_alg_ruimte rar,
alg_ruimte r,
alg_verdieping v,
alg_gebouw g
WHERE rrr.res_rsv_ruimte_van BETWEEN TRUNC (SYSDATE) AND TRUNC (SYSDATE) + 1
AND rrr.res_rsv_ruimte_key = a.res_rsv_ruimte_key
AND a.bez_actie_key = ac.bez_actie_key
AND BITAND (ac.bez_actie_flags, 1) = 1
AND a.bez_afspraak_key = b.bez_afspraak_key
AND b.bez_bezoekers_done IS NOT NULL
AND b.bez_bezoekers_oproep IS NOT NULL
AND b.bez_bezoekers_out IS NULL
AND b.bez_bezoekers_pasnr IS NOT NULL
AND rrr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
AND ro.res_ruimte_key = rr.res_ruimte_key
AND rr.res_ruimte_key = rar.res_ruimte_key
AND rar.alg_ruimte_key = r.alg_ruimte_key
AND r.alg_ruimte_verwijder IS NULL
AND r.alg_verdieping_key = v.alg_verdieping_key
AND v.alg_gebouw_key = g.alg_gebouw_key;
CREATE OR REPLACE VIEW hsle_v_rap_perslid
AS
SELECT DISTINCT
p.prs_perslid_key,
pf.prs_perslid_naam_full,
p.prs_perslid_naam,
p.prs_perslid_voornaam,
p.prs_perslid_nr,
a.prs_afdeling_naam organisatie,
p.prs_perslid_telefoonnr telefoon,
sp.prs_srtperslid_omschrijving functie,
p.prs_perslid_upper,
wp.alg_ruimte_aanduiding || DECODE (hwp.aantal, 1, '', '...')
alg_ruimte_aanduiding,
wp.prs_werkplek_aanduiding || DECODE (hwp.aantal, 1, '', '...')
prs_werkplek_aanduiding,
l.alg_locatie_omschrijving,
p.prs_perslid_mobiel,
p.prs_perslid_email,
p.prs_perslid_titel,
fp.fac_profiel_omschrijving,
kp.prs_kostenplaats_nr
FROM prs_v_aanwezigperslid p,
prs_v_perslid_fullnames pf,
prs_srtperslid sp,
--prs_v_afdeling_familie bm,
prs_afdeling a,
prs_kostenplaats kp,
prs_v_hoofdperslidwerkplek hwp,
prs_v_werkplek_gegevens wp,
alg_locatie l,
fac_profiel fp
WHERE p.prs_perslid_key = pf.prs_perslid_key
AND p.prs_srtperslid_key = sp.prs_srtperslid_key
--AND p.prs_afdeling_key = bm.prs_afdeling_key
AND p.prs_afdeling_key = a.prs_afdeling_key
AND a.prs_kostenplaats_key = kp.prs_kostenplaats_key(+)
AND p.prs_perslid_key = hwp.prs_perslid_key(+)
AND hwp.prs_werkplek_key = wp.prs_werkplek_key(+)
AND wp.alg_locatie_key = l.alg_locatie_key(+)
AND p.fac_profiel_key = fp.fac_profiel_key(+);
-- HSLE#65841: Meldbron van alle meldingen!
CREATE OR REPLACE VIEW hsle_v_udr_mld_meldbron
AS
SELECT m.mld_melding_key,
sd.ins_srtdiscipline_omschrijving vakgroeptype,
md.ins_discipline_omschrijving vakgroep,
sm.mld_stdmelding_omschrijving meldingsoort,
mb.meldbron,
bt.ins_discipline_omschrijving behandelteam,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnummer,
m.mld_melding_datum meldingsdatum,
ms.mld_statuses_key,
ms.mld_statuses_omschrijving melding_status
FROM mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
mld_statuses ms,
(SELECT km.mld_melding_key, ud.fac_usrdata_omschr meldbron
FROM mld_v_aanwezigkenmerkmelding km, fac_usrdata ud
WHERE EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_kenmerk_verwijder IS NULL
AND mld_srtkenmerk_key = 2401 -- Meldbron
AND mld_kenmerk_key = km.mld_kenmerk_key)
AND fac.safe_to_number (km.mld_kenmerkmelding_waarde) = ud.fac_usrdata_key) mb,
mld_discipline bt
WHERE 1 = 1 --m.mld_melding_datum > TRUNC (ADD_MONTHS (SYSDATE, -24), '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_status = ms.mld_statuses_key
AND m.mld_melding_key = mb.mld_melding_key(+)
AND m.mld_ins_discipline_key = bt.ins_discipline_key(+);
-- HSLE#68812: Bronview voor alle meldingen incl. kenmerken onder Vakgroeptype
-- 61=Onderwijs!
CREATE OR REPLACE VIEW HSLE_V_UDR_MLD_ONDERWIJS
(
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,
BRON, -- MELDBRON
--VAKGROEPTYPE, --SOORTMELDING
--FCLT_3D_DISCIPLINE_KEY,
VAKGROEP, --PRODUCTGROEP,
MELDINGSOORT, --SUBPRODUCTGROEP,
--BEHANDELGROEP,
BEHANDELAAR,
BEHANDELAAR_KEY,
MELDINGGROEP, --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,
OMSCHRIJVING,
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,
FACULTEIT,
OPLEIDING,
INDIV_GROEP,
INDIV_EXPRG,
AANT_PROG, -- AANTAL PROGRAMMA'S
AANT_STUD, -- AANTAL STUDENTEN
AANT_CURS, -- AANTAL CURSUSSEN
AANT_DEVA, -- AANTAL DE-VASTSTELLINGEN
MAIL_CC,
KLAS,
CODE_NAAM_TOETS,
DATUM_TOETS,
TIJD_TOETS,
SPECIFIEK_LOK,
LOK_MAX_15,
BUREAUSTOEL,
LAPTOP,
TOETS_OP_LAPTOP,
LOKAAL_VERLATEN,
OVERIG,
OVERIG_OMS,
TOILETBEZOEK,
WOORDENBOEK,
KURZWEIL,
KOPTEL_READSP,
EXTRA_INFO
)
AS
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,
fac_ud.fac_usrdata_omschr faculteit,
opl_ud.fac_usrdata_omschr opleiding,
igr_ud.fac_usrdata_omschr indiv_groep,
iep_ud.fac_usrdata_omschr indiv_exprg,
apr.mld_kenmerkmelding_waarde aant_prog, -- Aantal programma's
ast.mld_kenmerkmelding_waarde aant_stud, -- Aantal studenten
acu.mld_kenmerkmelding_waarde aant_curs, -- Aantal cursussen
adv.mld_kenmerkmelding_waarde aant_deva, -- Aantal de-vaststellingen
cc.mld_kenmerkmelding_waarde mail_cc,
kls.mld_kenmerkmelding_waarde klas,
cnt.mld_kenmerkmelding_waarde code_naam_toets,
dts.mld_kenmerkmelding_waarde datum_toets,
tts.mld_kenmerkmelding_waarde tijd_toets,
spl_ud.fac_usrdata_omschr specifiek_lok,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a01.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) lok_max_15,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a02.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) bureaustoel,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a04.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) laptop,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a06.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) toets_op_laptop,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a07.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) lokaal_verlaten,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a08.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) overig,
a08t.mld_kenmerkmelding_waarde overig_oms,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a09.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) toiletbezoek,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a11.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) woordenboek,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a12.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) kurzweil,
DECODE (x.fclt_3d_discipline_key, 2721, DECODE (a13.mld_kenmerkmelding_waarde, '1', 'Ja', 'Nee'), NULL) koptel_readsp,
ein.mld_kenmerkmelding_waarde extra_info
FROM (SELECT v.*
FROM mld_v_udr_melding v
WHERE EXISTS
(SELECT 1
FROM mld_discipline
WHERE ins_srtdiscipline_key = 61 -- Onderwijs
AND ins_discipline_key = v.fclt_3d_discipline_key)) x
LEFT JOIN mld_v_aanwezigkenmerkmelding fac
ON x.melding_key = fac.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 4681 -- Faculteit (SVA)
AND mld_kenmerk_key = fac.mld_kenmerk_key)
LEFT JOIN fac_usrdata fac_ud
ON fac.safe_to_number (fac.mld_kenmerkmelding_waarde) =
fac_ud.fac_usrdata_key
LEFT JOIN mld_v_aanwezigkenmerkmelding opl
ON x.melding_key = opl.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 4701 -- Opleiding (SVA)
AND mld_kenmerk_key = opl.mld_kenmerk_key)
LEFT JOIN fac_usrdata opl_ud
ON fac.safe_to_number (opl.mld_kenmerkmelding_waarde) =
opl_ud.fac_usrdata_key
LEFT JOIN mld_v_aanwezigkenmerkmelding igr
ON x.melding_key = igr.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 4881 -- Individueel/groep
AND mld_kenmerk_key = igr.mld_kenmerk_key)
LEFT JOIN fac_usrdata igr_ud
ON fac.safe_to_number (igr.mld_kenmerkmelding_waarde) =
igr_ud.fac_usrdata_key
LEFT JOIN mld_v_aanwezigkenmerkmelding iep
ON x.melding_key = iep.mld_melding_key
AND EXISTS
(SELECT 1
FROM mld_kenmerk
WHERE mld_srtkenmerk_key = 4901 -- Individueel/examenprogramma niveau
AND mld_kenmerk_key = iep.mld_kenmerk_key)
LEFT JOIN fac_usrdata iep_ud
ON fac.safe_to_number (iep.mld_kenmerkmelding_waarde) =
iep_ud.fac_usrdata_key
LEFT JOIN mld_v_aanwezigkenmerkmelding apr
ON x.melding_key = apr.mld_melding_key
AND apr.mld_kenmerk_key = 8323 -- Aantal programma's
LEFT JOIN mld_v_aanwezigkenmerkmelding ast
ON x.melding_key = ast.mld_melding_key
AND ast.mld_kenmerk_key = 8344 -- Aantal studenten
LEFT JOIN mld_v_aanwezigkenmerkmelding acu
ON x.melding_key = acu.mld_melding_key
AND acu.mld_kenmerk_key = 8301 -- Aantal cursussen
LEFT JOIN mld_v_aanwezigkenmerkmelding adv
ON x.melding_key = adv.mld_melding_key
AND adv.mld_kenmerk_key = 8201 -- Aantal de-vaststellingen
LEFT JOIN mld_v_aanwezigkenmerkmelding cc
ON x.melding_key = cc.mld_melding_key
AND cc.mld_kenmerk_key = 8081 -- Mail CC
LEFT JOIN mld_v_aanwezigkenmerkmelding kls
ON x.melding_key = kls.mld_melding_key
AND kls.mld_kenmerk_key = 8483 -- Klas
LEFT JOIN mld_v_aanwezigkenmerkmelding cnt
ON x.melding_key = cnt.mld_melding_key
AND cnt.mld_kenmerk_key = 8484 -- Code en naam toets
LEFT JOIN mld_v_aanwezigkenmerkmelding dts
ON x.melding_key = dts.mld_melding_key
AND dts.mld_kenmerk_key = 8485 -- Datum toets
LEFT JOIN mld_v_aanwezigkenmerkmelding tts
ON x.melding_key = tts.mld_melding_key
AND tts.mld_kenmerk_key = 8486 -- Starttijd van de toets
LEFT JOIN mld_v_aanwezigkenmerkmelding spl
ON x.melding_key = spl.mld_melding_key
AND spl.mld_kenmerk_key = 8487 -- Ingedeeld in een specifiek lokaal (ja/nee)
LEFT JOIN fac_usrdata spl_ud
ON fac.safe_to_number (spl.mld_kenmerkmelding_waarde) = spl_ud.fac_usrdata_key
LEFT JOIN mld_v_aanwezigkenmerkmelding a01
ON x.melding_key = a01.mld_melding_key
AND a01.mld_kenmerk_key = 8801 -- A01 - Toets in lokaal met maximaal 15 pers.
LEFT JOIN mld_v_aanwezigkenmerkmelding a02
ON x.melding_key = a02.mld_melding_key
AND a02.mld_kenmerk_key = 8821 -- A02 - Bureaustoel
LEFT JOIN mld_v_aanwezigkenmerkmelding a04
ON x.melding_key = a04.mld_melding_key
AND a04.mld_kenmerk_key = 8822 -- A04 - Laptop
LEFT JOIN mld_v_aanwezigkenmerkmelding a06
ON x.melding_key = a06.mld_melding_key
AND a06.mld_kenmerk_key = 8824 -- A06 - Toets op laptop
LEFT JOIN mld_v_aanwezigkenmerkmelding a07
ON x.melding_key = a07.mld_melding_key
AND a07.mld_kenmerk_key = 8825 -- A07 - Lokaal verlaten
LEFT JOIN mld_v_aanwezigkenmerkmelding a08
ON x.melding_key = a08.mld_melding_key
AND a08.mld_kenmerk_key = 8826 -- A08 - Overig
LEFT JOIN mld_v_aanwezigkenmerkmelding a08t
ON x.melding_key = a08t.mld_melding_key
AND a08t.mld_kenmerk_key = 8827 -- A08 - Overig toelichting
LEFT JOIN mld_v_aanwezigkenmerkmelding a09
ON x.melding_key = a09.mld_melding_key
AND a09.mld_kenmerk_key = 8828 -- A09 - Toiletbezoek
LEFT JOIN mld_v_aanwezigkenmerkmelding a11
ON x.melding_key = a11.mld_melding_key
AND a11.mld_kenmerk_key = 8829 -- A11 - Woordenboek
LEFT JOIN mld_v_aanwezigkenmerkmelding a12
ON x.melding_key = a12.mld_melding_key
AND a12.mld_kenmerk_key = 8842 -- A12 - Kurzweil
LEFT JOIN mld_v_aanwezigkenmerkmelding a13
ON x.melding_key = a13.mld_melding_key
AND a13.mld_kenmerk_key = 8843 -- A13 - Koptelefoon voor Readspeaker
LEFT JOIN mld_v_aanwezigkenmerkmelding ein
ON x.melding_key = ein.mld_melding_key
AND ein.mld_kenmerk_key = 8845 -- Extra informatie (optioneel)
;
-- HSLE#64680: Uitdienstmeldingen x Objecten doorklikbaar naar Object.
CREATE OR REPLACE VIEW HSLE_V_RAP_UITDIENST2OBJECT
(
mld_melding_key,
meldingnummer,
meldingsoort,
uit_dienst_per,
prs_perslid_key,
medewerker,
ins_deel_key,
identificatie,
ins_srtdeel_key,
objectsoort,
beschrijving,
registratiedatum,
vervaldatum,
ingenomen_op,
ingenomen_door,
genotificeerd_op -- Notificatie naar uittreder 2 maanden voor uitdienst?
)
AS
SELECT m.mld_melding_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnr,
sm.mld_stdmelding_omschrijving,
TRUNC (m.mld_melding_einddatum),
pfm.prs_perslid_key,
pfm.prs_perslid_naam_full ex_mdw,
d.ins_deel_key,
d.ins_deel_omschrijving,
sd.ins_srtdeel_key,
sd.ins_srtdeel_omschrijving,
d.ins_deel_opmerking,
d.ins_deel_aanmaak,
DECODE (SIGN (d.ins_deel_vervaldatum - SYSDATE), -1, d.ins_deel_vervaldatum, NULL) vervaldatum,
NULL ingenomen_op,
NULL ingenomen_door,
NULL genotificeerd_op
FROM mld_melding m,
prs_v_perslid_fullnames_all pfm, -- Melding-persoon
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
ins_v_aanwezigdeel d,
ins_srtdeel sd
WHERE m.mld_stdmelding_key = 3481 -- HRM/Einde dienstverband.
AND m.mld_melding_status >= 4 -- Vanaf In behandeling
AND m.prs_perslid_key_voor <> 15661 -- _Extern
AND m.prs_perslid_key_voor = pfm.prs_perslid_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_voor = d.ins_alg_ruimte_key
AND d.ins_alg_ruimte_type = 'P'
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
UNION -- Matchen persoon uit laatste INSOUT-tracking (garantie tot de deur)!
SELECT m.mld_melding_key,
sd.ins_srtdiscipline_prefix || TO_CHAR (m.mld_melding_key) meldingnr,
sm.mld_stdmelding_omschrijving,
TRUNC (m.mld_melding_einddatum),
pfm.prs_perslid_key,
pfm.prs_perslid_naam_full ex_mdw,
d.ins_deel_key,
d.ins_deel_omschrijving,
sd.ins_srtdeel_key,
sd.ins_srtdeel_omschrijving,
d.ins_deel_opmerking,
d.ins_deel_aanmaak,
DECODE (SIGN (d.ins_deel_vervaldatum - SYSDATE), -1, d.ins_deel_vervaldatum, NULL) vervaldatum,
tinn.fac_tracking_datum ingenomen_op,
pft.prs_perslid_naam_full ingenomen_door,
NULL genotificeerd_op
FROM fac_tracking tinn,
prs_v_perslid_fullnames_all pft, -- Tracking-persoon
(SELECT t.fac_tracking_refkey, -- Laatst uitgegeven aan
t.fac_tracking_oms
FROM fac_tracking t
WHERE t.fac_srtnotificatie_key = 99 -- INSOUT
AND NOT EXISTS
(SELECT 1
FROM fac_tracking
WHERE fac_srtnotificatie_key = 99 -- INSOUT
AND fac_tracking_refkey = t.fac_tracking_refkey
AND fac_tracking_key > t.fac_tracking_key)) tout,
prs_v_perslid_fullnames_all pfm, -- Melding-persoon
mld_melding m,
mld_stdmelding sm,
mld_discipline md,
ins_srtdiscipline sd,
ins_v_aanwezigdeel d,
ins_srtdeel sd
WHERE tinn.fac_srtnotificatie_key = 100 -- INSINN
AND tinn.prs_perslid_key = pft.prs_perslid_key
AND tinn.fac_tracking_refkey = tout.fac_tracking_refkey
AND INSTR (tout.fac_tracking_oms, REPLACE (pfm.prs_perslid_naam_full, 'INACTIEF:', '')) > 0
AND pfm.prs_perslid_key = m.prs_perslid_key_voor
AND m.mld_stdmelding_key = 3481 -- HRM/Einde dienstverband.
AND m.mld_melding_status >= 4 -- Vanaf In behandeling
AND m.prs_perslid_key_voor <> 15661 -- _Extern
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 tinn.fac_tracking_refkey = d.ins_deel_key
AND d.ins_srtdeel_key = sd.ins_srtdeel_key
AND tinn.fac_tracking_datum > m.mld_melding_datum -- Alleen als Inname > Uitdienst-melding?
;
------ 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