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