2983 lines
123 KiB
SQL
2983 lines
123 KiB
SQL
--
|
||
-- $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;
|
||
WHENEVER SQLERROR EXIT;
|
||
SELECT adm.scriptspoolfile('&dbuser', '&thisfile') AS fcltlogfile FROM DUAL;
|
||
WHENEVER SQLERROR CONTINUE;
|
||
SPOOL &fcltlogfile
|
||
SET DEFINE OFF
|
||
|
||
------ payload begin ------
|
||
|
||
--
|
||
-- 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 --HSLE#52416: p.prs_perslid_email LIKE '%@student.hsleiden.nl%'
|
||
--HSLE#57025: p.prs_perslid_nr IS NOT NULL
|
||
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;
|
||
|
||
-- 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_kenmerkmelding km, fac_usrdata ud
|
||
WHERE km.mld_kenmerk_key = 248
|
||
AND km.mld_melding_key = m.melding_key
|
||
AND TO_CHAR (ud.FAC_USRDATA_KEY) =
|
||
mld_kenmerkmelding_waarde)
|
||
waarde
|
||
FROM ins_v_udr_deel d, mld_v_udr_melding m, mld_melding_object mo
|
||
WHERE mo.mld_melding_key = m.melding_key
|
||
AND mo.ins_deel_key = d.deel_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);
|
||
|
||
sender prs_perslid.prs_perslid_key%TYPE;
|
||
kostenplaats prs_afdeling.prs_kostenplaats_key%TYPE;
|
||
v_mld_key_uit_subject mld_melding.mld_melding_key%TYPE;
|
||
v_mldkey mld_melding.mld_melding_key%TYPE;
|
||
defaultstdmelding fac_setting.fac_setting_default%TYPE;
|
||
kkey mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
v_mailadres_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
v_meldbron_kenmerk_key mld_kenmerk.mld_kenmerk_key%TYPE;
|
||
|
||
v_from VARCHAR2 (1000) := '';
|
||
v_voor_at VARCHAR2 (1000) := '';
|
||
v_na_at VARCHAR2 (1000) := '';
|
||
|
||
subject_regexp fac_setting.fac_setting_default%TYPE;
|
||
v_behandelaar_key mld_melding.mld_melding_behandelaar_key%TYPE;
|
||
v_mldnum VARCHAR2 (4000);
|
||
v_srtdisc VARCHAR2 (4000);
|
||
v_mldprefix VARCHAR2 (10);
|
||
--v_flag_on_fenote NUMBER (10);
|
||
v_flag_on_bonote NUMBER (10);
|
||
v_mld_meldbron_key NUMBER (10);
|
||
l_body VARCHAR2 (4000);
|
||
l_vantekst VARCHAR2 (100);
|
||
l_van_pos NUMBER (10);
|
||
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 naar mld_stdmelding_key=191 (stdmelding 'Social Media' onder vakgroep '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 automatisch verwerken in FCL tot stdmelding 'Mailmelding' (key=1241) onder de vakgroep 'Studentzaken' (key=98)
|
||
defaultstdmelding := '1241';
|
||
v_mld_meldbron_key := 4;
|
||
ELSE
|
||
IF (UPPER (pto) = UPPER ('CJXaYlt@hsle.facilitor.nl'))
|
||
THEN
|
||
-- HSLE#38876: Toevoegen Receptie@hsleiden.nl (vervolg op HSLE#37339)
|
||
defaultstdmelding := '1701';
|
||
v_mld_meldbron_key := 4;
|
||
ELSE
|
||
-- Mailmelding (onder vakgroep 'Mailmelding') met mld_stdmelding_key=161, deze staat komt uit 'defaultmelding'-setting
|
||
defaultstdmelding := fac.getsetting ('defaultstdmelding');
|
||
v_mld_meldbron_key := 4;
|
||
END IF;
|
||
END IF;
|
||
END IF;
|
||
|
||
-- HSLE#57042: Als er 'SRS=' voorkomt in pfrom, dan:
|
||
-- voor_at = tekst tussen laatste '=' en laatste '@' (vanaf links)
|
||
-- na_at = tekst tussen een-na-laatste '=' en laatste '=' (vanaf links)
|
||
-- 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;
|
||
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 v_count = 1
|
||
THEN
|
||
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 selecteer prs_perslid_key = 15621 = system-user 'SYSTEM API Mail2Melding'!
|
||
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 p.prs_perslid_key = 15621;
|
||
END IF;
|
||
|
||
-- Bepaal kenmerk-key van kenmerksoort 'E-mail' (key 26) op vakgroeptype niveau van vakgroeptype-key 1 die niet verwijderd is
|
||
v_errormsg := 'Fout bepalen kenmerksoort=E-mail';
|
||
SELECT MAX (mld_kenmerk_key)
|
||
INTO v_mailadres_kenmerk_key
|
||
FROM mld_kenmerk
|
||
WHERE mld_srtkenmerk_key = 26
|
||
AND mld_kenmerk_verwijder IS NULL
|
||
AND mld_kenmerk_niveau = 'T'
|
||
AND mld_stdmelding_key = 1;
|
||
|
||
-- Bepaal kenmerk-key van kenmerksoort 'Meldbron' (key 2401) bij 'defaultstdmelding' die niet verwijderd is
|
||
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_srtkenmerk_key = 2401
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND sm.mld_stdmelding_key = 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]
|
||
subject_regexp := '[[:alpha:]]*M[[:digit:]]{1,} ';
|
||
v_mldnum :=
|
||
REGEXP_SUBSTR (psubject || ' ',
|
||
subject_regexp,
|
||
1,
|
||
1,
|
||
'i'); -- M123, of M12345, of M12, of M1
|
||
v_srtdisc :=
|
||
REGEXP_SUBSTR (v_mldnum,
|
||
'[[:alpha:]]',
|
||
1,
|
||
1,
|
||
'i'); -- M
|
||
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)
|
||
INTO v_mldkey
|
||
FROM mld_melding
|
||
WHERE mld_melding_key = v_mld_key_uit_subject;
|
||
|
||
IF v_mldkey IS NOT NULL
|
||
THEN
|
||
-- Gotcha: van deze afzender is een eerdere melding geregistreerd, dus we voegen de subject en body nu als notitie toe.
|
||
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,
|
||
1); -- HSLE#59262: Notitie zichtbaar maken voor FE!
|
||
|
||
-- 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 flag ' || v_flag_on_bonote || ' te zetten.');
|
||
END;
|
||
|
||
-- Bepalen van de behandelaar van deze melding
|
||
v_errormsg := 'Fout bepalen behandelaar';
|
||
BEGIN
|
||
SELECT mld_melding_behandelaar_key
|
||
INTO v_behandelaar_key
|
||
FROM mld_melding m, prs_perslid p
|
||
WHERE mld_melding_key = v_mldkey
|
||
AND mld_melding_behandelaar_key = p.prs_perslid_key
|
||
AND p.prs_perslid_email IS NOT NULL
|
||
AND p.prs_perslid_verwijder IS NULL;
|
||
EXCEPTION
|
||
WHEN OTHERS
|
||
THEN
|
||
v_behandelaar_key := NULL;
|
||
END;
|
||
|
||
IF v_behandelaar_key IS NOT NULL
|
||
THEN
|
||
-- Bestaande melding en behandelaar is bekend.
|
||
|
||
-- bepalen vakgroeptype prefix
|
||
SELECT srt.ins_srtdiscipline_prefix
|
||
INTO v_mldprefix
|
||
FROM mld_melding m, mld_stdmelding std, mld_discipline d, ins_srtdiscipline srt
|
||
WHERE m.mld_stdmelding_key = std.mld_stdmelding_key
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND d.ins_srtdiscipline_key = srt.ins_srtdiscipline_key
|
||
AND m.mld_melding_key = v_mldkey;
|
||
|
||
-- 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)
|
||
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)
|
||
RETURNING mld_melding_key
|
||
INTO v_mldkey;
|
||
|
||
-- Vullen van kenmerkwaarde voor "E-mail"
|
||
IF v_from IS NOT NULL AND v_mailadres_kenmerk_key IS NOT NULL
|
||
THEN
|
||
-- v_from is gevuld, en kenmerk mailadres bestaat, zet v_from met maximaal 50 tekens als kenmerk bij de zojuist aangemaakte melding.
|
||
INSERT INTO mld_kenmerkmelding (mld_melding_key, mld_kenmerk_key, mld_kenmerkmelding_waarde)
|
||
VALUES (v_mldkey, v_mailadres_kenmerk_key, v_from);
|
||
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.
|
||
v_errormsg := 'Fout toevoegen bijlage(n)';
|
||
SELECT MIN (mld_kenmerk_key)
|
||
INTO kkey
|
||
FROM mld_kenmerk k, mld_srtkenmerk sk, mld_stdmelding std, ins_tab_discipline d
|
||
WHERE sk.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key
|
||
AND std.mld_stdmelding_key = defaultstdmelding
|
||
AND std.mld_ins_discipline_key = d.ins_discipline_key
|
||
AND ((k.mld_stdmelding_key = std.mld_stdmelding_key AND k.mld_kenmerk_niveau = 'S')
|
||
OR (k.mld_stdmelding_key = d.ins_discipline_key AND k.mld_kenmerk_niveau = 'D')
|
||
OR (k.mld_stdmelding_key = d.ins_srtdiscipline_key AND k.mld_kenmerk_niveau = 'T'))
|
||
AND k.mld_kenmerk_verwijder IS NULL
|
||
AND NOT EXISTS
|
||
(SELECT 1
|
||
FROM mld_kenmerk k1, mld_srtkenmerk sk1, mld_stdmelding std1, ins_tab_discipline d1
|
||
WHERE sk1.mld_srtkenmerk_kenmerktype = 'M'
|
||
AND sk1.mld_srtkenmerk_key = k1.mld_srtkenmerk_key
|
||
AND std1.mld_stdmelding_key = defaultstdmelding
|
||
AND std1.mld_ins_discipline_key = d1.ins_discipline_key
|
||
AND ((k1.mld_stdmelding_key = std1.mld_stdmelding_key AND k1.mld_kenmerk_niveau = 'S')
|
||
OR (k1.mld_stdmelding_key = d1.ins_discipline_key AND k1.mld_kenmerk_niveau = 'D')
|
||
OR (k1.mld_stdmelding_key = d1.ins_srtdiscipline_key AND k1.mld_kenmerk_niveau = 'T'))
|
||
AND k1.mld_kenmerk_verwijder IS NULL
|
||
AND k1.mld_kenmerk_volgnummer < k.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;
|
||
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 res.res_reservering_key,
|
||
res.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,
|
||
res_reservering res,
|
||
prs_kostenplaats k,
|
||
prs_perslid p,
|
||
prs_afdeling a,
|
||
( SELECT 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 r,
|
||
res_ruimte_opstelling ro,
|
||
res_opstelling o,
|
||
res_ruimte rr,
|
||
res_alg_ruimte ra
|
||
WHERE r.res_rsv_ruimte_verwijder IS NULL
|
||
AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key
|
||
AND ro.res_ruimte_key = rr.res_ruimte_key
|
||
AND ro.res_opstelling_key = o.res_opstelling_key
|
||
AND rr.res_ruimte_key = ra.res_ruimte_key
|
||
GROUP BY res_rsv_ruimte_key
|
||
UNION ALL
|
||
SELECT 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_deel_key = rd.res_deel_key
|
||
AND d.ins_deel_key = rd.res_ins_deel_key
|
||
AND rrd.res_rsv_ruimte_key IS NOT NULL
|
||
AND c.ins_discipline_key = rd.res_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 * res_artikel_prijs)
|
||
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, res_artikel_prijs)
|
||
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) 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_reservering_key = res.res_reservering_key
|
||
AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+)
|
||
AND rrr.prs_kostenplaats_key = k.prs_kostenplaats_key(+)
|
||
AND rrr.res_rsv_ruimte_key = voorz.res_rsv_ruimte_key(+)
|
||
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 wp2.prs_perslid_key(+) = p.prs_perslid_key
|
||
AND (rrr.res_ruimte_opstel_key IS NOT NULL OR voorz.res_rsv_ruimte_key IS NOT NULL)
|
||
AND rrr.res_rsv_ruimte_van >= TO_DATE ('01-01-2009', 'DD-MM-YYYY');
|
||
|
||
-- 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;
|
||
|
||
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
|
||
)
|
||
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_onrgoedkenmerk aok,
|
||
alg_kenmerk ak,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrdata ud
|
||
WHERE alg_onrgoed_key = rg.alg_ruimte_key
|
||
AND alg_onrgoed_niveau = 'R'
|
||
AND aok.alg_kenmerk_key = 1003
|
||
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
||
AND ak.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND fac.safe_to_number (aok.alg_onrgoedkenmerk_waarde) =
|
||
ud.fac_usrdata_key)
|
||
vloerafwerking,
|
||
(SELECT fac_usrdata_code
|
||
FROM alg_onrgoedkenmerk aok,
|
||
alg_kenmerk ak,
|
||
fac_kenmerkdomein kd,
|
||
fac_usrdata ud
|
||
WHERE alg_onrgoed_key = rg.alg_ruimte_key
|
||
AND alg_onrgoed_niveau = 'R'
|
||
AND aok.alg_kenmerk_key = 1004
|
||
AND aok.alg_kenmerk_key = ak.alg_kenmerk_key
|
||
AND ak.fac_kenmerkdomein_key = kd.fac_kenmerkdomein_key
|
||
AND ud.fac_usrtab_key = kd.fac_usrtab_key
|
||
AND fac.safe_to_number (aok.alg_onrgoedkenmerk_waarde) =
|
||
ud.fac_usrdata_key)
|
||
Status,
|
||
(SELECT alg_onrgoedkenmerk_waarde
|
||
FROM alg_onrgoedkenmerk
|
||
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_onrgoedkenmerk
|
||
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_onrgoedkenmerk
|
||
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 (prs_bevat_werkplek, 1, 'Ja', 'Nee') prs_bevat_werkplek
|
||
FROM alg_v_ruimte_gegevens rg,
|
||
alg_srtruimte sr,
|
||
(SELECT a.prs_afdeling_key,
|
||
ra.alg_ruimte_key,
|
||
ra.prs_ruimteafdeling_bezetting,
|
||
a.prs_afdeling_omschrijving,
|
||
kp.prs_kostenplaats_nr
|
||
FROM prs_v_aanwezigafdeling a,
|
||
prs_v_aanwezigruimteafdeling ra,
|
||
prs_kostenplaats kp
|
||
WHERE ra.prs_afdeling_key = a.prs_afdeling_key
|
||
AND kp.prs_kostenplaats_key = a.prs_kostenplaats_key) ra
|
||
WHERE rg.alg_ruimte_key = ra.alg_ruimte_key(+)
|
||
AND sr.alg_srtruimte_key = rg.alg_srtruimte_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 *
|
||
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 (PRODUCTIE: kenmerk-key 201, TEST: kenmerk-key 281) 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 (PRODUCTIE: kenmerk-key 201, TEST: kenmerk-key 281) 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 (PRODUCTIE: kenmerk-key 201, TEST: kenmerk-key 281) 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
|
||
;
|
||
|
||
------ 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
|