-- -- $Id$ -- -- Script containing customer specific sql statements for the FACILITOR database -- DEFINE thisfile = 'PZEE.SQL' DEFINE dbuser = 'PZEE' 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 PZEE AS PROCEDURE prs_mandaten; END; / CREATE OR REPLACE PACKAGE BODY PZEE AS PROCEDURE prs_mandaten AS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_errormsg VARCHAR2 (200); CURSOR c IS SELECT p.prs_perslid_key FROM prs_perslid p WHERE p.prs_perslid_verwijder IS NULL AND NOT EXISTS (SELECT * FROM prs_perslidkostenplaats m WHERE m.prs_perslid_key = p.prs_perslid_key); BEGIN FOR rec IN C LOOP INSERT INTO prs_perslidkostenplaats ( prs_perslid_key, prs_perslidkostenplaats_boeken, prs_perslidkostenplaats_aanmk) VALUES (rec.prs_perslid_key, 1, SYSDATE); COMMIT; END LOOP; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.writelog ('Mandatering medewerker', 'E', v_errormsg, ''); END; END; / CREATE OR REPLACE PROCEDURE pzee_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; BEGIN v_errorhint := 'Generieke update'; -- de sequence array staat beschreven in PRS_PAC.SRC bij de prs.import_perslid proc prs.import_perslid ( p_import_key, '0;0;0;0;0;0;10;2;3;5;' || '4;0;0;0;0;6;7;9;0;1;' || '10;8;0;0;0;0;0;0;0;0;' || '0;0;0;0;0;0;0;0;0;0;' || '0;0;0;0;0;0', ---"Personeelsnummer";"Achternaam";"Voorvoegsel";"Roepnaam";"TelefoonnummerVast";"TelefoonnummerMobiel";"Netwerknaam";"Email";"OrganisatieEenheidCode" '"Personeelsnummer";"Achternaam";"Voorvoegsel";"Voorletters";"Roepnaam";"TelefoonnummerVast";"TelefoonnummerMobiel";"Netwerknaam";"Email";"OrganisatieEenheidCode"%'); COMMIT; -- Personeelsleden die op afdelingsniveau ‘ZLD – Zeeland’ zitten zijn externen UPDATE fac_imp_perslid p SET p.prs_afdeling_naam = 'EXT' WHERE UPPER (p.prs_afdeling_naam) = 'ZLD'; -- functie wordt niet gebruikt, dus deze wordt altijd 'onbekend' UPDATE fac_imp_perslid SET prs_srtperslid_omschrijving = 'Onbekend'; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'Error ' || oracle_err_num || '/' || oracle_err_mes; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); END pzee_import_perslid; / CREATE OR REPLACE PROCEDURE pzee_update_perslid (p_import_key IN NUMBER) IS v_count NUMBER; CURSOR c_perslid IS SELECT * FROM fac_imp_perslid WHERE prs_perslid_key IS NOT NULL; -- Alle medewerkers van de provincie verwijderen die niet meer in import bestand voorkomen. CURSOR c_del IS SELECT p.prs_perslid_key, p.prs_perslid_email, pf.prs_perslid_naam_full FROM prs_perslid p, prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_email IS NOT NULL AND p.prs_perslid_verwijder IS NULL AND p.prs_perslid_oslogin NOT LIKE '%\_%' ESCAPE '\' AND NOT EXISTS (SELECT * FROM fac_imp_perslid i WHERE UPPER (i.prs_perslid_email) = UPPER (p.prs_perslid_email)); --- #79894: Medewerkers met een afdelingscode PS, BCL of GS niet in autorisatiegroep _default maar in 'Statenlid, Burgercom., gedeput'. CURSOR c_auth IS SELECT i.prs_perslid_key, 581 as fac_groep_key FROM fac_imp_perslid i WHERE i.prs_afdeling_naam IN ('PS', 'BCL', 'GS') AND prs_perslid_key IS NOT NULL AND prs_perslid_key NOT IN (SELECT prs_perslid_key FROM fac_gebruikersgroep ---Statenlid, Burgercom., gedeput'. WHERE fac_groep_key = 581); --- 581 is de key van de groep op productie BEGIN -- generic update SELECT COUNT (*) INTO v_count FROM fac_imp_perslid; IF v_count < 750 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; -- Match op 'e-mail' prs.update_perslid (p_import_key, 'EMAIL', NULL); COMMIT; -- 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; FOR rec IN c_auth LOOP BEGIN INSERT INTO FAC_GEBRUIKERSGROEP (prs_perslid_key, fac_groep_key) VALUES (rec.prs_perslid_key, rec.fac_groep_key); DELETE FAC_GEBRUIKERSGROEP WHERE prs_perslid_key = rec.prs_perslid_key AND fac_groep_key = 1; END; END LOOP; --- En dan zorgen we ook even dat alle mandaten goed staan voor eventuele nieuwe personen pzee.prs_mandaten; COMMIT; END pzee_update_perslid; / CREATE OR REPLACE PROCEDURE pzee_import_kpl (p_import_key IN NUMBER) IS c_fielddelimitor VARCHAR2 (1) := ';'; c_headerline VARCHAR (1000) -- := 'Achternaam;E-mail adres;Extern emailadres;My Nyenrode Login;Studentnummer;Geboortedatum;Geslacht;Voorletters;Roepnaam;Voorvoegsels;Mobiel telefoonnummer;Telefoonnummer;Opleiding;Cohort'; := 'Kostenplaatstype ID;Kostenplaats type;Kostenplaats ID;Kostenplaatsnaam;Kostenplaats ERP ID;Kostenplaats online;Toegangsrecht rol ID;Rol;Gebruiker login;Gebruikernaam;Status gebruiker;Gebruiker verwijderd?'; v_newline VARCHAR2 (1000); -- Input line v_header VARCHAR2 (1000); v_aanduiding VARCHAR2 (200); v_errorhint VARCHAR2 (1000); v_errormsg VARCHAR2 (1000); oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); header_is_valid NUMBER := 0; v_ongeldig NUMBER (1); v_count_tot NUMBER (10); v_count_import NUMBER (10); v_count NUMBER; -- De importvelden: v_kostenplaatstype_id VARCHAR2 (256); v_kostenplaats_type VARCHAR2 (256); v_kostenplaats_id VARCHAR2 (256); v_kostenplaatsnaam VARCHAR2 (256); v_kostenplaats_erp_id VARCHAR2 (256); v_kostenplaats_online VARCHAR2 (256); v_toegangsrecht_rol_id VARCHAR2 (256); v_rol VARCHAR2 (256); v_gebruiker_login VARCHAR2 (256); v_gebruikernaam VARCHAR2 (256); v_status_gebruiker VARCHAR2 (256); v_gebruiker_verwijderd VARCHAR2 (256); CURSOR c1 IS SELECT * FROM fac_imp_file WHERE fac_import_key = p_import_key ORDER BY fac_imp_file_index; BEGIN DELETE FROM fac_imp_kpn; COMMIT; v_count_tot := 0; v_count_import := 0; FOR rec1 IN c1 LOOP BEGIN v_newline := rec1.fac_imp_file_line; v_header := v_newline; v_aanduiding := ''; v_errorhint := 'Fout bij opvragen te importeren rij'; v_ongeldig := 0; -- Lees alle veldwaarden fac.imp_getfield (v_newline, c_fielddelimitor, v_kostenplaatstype_id); fac.imp_getfield (v_newline, c_fielddelimitor, v_kostenplaats_type); fac.imp_getfield (v_newline, c_fielddelimitor, v_kostenplaats_id); fac.imp_getfield (v_newline, c_fielddelimitor, v_kostenplaatsnaam); fac.imp_getfield (v_newline, c_fielddelimitor, v_kostenplaats_erp_id); fac.imp_getfield (v_newline, c_fielddelimitor, v_kostenplaats_online); fac.imp_getfield (v_newline, c_fielddelimitor, v_toegangsrecht_rol_id); fac.imp_getfield (v_newline, c_fielddelimitor, v_rol); fac.imp_getfield (v_newline, c_fielddelimitor, v_gebruiker_login); fac.imp_getfield (v_newline, c_fielddelimitor, v_gebruikernaam); fac.imp_getfield (v_newline, c_fielddelimitor, v_status_gebruiker); fac.imp_getfield (v_newline, c_fielddelimitor, v_gebruiker_verwijderd); v_aanduiding := '[' || v_kostenplaats_id || '|' || v_kostenplaatsnaam || '] '; -- Ik controleer of ik een geldige header heb, dat is: in de juiste kolommen -- de juiste kolomkop. Ik controleer daarbij ALLE kolommen! -- Ik negeer alles totdat ik een geldige header ben gepasseerd. IF (header_is_valid = 0) THEN IF UPPER (v_header) LIKE UPPER (c_headerline || '%') THEN header_is_valid := 1; END IF; ELSE v_count_tot := v_count_tot + 1; -- Insert geformatteerde import record IF header_is_valid = 1 THEN BEGIN v_errorhint := 'Fout bij toevoegen regel aan importtabel fac_imp_kpn'; INSERT INTO fac_imp_kpn ( prs_kostenplaats_nr, prs_kostenplaats_omschrijving, prs_kostenplaats_module, prs_kostenplaats_externnr ---- deze misbruiken we voor de budgehouder ) VALUES ( v_kostenplaats_id, v_kostenplaatsnaam, DECODE (v_kostenplaats_type, ----ALG = Gebouwkostenplaats, PRS = Afdelingskostenplaats, PRJ = Projectkostenplaats 'IBCF', 'PRJ', 'IBTW', 'PRJ', 'IKST', 'PRJ', 'VB0', 'PRJ'), v_gebruiker_login); COMMIT; v_count_import := v_count_import + 1; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := v_errorhint || ' ORACLE (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog ( p_import_key, 'W', v_aanduiding || v_errormsg, 'Ingelezen regel kan niet worden weggeschreven!'); COMMIT; END; END IF; END IF; -- header_valid END; END LOOP; --- nu even de juiste budgethouder op basis van het emailadres bepalen UPDATE fac_imp_kpn k SET k.prs_perslid_key = (SELECT p.prs_perslid_key FROM prs_perslid p WHERE UPPER (k.prs_kostenplaats_externnr) = UPPER (p.prs_perslid_email)); --- en de tijdelijke veldwaarde opruimen UPDATE fac_imp_kpn SET prs_kostenplaats_externnr = NULL WHERE prs_kostenplaats_externnr IS NOT NULL; IF (header_is_valid = 1) THEN fac.imp_writelog ( p_import_key, 'S', 'Kostenplaatsen: aantal ingelezen regels: ' || TO_CHAR (v_count_tot), ''); fac.imp_writelog ( p_import_key, 'S', 'Persoon: aantal ongeldige importregels: ' || TO_CHAR (v_count_tot - v_count_import), ''); ELSE fac.imp_writelog ( p_import_key, 'E', 'Ongeldige headerregel!', SUBSTR ('Moet zijn: "' || c_headerline || '"', 1, 1000)); END IF; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_aanduiding || v_errormsg, v_errorhint); COMMIT; END pzee_import_kpl; / CREATE OR REPLACE PROCEDURE pzee_update_kpl (p_import_key IN NUMBER) AS CURSOR c_del IS SELECT kp.prs_kostenplaats_key FROM prs_kostenplaats kp WHERE kp.prs_kostenplaats_verwijder IS NULL AND NOT EXISTS (SELECT * FROM fac_imp_kpn ki WHERE ki.prs_kostenplaats_nr = kp.prs_kostenplaats_nr); BEGIN fac_update_kpn (p_import_key); -- PZEE#80593 Wijziging procedure verwerken kostenplaatsen/import FOR rec IN c_del LOOP BEGIN UPDATE prs_kostenplaats kp SET kp.prs_kostenplaats_eind = SYSDATE WHERE kp.prs_kostenplaats_key = rec.prs_kostenplaats_key; END; END LOOP; -- dan zorgen we vervolgens ook even dat alle mandaten goed staan pzee.prs_mandaten; END pzee_update_kpl; / CREATE OR REPLACE VIEW PZEE_V_THEMA_EQUIPM ( INS_DEEL_KEY, ALG_RUIMTE_KEY, WAARDE ) AS SELECT ins_deel_key, alg_ruimte_key, DECODE ((SELECT COUNT (*) FROM mld_melding m, mld_melding_object mo WHERE m.mld_melding_key = mo.mld_melding_key AND mo.ins_deel_key = d.ins_deel_key AND mld_melding_status IN (0, -- Bij frontoffice 2, -- Nieuw 3, -- Te accepteren 4, -- In behandeling 7, -- Uitgegeven 99)), -- Niet opgelost 0, 'Normaal', 'Defect') ins_status FROM ins_v_deel_gegevens d; CREATE OR REPLACE VIEW PZEE_V_RAP_INFOBORD ( RESERVERING, AKTIEF, DATUM, DATUM_TOT, DAG_VAN, TIJD_VAN, DAG_TOT, TIJD_TOT, RUIMTE, RUIMTENR, GASTHEER, GASTHEER_NAAM, AANVRAGER, AANVRAGER_NAAM, OMSCHRIJVING, LOCATIE_OMSCHRIJVING, GEBOUW_CODE, GEBOUW, VERDIEPING_OMSCHRIJVING, VERDIEPING_VOLGNR, TITEL ) AS SELECT res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reservering, (CASE WHEN res_rsv_ruimte_van > SYSDATE THEN 'expected' WHEN res_rsv_ruimte_tot < SYSDATE THEN 'passed' ELSE 'active' END) aktief, res_rsv_ruimte_van datum, res_rsv_ruimte_tot datum_tot, TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag_van, TO_CHAR (res_rsv_ruimte_van, 'hh24:mi') tijd_van, TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag_van, TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi') tijd_tot, res_ruimte_nr ruimte, SUBSTR (res_ruimte_nr, 1, 4) ruimtenr, gastheer.prs_perslid_naam_full gastheer, gastheer.prs_perslid_naam_friendly gastheer_naam, aanvrager.prs_perslid_naam_full, aanvrager.prs_perslid_naam_friendly aanvrager_naam, res_rsv_ruimte_omschrijving omschrijving, l.alg_locatie_omschrijving locatie_omschrijving, g.alg_gebouw_code gebouw_code, g.alg_gebouw_naam gebouw, v.alg_verdieping_omschrijving verdieping_omschrijving, v.alg_verdieping_volgnr verdieping_volgnr, titel.titel FROM res_v_aanwezigrsv_ruimte rrr, res_ruimte_opstelling rro, prs_v_perslid_fullnames aanvrager, prs_v_perslid_fullnames gastheer, res_v_res_ruimte_gegevens rrg, alg_locatie l, alg_gebouw g, alg_verdieping v, res_status_fo sf, res_discipline rd, (SELECT res_rsv_ruimte_key, ud.fac_usrdata_omschr weergeven, ud.fac_usrdata_key FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk, fac_usrdata ud, fac_usrtab ut WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_srtkenmerk_key = sk.res_srtkenmerk_key AND fac.safe_to_number (kw.res_kenmerkreservering_waarde) = ud.fac_usrdata_key AND ud.fac_usrtab_key = ut.fac_usrtab_key AND sk.res_srtkenmerk_key = 41 AND ut.fac_usrtab_key = 202) weergeven, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde titel FROM res_kenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_kenmerk_key = 63) titel WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key AND rro.res_ruimte_key = rrg.res_ruimte_key AND rrr.res_rsv_ruimte_host_key = gastheer.prs_perslid_key AND rrr.res_rsv_ruimte_contact_key = aanvrager.prs_perslid_key AND rrg.alg_locatie_key = l.alg_locatie_key AND rrg.alg_gebouw_key = g.alg_gebouw_key AND rrg.alg_verdieping_key = v.alg_verdieping_key AND rrr.res_status_fo_key = sf.res_status_fo_key AND rrg.res_discipline_key = rd.ins_discipline_key AND weergeven.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND titel.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND weergeven.fac_usrdata_key = 181; CREATE OR REPLACE VIEW pzee_v_rap_bruikleenovk ( datum, perslid_key, perslid_voorletters, perslid_voornaam, perslid_voorletter, perslid_naam, perslid_tussenvoegsel, perslid_achternaam, personeelsnr, objectsoort, object_id, object_omschrijving, serienummer, selectie ) AS SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy'), p.prs_perslid_key, p.prs_perslid_voorletters, p.prs_perslid_voornaam, SUBSTR (p.prs_perslid_voornaam, 1, 1) || '.' voorletter, REPLACE (p.prs_perslid_naam, 'INACTIEF:'), p.prs_perslid_tussenvoegsel, CASE WHEN p.prs_perslid_tussenvoegsel IS NOT NULL THEN REPLACE (p.prs_perslid_naam, 'INACTIEF:') || ', ' || p.prs_perslid_tussenvoegsel ELSE REPLACE (p.prs_perslid_naam, 'INACTIEF:') END AS achternaam, p.prs_perslid_nr, sd.ins_srtdeel_omschrijving, d.ins_deel_omschrijving, d.ins_deel_opmerking, sn.serienummer, s.selectie FROM ins_deel d, prs_perslid p, ins_srtdeel sd, (SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde serienummer FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd WHERE sk.ins_srtkenmerk_key = 23 AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND kd.ins_kenmerk_key = k.ins_kenmerk_key AND kd.ins_kenmerkdeel_verwijder IS NULL) sn, (SELECT DECODE (unpivot_row, 1, 'Bruikleenovereenkomst', 2, 'Bruikleenovereenkomst ambtsdrager') AS selectie FROM DUAL, ( SELECT LEVEL AS unpivot_row FROM DUAL CONNECT BY LEVEL <= 2)) s WHERE d.ins_alg_ruimte_type = 'P' AND d.ins_alg_ruimte_key = p.prs_perslid_key AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sn.ins_deel_key(+) = d.ins_deel_key AND d.ins_deel_verwijder IS NULL AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE)) AND d.ins_deel_actief = 1 UNION ALL SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy'), p.prs_perslid_key, p.prs_perslid_voorletters, SUBSTR (p.prs_perslid_voornaam, 1, 1) || '.' voorletter, p.prs_perslid_voornaam, REPLACE (p.prs_perslid_naam, 'INACTIEF:'), p.prs_perslid_tussenvoegsel, CASE WHEN p.prs_perslid_tussenvoegsel IS NOT NULL THEN REPLACE (p.prs_perslid_naam, 'INACTIEF:') || ', ' || p.prs_perslid_tussenvoegsel ELSE REPLACE (p.prs_perslid_naam, 'INACTIEF:') END AS achternaam, p.prs_perslid_nr, sd.ins_srtdeel_omschrijving, d.ins_deel_omschrijving, d.ins_deel_opmerking, sn.serienummer, s.selectie FROM ins_deel d, prs_perslid p, ins_srtdeel sd, (SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde serienummer FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd WHERE sk.ins_srtkenmerk_key = 23 AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND kd.ins_kenmerk_key = k.ins_kenmerk_key AND kd.ins_kenmerkdeel_verwijder IS NULL) sn, (SELECT DECODE (unpivot_row, 1, 'Bruikleenovereenkomst', 2, 'Bruikleenovereenkomst ambtsdrager') AS selectie FROM DUAL, ( SELECT LEVEL AS unpivot_row FROM DUAL CONNECT BY LEVEL <= 2)) s WHERE d.ins_alg_ruimte_type_org = 'P' AND d.ins_alg_ruimte_key_org = p.prs_perslid_key AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sn.ins_deel_key(+) = d.ins_deel_key AND d.ins_deel_verwijder IS NULL AND (d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC(SYSDATE)) AND d.ins_deel_actief = 1; CREATE OR REPLACE VIEW pzee_v_rap_vrijwaring ( datum, perslid_key, perslid_voorletters, perslid_voornaam, perslid_voorletter, perslid_naam, perslid_achternaam, personeelsnr, objectsoort, object_id, object_omschrijving, serienummer, selectie ) AS SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy'), p.prs_perslid_key, p.prs_perslid_voorletters, p.prs_perslid_voornaam, SUBSTR (p.prs_perslid_voornaam, 1, 1) || '.' voorletter, p.prs_perslid_voorletters || ' ' || CASE WHEN p.prs_perslid_tussenvoegsel IS NOT NULL THEN p.prs_perslid_tussenvoegsel || ' ' || REPLACE (p.prs_perslid_naam, 'INACTIEF:') ELSE REPLACE (p.prs_perslid_naam, 'INACTIEF:') END naam_full, CASE WHEN p.prs_perslid_tussenvoegsel IS NOT NULL THEN REPLACE (p.prs_perslid_naam, 'INACTIEF:') || ', ' || p.prs_perslid_tussenvoegsel ELSE REPLACE (p.prs_perslid_naam, 'INACTIEF:') END AS achternaam, p.prs_perslid_nr, sd.ins_srtdeel_omschrijving, d.ins_deel_omschrijving, d.ins_deel_opmerking, sn.serienummer, s.selectie FROM ins_deel d, prs_perslid p, ins_srtdeel sd, (SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde serienummer FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd WHERE sk.ins_srtkenmerk_key = 23 AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND kd.ins_kenmerk_key = k.ins_kenmerk_key AND kd.ins_kenmerkdeel_verwijder IS NULL) sn, (SELECT DECODE (unpivot_row, 1, 'Vrijwaring', 2, 'Vrijwaring ambtsdrager') AS selectie FROM DUAL, ( SELECT LEVEL AS unpivot_row FROM DUAL CONNECT BY LEVEL <= 2)) s WHERE d.ins_alg_ruimte_type = 'P' AND d.ins_alg_ruimte_key = p.prs_perslid_key AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sn.ins_deel_key(+) = d.ins_deel_key AND d.ins_deel_verwijder IS NULL AND ( d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC (SYSDATE)) AND d.ins_deel_actief = 1 UNION ALL SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy'), p.prs_perslid_key, p.prs_perslid_voorletters, p.prs_perslid_voornaam, SUBSTR (p.prs_perslid_voornaam, 1, 1) || '.' voorletter, p.prs_perslid_voorletters || ' ' || CASE WHEN p.prs_perslid_tussenvoegsel IS NOT NULL THEN p.prs_perslid_tussenvoegsel || ' ' || REPLACE (p.prs_perslid_naam, 'INACTIEF:') ELSE REPLACE (p.prs_perslid_naam, 'INACTIEF:') END naam_full, CASE WHEN p.prs_perslid_tussenvoegsel IS NOT NULL THEN REPLACE (p.prs_perslid_naam, 'INACTIEF:') || ', ' || p.prs_perslid_tussenvoegsel ELSE REPLACE (p.prs_perslid_naam, 'INACTIEF:') END AS achternaam, p.prs_perslid_nr, sd.ins_srtdeel_omschrijving, d.ins_deel_omschrijving, d.ins_deel_opmerking, sn.serienummer, s.selectie FROM ins_deel d, prs_perslid p, ins_srtdeel sd, (SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde serienummer FROM ins_srtkenmerk sk, ins_kenmerk k, ins_kenmerkdeel kd WHERE sk.ins_srtkenmerk_key = 23 AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND kd.ins_kenmerk_key = k.ins_kenmerk_key AND kd.ins_kenmerkdeel_verwijder IS NULL) sn, (SELECT DECODE (unpivot_row, 1, 'vrijwaring', 2, 'vrijwaring ambtsdrager') AS selectie FROM DUAL, ( SELECT LEVEL AS unpivot_row FROM DUAL CONNECT BY LEVEL <= 2)) s WHERE d.ins_alg_ruimte_type_org = 'P' AND d.ins_alg_ruimte_key_org = p.prs_perslid_key AND d.ins_srtdeel_key = sd.ins_srtdeel_key AND sn.ins_deel_key(+) = d.ins_deel_key AND d.ins_deel_verwijder IS NULL AND ( d.ins_deel_vervaldatum IS NULL OR d.ins_deel_vervaldatum > TRUNC (SYSDATE)) AND d.ins_deel_actief = 1; CREATE OR REPLACE VIEW PZEE_RAP_KALENDER_OMBOUW ( USER_KEY, TITLE, VAN, TOT, ITEM_KEY, COLOR, TEXTCOLOR, URL ) AS SELECT DISTINCT NULL user_key, r.alg_ruimte_omschrijving title, fac.safe_to_date ( TO_CHAR (mld_melding_einddatum, 'DD-MM-YYYY') || ' ' || tijd, ' dd-mm-yyyy HH24:mi:ss') van, mld_melding_einddatum tot, m.mld_melding_key item_key, CASE WHEN s.mld_statuses_key <> 5 THEN '#fc0303' ELSE '#008000' END color, '#FFFFFF' textcolor, '?u=melding' || CHR (38) || 'k=' || m.mld_melding_key url FROM mld_stdmelding sm, mld_melding m, mld_statuses s, alg_ruimte r, res_alg_ruimte ra, res_ruimte rr, (SELECT km.mld_kenmerkmelding_waarde tijd, km.mld_melding_key FROM mld_srtkenmerk sk, mld_kenmerk k, mld_kenmerkmelding km WHERE sk.mld_srtkenmerk_key = 461 AND k.mld_srtkenmerk_key = sk.mld_srtkenmerk_key AND km.mld_kenmerk_key = k.mld_kenmerk_key) tijd_van WHERE sm.mld_stdmelding_key = m.mld_stdmelding_key AND s.mld_statuses_key = m.mld_melding_status AND m.mld_alg_onroerendgoed_keys = r.alg_ruimte_key AND r.alg_ruimte_key = ra.alg_ruimte_key AND ra.res_ruimte_key = rr.res_ruimte_key AND tijd_van.mld_melding_key = m.mld_melding_key AND sm.mld_stdmelding_key = 401; CREATE OR REPLACE FORCE VIEW PZEE_V_INS_QRC_ALG ( HIDE_F_SORT, LOCATIE_CODE, FCLT_F_LOCATIE, FCLT_F_GEBOUW, FCLT_F_PLAATS, RUIMTENR, NAAM, FCLT_F_DISCIPLINE, FCLT_F_OBJECTGROEP, FCLT_F_OBJECTSOORT, FCLT_F_IDENTIFICATIE, FCLT_F_BOOKMARK, INS_DEEL_KEY, INS_SRTDEEL_KEY, FCLT_3D_DISCIPLINE_KEY, FCLT_3D_LOCATIE_KEY, INS_ALG_RUIMTE_TYPE, INS_ALG_RUIMTE_KEY, BOOKMARK_ID, GEKOPPELD_AAN ) AS SELECT i.ins_deel_omschrijving hide_f_sort, l.alg_locatie_code, l.alg_locatie_code || ' ' || l.alg_locatie_omschrijving fclt_f_locatie, o.alg_gebouw_omschrijving fclt_f_gebouw, SUBSTR (o.alg_plaatsaanduiding, 13) fclt_f_plaats, o.alg_ruimte_nr, NULL prs_perslid_naam, d.ins_discipline_omschrijving fclt_f_discipline, g.ins_srtgroep_omschrijving fclt_f_objectgroep, s.ins_srtdeel_omschrijving fclt_f_objectsoort, i.ins_deel_omschrijving fclt_f_identificatie, b.fac_bookmark_naam fclt_f_bookmark, i.ins_deel_key, s.ins_srtdeel_key, i.ins_discipline_key fclt_3d_discipline_key, l.alg_locatie_key fclt_3d_locatie_key, i.ins_alg_ruimte_type, i.ins_alg_ruimte_key, b.fac_bookmark_id hide_f_bookmark_id, 'Ruimte' Gekoppeld_aan FROM ins_deel i, ins_v_alg_overzicht o, ins_srtdeel s, ins_srtgroep g, ins_discipline d, alg_locatie l, fac_bookmark b WHERE UPPER (b.fac_bookmark_naam) = 'QRC NAAR OBJECT' AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE AND ins_deel_verwijder IS NULL AND COALESCE (i.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE AND i.ins_deel_module = 'INS' AND i.ins_deel_parent_key IS NULL AND s.ins_srtdeel_key = i.ins_srtdeel_key AND g.ins_srtgroep_key = s.ins_srtgroep_key AND d.ins_discipline_key = g.ins_discipline_key AND o.alg_onroerendgoed_keys = COALESCE (i.ins_alg_ruimte_key_org, i.ins_alg_ruimte_key) AND o.alg_onroerendgoed_type = COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type) AND COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type) IN ('T', 'R', 'W') AND o.alg_locatie_key = i.ins_alg_locatie_key AND l.alg_locatie_key = i.ins_alg_locatie_key UNION ALL SELECT i.ins_deel_omschrijving hide_f_sort, NULL, NULL fclt_f_locatie, NULL fclt_f_gebouw, NULL fclt_f_plaats, NULL, p.prs_perslid_naam, d.ins_discipline_omschrijving fclt_f_discipline, g.ins_srtgroep_omschrijving fclt_f_objectgroep, s.ins_srtdeel_omschrijving fclt_f_objectsoort, i.ins_deel_omschrijving fclt_f_identificatie, b.fac_bookmark_naam fclt_f_bookmark, i.ins_deel_key, s.ins_srtdeel_key, i.ins_discipline_key fclt_3d_discipline_key, NULL fclt_3d_locatie_key, i.ins_alg_ruimte_type, i.ins_alg_ruimte_key, b.fac_bookmark_id hide_f_bookmark_id, 'Persoon' FROM ins_deel i, ins_srtdeel s, ins_srtgroep g, prs_perslid p, ins_discipline d, fac_bookmark b WHERE UPPER (b.fac_bookmark_naam) = 'QRC NAAR OBJECT' AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE AND ins_deel_verwijder IS NULL AND COALESCE (i.ins_deel_vervaldatum, SYSDATE + 1) > SYSDATE AND i.ins_deel_module = 'INS' AND i.ins_deel_parent_key IS NULL AND s.ins_srtdeel_key = i.ins_srtdeel_key AND g.ins_srtgroep_key = s.ins_srtgroep_key AND d.ins_discipline_key = g.ins_discipline_key AND p.prs_perslid_key = COALESCE (i.ins_alg_ruimte_key_org, i.ins_alg_ruimte_key) AND COALESCE (i.ins_alg_ruimte_type_org, i.ins_alg_ruimte_type) = 'P'; CREATE OR REPLACE VIEW PZEE_V_RUIMTE_QRC_ALG ( OMGEVING, ALG_LOCATIE_OMSCHRIJVING, ALG_GEBOUW_OMSCHRIJVING, ALG_RUIMTE_NR, ALG_RUIMTE_OMSCHRIJVING, SRT_RUIMTE, FAC_BOOKMARK_ID, FAC_BOOKMARK_PATH, FAC_BOOKMARK_QUERY, ALG_RUIMTE_KEY ) AS SELECT USER omgeving, r.alg_locatie_omschrijving, r.alg_gebouw_omschrijving, r.alg_ruimte_nr, r.alg_ruimte_omschrijving, r.alg_srtruimte_omschrijving, b.fac_bookmark_id, b.fac_bookmark_path, b.fac_bookmark_query, r.alg_ruimte_key FROM fac_bookmark b, alg_v_ruimte_gegevens r WHERE b.fac_bookmark_id = 'Dk6aMzV8hdfSIvpw'; CREATE OR REPLACE VIEW PZEE_V_RUIMTE_QRC_RES ( HIDE_F_SORT, LOCATIE_CODE, FCLT_F_LOCATIE, FCLT_F_GEBOUW_NAAM, FCLT_F_GEBOUW_OMSCHR, FCLT_F_VERDIEPING, ALG_RUIMTE_KEY, FCLT_F_ALG_RUIMTE_NR, RES_RUIMTE_KEY, FCLT_F_RES_RUIMTE_NR, FCLT_F_IDENTIFICATIE, FCLT_F_BOOKMARK ) AS SELECT r.res_ruimte_nr, l.alg_locatie_code, l.alg_locatie_omschrijving, g.alg_gebouw_naam, g.alg_gebouw_omschrijving, v.alg_verdieping_code, r.alg_ruimte_key, r.alg_ruimte_nr, r.res_ruimte_key, r.res_ruimte_nr, r.res_ruimte_key, b.fac_bookmark_id hide_f_bookmark_id FROM res_ruimte r, res_alg_ruimte ar, alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l, fac_bookmark b WHERE ar.res_ruimte_key = r.res_ruimte_key AND r.alg_ruimte_key = ar.alg_ruimte_key AND v.alg_verdieping_key = r.alg_verdieping_key AND g.alg_gebouw_key = v.alg_gebouw_key AND l.alg_locatie_key = g.alg_locatie_key AND b.fac_bookmark_id = '3mZqlYCRJbw4MdPS' AND COALESCE (b.fac_bookmark_expire, SYSDATE + 1) > SYSDATE AND l.alg_locatie_verwijder IS NULL AND ( l.alg_locatie_vervaldatum > SYSDATE OR l.alg_locatie_vervaldatum IS NULL) AND g.alg_gebouw_verwijder IS NULL AND ar.res_alg_ruimte_verwijder IS NULL AND r.res_ruimte_verwijder IS NULL AND ( r.res_ruimte_vervaldatum > SYSDATE OR r.res_ruimte_vervaldatum IS NULL); -- Voor de koppeling met BIS is een specifieke opbouw van de rapportage nodig CREATE OR REPLACE VIEW meeting ( res_date, starttime, endtime, name, location ) AS SELECT datum, tijd_van, tijd_tot, titel, ruimte FROM pzee_v_rap_infobord; -- Voor de tijdelijke koppeling inforborden CREATE OR REPLACE VIEW PZEE_V_RAP_VERGADERING_2 ( RES_DATE, RES_DATE_TOT, STARTDATUM, EINDDATUM, BEGINTIJD, EINDTIJD, ONDERWERP, AANVRAGER, LOCATIECODE, LOCATIECODELINK, LOCATIE ) AS SELECT datum, datum_tot, dag_van, dag_tot, tijd_van, tijd_tot, titel, aanvrager_naam, ruimtenr, ruimtenr locatielink, ruimte FROM pzee_v_rap_infobord WHERE TRUNC (datum) = TRUNC (SYSDATE) AND datum_tot > SYSDATE; --- reserveringen met catering CREATE OR REPLACE VIEW PZEE_V_RAP_CATERING AS SELECT DISTINCT rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reservering, (SELECT MAX (fac_tracking_datum) FROM fac_tracking WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key AND fac_srtnotificatie_key = 117 --- resupd AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE '%ERROR%') laatste_upd, rrr.res_rsv_ruimte_externsyncdate datum_export, rrr.res_rsv_ruimte_verwijder datum_verwijderd, cat.ins_discipline_key ruimte_catalogus_key, cat.ins_discipline_omschrijving ruimte_catalogus, rer.res_ruimte_key, rer.res_ruimte_nr ruimte, (SELECT gb.alg_gebouw_code FROM alg_gebouw gb WHERE gb.alg_gebouw_key = alg.alg_gebouw_key) gebouw, rrr.res_rsv_ruimte_van datum_van, rrr.res_rsv_ruimte_tot datum_tot, rrr.res_rsv_ruimte_omschrijving oms, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key = rrr.res_rsv_ruimte_host_key) gastheer, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) contact, kstp.prs_kostenplaats_nr act_nr, (SELECT res_kenmerkreservering_waarde FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND k.res_kenmerk_key = kw.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND sk.res_srtkenmerk_key = 1) --- allergie/dieet wensen, (SELECT CASE WHEN res_kenmerkreservering_waarde = 181 THEN 'Ja' ELSE 'Nee' END externen FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND k.res_kenmerk_key = kw.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND sk.res_srtkenmerk_key = 81) --- externen externen, (SELECT res_kenmerkreservering_waarde FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND k.res_kenmerk_key = kw.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND sk.res_srtkenmerk_key = 161) --- aantal aantal FROM res_rsv_ruimte rrr, res_rsv_artikel rar, res_ruimte_opstelling rop, res_ruimte rer, ins_tab_discipline cat, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg, prs_kostenplaats kstp WHERE rrr.res_rsv_ruimte_verwijder IS NULL AND cat.ins_discipline_key = rer.res_discipline_key AND rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND rrr.res_ruimte_opstel_key = rop.res_ruimte_opstel_key AND rer.res_ruimte_key = rop.res_ruimte_key AND rarm.res_ruimte_key = rer.res_ruimte_key AND alg.alg_ruimte_key = rarm.alg_ruimte_key AND kstp.prs_kostenplaats_key = rrr.prs_kostenplaats_key UNION ALL SELECT DISTINCT rrr.res_rsv_ruimte_key, rrr.res_reservering_key, rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reservering, (SELECT MAX (fac_tracking_datum) FROM fac_tracking WHERE fac_tracking_refkey = rrr.res_rsv_ruimte_key AND fac_srtnotificatie_key = 117 --- resupd AND UPPER (COALESCE (fac_tracking_oms, ' ')) NOT LIKE '%ERROR%') laatste_upd, rrr.res_rsv_ruimte_externsyncdate last_export, rrr.res_rsv_ruimte_verwijder datum_verwijderd, 0 ruimte_catalogus_key, 'Losse catering' ruimte_catalogus, alg.alg_ruimte_key, alg.alg_ruimte_nr || ' ' || alg.alg_ruimte_omschrijving ruimte, (SELECT gb.alg_gebouw_code FROM alg_gebouw gb WHERE gb.alg_gebouw_key = alg.alg_gebouw_key) gebouw, rrr.res_rsv_ruimte_van datum_van, rrr.res_rsv_ruimte_tot datum_tot, COALESCE (rrr.res_rsv_ruimte_omschrijving, 'Catering ') oms, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key = rrr.res_rsv_ruimte_host_key) gastheer, (SELECT prs_perslid_naam_friendly FROM prs_v_perslid_fullnames WHERE prs_perslid_key = rrr.res_rsv_ruimte_contact_key) contact, kstp.prs_kostenplaats_nr act_nr, (SELECT res_kenmerkreservering_waarde FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND k.res_kenmerk_key = kw.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND sk.res_srtkenmerk_key = 1) --- allergie/dieet wensen, (SELECT CASE WHEN res_kenmerkreservering_waarde = 181 THEN 'Ja' ELSE 'Nee' END externen FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND k.res_kenmerk_key = kw.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND sk.res_srtkenmerk_key = 81) --- externen externen, (SELECT res_kenmerkreservering_waarde FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND k.res_kenmerk_key = kw.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND sk.res_srtkenmerk_key = 161) --- aantal aantal FROM res_rsv_ruimte rrr, res_rsv_artikel rar, alg_v_ruimte_gegevens_all alg, prs_kostenplaats kstp WHERE rrr.res_rsv_ruimte_verwijder IS NULL AND rar.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND alg.alg_ruimte_key = rrr.alg_ruimte_key AND kstp.prs_kostenplaats_key = rrr.prs_kostenplaats_key ORDER BY res_rsv_ruimte_key; --- catering artikelen die besteld mogen worden conform de gestelde catalogus instellingen CREATE OR REPLACE VIEW PZEE_V_RAP_CATERING_RGL AS SELECT b.prs_bedrijf_key || rar.res_rsv_ruimte_key extra_key, rar.res_rsv_ruimte_key, b.prs_bedrijf_key bedrijfs_key, b.prs_bedrijf_naam leverancier, SUBSTR (ba.prs_bedrijfadres_url, INSTR (ba.prs_bedrijfadres_url, ':') + 1) mailadres, rar.res_artikel_key, rar.res_rsv_artikel_key, art.res_artikel_omschrijving, rar.res_rsv_artikel_aantal, rar.res_rsv_artikel_levering, TO_CHAR (rar.res_rsv_artikel_levering, 'DAY') leverdag, TO_CHAR (rar.res_rsv_artikel_levering, 'd') leverdagnr, art.res_discipline_key, rar.res_rsv_artikel_externsyncdate, cat.ins_discipline_omschrijving, cat_s.res_disc_params_expire_dagen, cat_s.res_disc_params_expire_tijd, t1.t1, TRUNC (fac.datumtijdplusuitvoertijd (SYSDATE, res_disc_params_expire_dagen - 1, 'DAGEN', t1, res_disc_params_expire_tijd, 1)) bestelling_voor_originieel, --- we bestellen na de wijzigingshorizon! Dus trekken we er weer een dag vanaf TRUNC (fac.datumtijdplusuitvoertijd (TRUNC (SYSDATE + 1), ---- zie PZEE#90449 res_disc_params_expire_dagen - 1, 'DAGEN', t1, res_disc_params_expire_tijd, 1)) AS bestelling_voor FROM res_rsv_artikel rar, res_artikel art, ins_tab_discipline cat, res_disc_params cat_s, prs_bedrijf b, prs_bedrijfadres ba, (SELECT COALESCE (cat_t1, res_t1) t1 FROM (SELECT (SELECT fac_setting_pvalue FROM fac_setting WHERE fac_setting_name = 'res_cat_t1') cat_t1, (SELECT fac_setting_pvalue FROM fac_setting WHERE fac_setting_name = 'res_t1') res_t1 FROM DUAL)) t1 WHERE art.res_artikel_key = rar.res_artikel_key AND cat.ins_discipline_key = art.res_discipline_key AND rar.res_rsv_artikel_verwijder IS NULL AND rar.res_rsv_artikel_dirtlevel = 0 AND cat_s.res_ins_discipline_key = cat.ins_discipline_key AND cat_s.prs_bedrijf_key = b.prs_bedrijf_key AND ba.prs_bedrijf_key = b.prs_bedrijf_key; -- combinatie van reservering en bestelregels CREATE OR REPLACE VIEW PZEE_V_RAP_CATERING_ALL AS SELECT CASE WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2 AND cr.bedrijfs_key = 1842 THEN (SELECT b.PRS_BEDRIJF_KEY FROM prs_bedrijf b, prs_bedrijfadres ba WHERE b.prs_bedrijf_key = 1843 AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag ELSE cr.bedrijfs_key END bedrijfs_key, CASE WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2 AND cr.bedrijfs_key = 1842 THEN (SELECT b.prs_bedrijf_naam FROM prs_bedrijf b, prs_bedrijfadres ba WHERE b.prs_bedrijf_key = 1843 AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag ELSE cr.leverancier END leverancier, CASE WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2 AND cr.bedrijfs_key = 1842 THEN (SELECT SUBSTR (ba.prs_bedrijfadres_url, INSTR (ba.prs_bedrijfadres_url, ':') + 1) mailadres FROM prs_bedrijf b, prs_bedrijfadres ba WHERE b.prs_bedrijf_key = 1843 AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag ELSE cr.mailadres END mailadres, c.res_rsv_ruimte_key, c.reservering, c.oms omschrijving, ruimte_catalogus, cr.res_disc_params_expire_dagen, cr.res_disc_params_expire_tijd, CASE WHEN ( c.ruimte_catalogus_key IN (441) AND NOT c.res_ruimte_key = 17 AND cr.bedrijfs_key = 1841) THEN 'hoofdgebouw keuken beneden' --- bestellingen in ruimtes A0 en B1 voor SEC ELSE 'hoofdgebouw keuken boven' END afleverlocatie, c.gebouw, c.ruimte, c.act_nr activiteitennr, c.externen externen_aanwezig, c.aantal aant_externen, c.wensen dieet_allergie, cr.ins_discipline_omschrijving catalogus, cr.res_artikel_omschrijving artikel, cr.res_rsv_artikel_aantal aantal, CASE WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 1 THEN 'Zondag' WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2 THEN 'Maandag' WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 3 THEN 'Dinsdag' WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 4 THEN 'Woensdag' WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 5 THEN 'Donderdag' WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 6 THEN 'Vrijdag' WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 7 THEN 'Zaterdag' END leverdag, --- zondag is dag 1 van de week cr.res_rsv_artikel_levering artikel_levering, TO_CHAR (cr.res_rsv_artikel_levering, 'dd-mm-yyyy') leverdatum, TO_CHAR (cr.res_rsv_artikel_levering, 'hh24:mi') levertijd FROM pzee_v_rap_catering c, pzee_v_rap_catering_rgl cr WHERE c.res_rsv_ruimte_key = cr.res_rsv_ruimte_key; -- rapport met bestellingen dat naar de leverancier gestuurd mag worden CREATE OR REPLACE VIEW PZEE_V_RAP_NOTI_LEVERANCIER AS SELECT c.res_rsv_ruimte_key, c.res_reservering_key, c.reservering, c.oms omschrijving, c.ruimte_catalogus_key, ruimte_catalogus, CASE WHEN ( c.ruimte_catalogus_key IN (441) AND NOT c.res_ruimte_key = 17 AND cr.bedrijfs_key = 1841) THEN 'hoofdgebouw keuken beneden' --- bestellingen in ruimtes A0 en B1 voor SEC ELSE 'hoofdgebouw keuken boven' END afleverlocatie, c.gebouw, c.ruimte, c.act_nr activiteitennr, c.contact, c.externen externen_aanwezig, c.aantal aant_externen, c.wensen dieet_allergie, cr.ins_discipline_omschrijving catalogus, cr.res_discipline_key catalogus_key, fac.safe_to_number (cr.extra_key) extra_key, CASE WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2 AND cr.bedrijfs_key = 1842 THEN (SELECT b.PRS_BEDRIJF_KEY FROM prs_bedrijf b, prs_bedrijfadres ba WHERE b.prs_bedrijf_key = 1843 AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag ELSE cr.bedrijfs_key END bedrijfs_key, CASE WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2 AND cr.bedrijfs_key = 1842 THEN (SELECT b.prs_bedrijf_naam FROM prs_bedrijf b, prs_bedrijfadres ba WHERE b.prs_bedrijf_key = 1843 AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag ELSE cr.leverancier END leverancier, CASE WHEN TO_CHAR (cr.res_rsv_artikel_levering, 'd') = 2 AND cr.bedrijfs_key = 1842 THEN (SELECT SUBSTR (ba.prs_bedrijfadres_url, INSTR (ba.prs_bedrijfadres_url, ':') + 1) mailadres FROM prs_bedrijf b, prs_bedrijfadres ba WHERE b.prs_bedrijf_key = 1843 AND ba.prs_bedrijf_key = b.prs_bedrijf_key) -- bakker Bliek levert niet op maandag ELSE cr.mailadres END mailadres, cr.res_artikel_omschrijving artikel, cr.res_rsv_artikel_aantal aantal, cr.res_rsv_artikel_levering artikel_levering, cr.res_rsv_artikel_externsyncdate, TO_CHAR (cr.res_rsv_artikel_levering, 'hh24:mi') levertijd, TO_CHAR (cr.res_rsv_artikel_levering, 'dd-mm-yyyy') leverdatum, TO_CHAR (cr.res_rsv_artikel_levering, 'd') leverdag --- zondag is dag 1 van de week FROM pzee_v_rap_catering c, pzee_v_rap_catering_rgl cr WHERE TRUNC (cr.bestelling_voor) = TRUNC (cr.res_rsv_artikel_levering) AND c.res_rsv_ruimte_key = cr.res_rsv_ruimte_key; --- SELECT sender, receiver, text, code, key, xkey, xsender, xemail, xmobile CREATE OR REPLACE VIEW PZEE_V_NOTI_BAKKERBEST ( SENDER, RECEIVER, TEXT, CODE, KEY, XKEY, XSENDER, XEMAIL, XMOBILE ) AS SELECT DISTINCT 3 sender, -- Facilitor NULL receiver, 'Bestelling ' || b.reservering || ' voor ' || leverdatum text, sn.fac_srtnotificatie_code code, (SELECT fac_usrrap_key FROM fac_usrrap WHERE UPPER (fac_usrrap_omschrijving) = 'RES: TE BESTELLEN CATERING' AND UPPER (fac_usrrap_view_name) = 'PZEE_V_RAP_NOTI_LEVERANCIER') ---- refkey: is het rapport key, b.extra_key xkey, NULL xsender, b.mailadres xemail, NULL xmobile FROM fac_srtnotificatie sn, fac_tracking t, pzee_v_rap_noti_leverancier b WHERE sn.fac_srtnotificatie_code = 'CUST01' AND b.bedrijfs_key = 1842; CREATE OR REPLACE VIEW PZEE_V_NOTI_SEC_BEST ( SENDER, RECEIVER, TEXT, CODE, KEY, XKEY, XSENDER, XEMAIL, XMOBILE ) AS SELECT DISTINCT 3 sender, -- Facilitor NULL receiver, 'Bestelling ' || b.reservering || ' voor ' || leverdatum text, sn.fac_srtnotificatie_code code, (SELECT fac_usrrap_key FROM fac_usrrap WHERE UPPER (fac_usrrap_omschrijving) = 'RES: TE BESTELLEN CATERING' AND UPPER (fac_usrrap_view_name) = 'PZEE_V_RAP_NOTI_LEVERANCIER') ---- refkey: is het rapport key, b.extra_key xkey, NULL xsender, b.mailadres xemail, NULL xmobile FROM fac_srtnotificatie sn, fac_tracking t, pzee_v_rap_noti_leverancier b WHERE sn.fac_srtnotificatie_code = 'CUST01' AND b.bedrijfs_key = 1841; CREATE OR REPLACE VIEW PZEE_V_MENTIMETER_ACC ( INS_DEEL_KEY, ACCOUNT_NAAM, INS_DEEL_VERWIJDER ) AS SELECT d.ins_deel_key, d.ins_deel_omschrijving || ' (' || srt_a.fac_usrdata_omschr || ') ' || a.ins_kenmerkdeel_waarde accountnaam, d.ins_deel_verwijder FROM ins_deel d, ins_srtdeel sd, (SELECT kd.ins_deel_key, kd.ins_kenmerkdeel_waarde FROM ins_kenmerkdeel kd, ins_kenmerk k WHERE k.ins_kenmerk_key = kd.ins_kenmerk_key AND k.ins_kenmerk_key = 151) a, (SELECT kd.ins_deel_key, ud.fac_usrdata_omschr FROM ins_kenmerkdeel kd, ins_kenmerk k, ins_srtkenmerk sk, fac_usrdata ud WHERE kd.ins_kenmerk_key = k.ins_kenmerk_key AND k.ins_srtkenmerk_key = sk.ins_srtkenmerk_key AND sk.ins_srtkenmerk_key = 87 AND ud.fac_usrdata_key = fac.safe_to_number (kd.ins_kenmerkdeel_waarde) AND ud.fac_usrtab_key = 441) srt_a WHERE d.ins_srtdeel_key = sd.ins_srtdeel_key AND sd.ins_srtdeel_key = 183 AND a.ins_deel_key = d.ins_deel_key AND srt_a.ins_deel_key = d.ins_deel_key; --- notificatie naar representatie wanneer er een wijziging of annulering is van een reserving in een representatieve ruimte --- die in behandeling is door representatie CREATE OR REPLACE VIEW PZEE_V_NOTI_RESUPD ( SENDER, RECEIVER, TEXT, CODE, KEY, XKEY, XSENDER, XEMAIL, XMOBILE ) AS SELECT 3 sender, NULL receiver, 'Er is een wijziging op reservering ' || r.res_reservering_key || '/' || r.res_rsv_ruimte_volgnr tekst, sn.fac_srtnotificatie_code code, r.res_reservering_key key, NULL xkey, NULL xsender, 'representatie@zeeland.nl;ab.kramer@zeeland.nl' xemail, NULL xmobile FROM fac_tracking t, prs_perslid p, res_rsv_ruimte r, fac_srtnotificatie sn, (SELECT d.ins_discipline_key, d.ins_discipline_omschrijving, ro.res_ruimte_opstel_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key) cat WHERE t.fac_srtnotificatie_key = 117 --- RESUPD AND p.prs_perslid_key = t.prs_perslid_key AND sn.fac_srtnotificatie_code = 'CUST02' AND r.res_rsv_ruimte_key = t.fac_tracking_refkey AND r.res_ruimte_opstel_key = cat.res_ruimte_opstel_key AND r.res_rsv_ruimte_flag IN (1, 2) -- status representatie is in behandeling of voorlopig afgerond AND cat.ins_discipline_key IN (803, 442, 801) AND t.fac_tracking_datum > (SELECT fac_notificatie_job_lastrun FROM fac_notificatie_job WHERE UPPER (fac_notificatie_job_view) = 'PZEE_V_NOTI_RESUPD') AND t.fac_tracking_datum < (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE UPPER (fac_notificatie_job_view) = 'PZEE_V_NOTI_RESUPD') AND NOT EXISTS (SELECT ton.prs_perslid_key FROM prs_perslid ton WHERE ton.prs_perslid_key = 1225 AND ton.prs_perslid_key = p.prs_perslid_key) UNION ALL SELECT 3 sender, NULL receiver, 'Let op: Reservering ' || r.res_reservering_key || '/' || r.res_rsv_ruimte_volgnr || ' is geannuleerd' tekst, sn.fac_srtnotificatie_code code, r.res_reservering_key key, NULL xkey, NULL xsender, 'representatie@zeeland.nl;abkramer@zeeland.nl' xemail, NULL xmobile FROM fac_tracking t, prs_perslid p, res_rsv_ruimte r, fac_srtnotificatie sn, (SELECT d.ins_discipline_key, d.ins_discipline_omschrijving, ro.res_ruimte_opstel_key FROM ins_tab_discipline d, res_ruimte_opstelling ro, res_ruimte rr WHERE ro.res_ruimte_key = rr.res_ruimte_key AND rr.res_discipline_key = d.ins_discipline_key) cat WHERE t.fac_srtnotificatie_key = 121 --- RESDEL AND p.prs_perslid_key = t.prs_perslid_key AND sn.fac_srtnotificatie_code = 'CUST02' AND r.res_rsv_ruimte_key = t.fac_tracking_refkey AND r.res_ruimte_opstel_key = cat.res_ruimte_opstel_key AND r.res_rsv_ruimte_flag IN (1, 2, 3) -- status representatie is in behandeling, voorlopig afgerond of gereserveerd respresentatie AND t.fac_tracking_datum > (SELECT fac_notificatie_job_lastrun FROM fac_notificatie_job WHERE UPPER (fac_notificatie_job_view) = 'PZEE_V_NOTI_RESUPD') AND t.fac_tracking_datum < (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE UPPER (fac_notificatie_job_view) = 'PZEE_V_NOTI_RESUPD') AND NOT EXISTS (SELECT ton.prs_perslid_key FROM prs_perslid ton WHERE ton.prs_perslid_key = 1225 AND ton.prs_perslid_key = p.prs_perslid_key); CREATE OR REPLACE PROCEDURE pzee_select_catering_bes ( p_applname IN VARCHAR2, p_applrun IN VARCHAR2) AS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_errorhint VARCHAR2 (100); v_aanduiding VARCHAR2 (100); CURSOR BAKKER IS SELECT DISTINCT b.reservering, b.res_rsv_ruimte_key, 3 sender, -- Facilitor 'Bestelling ' || b.reservering || ' voor ' || leverdatum text, sn.fac_srtnotificatie_code, sn.fac_srtnotificatie_key, (SELECT fac_usrrap_key FROM fac_usrrap WHERE UPPER (fac_usrrap_omschrijving) = 'RES: TE BESTELLEN CATERING' AND UPPER (fac_usrrap_view_name) = 'PZEE_V_RAP_NOTI_LEVERANCIER') ---- refkey: is het rapport key, b.extra_key xkey, b.mailadres xemail FROM fac_srtnotificatie sn, fac_tracking t, pzee_v_rap_noti_leverancier b WHERE sn.fac_srtnotificatie_code = 'CUST01' AND b.res_rsv_artikel_externsyncdate IS NULL AND b.bedrijfs_key IN (1842, 1843); CURSOR SEC IS SELECT DISTINCT b.reservering, b.res_rsv_ruimte_key, 3 sender, -- Facilitor 'Bestelling ' || b.reservering || ' voor ' || leverdatum text, sn.fac_srtnotificatie_code, sn.fac_srtnotificatie_key, (SELECT fac_usrrap_key FROM fac_usrrap WHERE UPPER (fac_usrrap_omschrijving) = 'RES: TE BESTELLEN CATERING' AND UPPER (fac_usrrap_view_name) = 'PZEE_V_RAP_NOTI_LEVERANCIER') ---- refkey: is het rapport key, b.extra_key xkey, b.mailadres xemail FROM fac_srtnotificatie sn, fac_tracking t, pzee_v_rap_noti_leverancier b WHERE sn.fac_srtnotificatie_code = 'CUST01' AND b.res_rsv_artikel_externsyncdate IS NULL AND b.bedrijfs_key = 1841; CURSOR BES_RGL IS SELECT res_rsv_artikel_key, cr.bedrijfs_key, cr.leverancier, cr.mailadres, cr.res_artikel_omschrijving artikel, cr.res_rsv_artikel_aantal aantal, cr.res_rsv_artikel_levering artikel_levering, TO_CHAR (cr.res_rsv_artikel_levering, 'hh24:mi') levertijd, TO_CHAR (cr.res_rsv_artikel_levering, 'dd-mm-yyyy') leverdatum, TO_CHAR (cr.res_rsv_artikel_levering, 'd') leverdag --- zondag is dag 1 van de week FROM pzee_v_rap_catering_rgl cr WHERE TRUNC (cr.bestelling_voor) = TRUNC (cr.res_rsv_artikel_levering) AND cr.res_rsv_artikel_externsyncdate IS NULL; BEGIN v_errorhint := 'init'; DELETE imp_log WHERE imp_log_applicatie = p_applname; FOR rec IN BAKKER LOOP BEGIN INSERT INTO fac_notificatie (fac_srtnotificatie_key, fac_notificatie_status, fac_notificatie_receiver_email, fac_notificatie_oms, fac_notificatie_refkey, fac_notificatie_extrakey, prs_perslid_key_sender, fac_notificatie_prioriteit, fac_notificatie_lang) VALUES (rec.fac_srtnotificatie_key, 2, rec.xemail, rec.text, rec.key, -- rapport key rec.xkey, -- bedrijfskey 3, 2, 'NL'); fac.trackaction ( 'RESTRK', rec.res_rsv_ruimte_key, NULL, NULL, 'Bakkersbestelling verstuurd naar: ' || rec.xemail); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); fac.writelog ( p_applname, 'E', 'Error ' || v_aanduiding || oracle_err_num || '/' || oracle_err_mes, v_errorhint); END; END LOOP; FOR rec IN SEC LOOP BEGIN INSERT INTO fac_notificatie (fac_srtnotificatie_key, fac_notificatie_status, fac_notificatie_receiver_email, fac_notificatie_oms, fac_notificatie_refkey, fac_notificatie_extrakey, prs_perslid_key_sender, fac_notificatie_prioriteit, fac_notificatie_lang) VALUES (rec.fac_srtnotificatie_key, 2, rec.xemail, rec.text, rec.key, -- rapport key rec.xkey, -- bedrijfskey 3, 2, 'NL'); fac.trackaction ('RESTRK', rec.res_rsv_ruimte_key, NULL, NULL, 'SEC bestelling verstuurd naar: ' || rec.xemail); EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); fac.writelog ( p_applname, 'E', 'Error ' || v_aanduiding || oracle_err_num || '/' || oracle_err_mes, v_errorhint); END; END LOOP; FOR rec IN BES_RGL LOOP BEGIN UPDATE res_rsv_artikel ra SET ra.res_rsv_artikel_externsyncdate = SYSDATE WHERE ra.res_rsv_artikel_key = rec.res_rsv_artikel_key; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); fac.writelog ( p_applname, 'E', 'Error ' || oracle_err_num || '/' || oracle_err_mes, v_errorhint); END; END LOOP; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); fac.writelog (p_applname, 'E', 'Error ' || oracle_err_num || '/' || oracle_err_mes, v_errorhint); END; / CREATE OR REPLACE FORCE VIEW pzee_v_noti_base27 ( text, code, fac_srtnotificatie_key, key, prs_bedrijfadres_key ) AS SELECT DISTINCT sn.fac_srtnotificatie_oms, sn.fac_srtnotificatie_code, sn.fac_srtnotificatie_key, m.mld_melding_key, ba.prs_bedrijfadres_key FROM mld_discipline bt, mld_melding m, mld_stdmelding sm, mld_statuses s, fac_tracking t, fac_srtnotificatie sn, prs_bedrijf b, prs_bedrijfadres ba WHERE bt.ins_discipline_key = m.mld_ins_discipline_key AND s.mld_statuses_key = m.mld_melding_status AND sm.mld_stdmelding_key = m.mld_stdmelding_key AND sm.mld_stdmeldinggroep_key = 13 -- meldinggroep Veiligheid AND m.mld_ins_discipline_key IN (261, 702) -- melding staat op behandelteam Security of Security datalek AND t.fac_tracking_refkey = m.mld_melding_key AND t.fac_srtnotificatie_key = 47 -- MLDAFM melding is afgemeld AND sn.fac_srtnotificatie_code = 'CUST03' AND b.prs_bedrijf_key = ba.prs_bedrijf_key AND b.prs_bedrijf_naam_upper = 'BASE27' AND t.fac_tracking_datum > (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval / 24 FROM fac_notificatie_job WHERE UPPER (fac_notificatie_job_view) = 'PZEE_V_NOTI_BASE27') AND t.fac_tracking_datum < (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE UPPER (fac_notificatie_job_view) = 'PZEE_V_NOTI_BASE27'); ------ 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