-- Script containing customer specific configuration sql statements for Driessen Groep -- $Revision$ -- $Id$ DEFINE thisfile = 'DRIE.SQL' DEFINE dbuser = '^DRIE' DEFINE custid = 'DRIE' 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 VIEW drie_v_rap_td_looplijst ( hide_f_srt, soort, nr, fclt_f_gebouw, datum, begintijd, eindtijd, fclt_f_ruimte, opstelling, aantal, omschrijving, soortkey ) AS SELECT DISTINCT TO_CHAR (rr.res_rsv_ruimte_van, 'yyyy-mm-dd') || rg.alg_gebouw_upper || TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi') hide_f_srt, 'Reservering', rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr nr, rg.alg_gebouw_omschrijving fclt_f_gebouw, rr.res_rsv_ruimte_van datum, TO_CHAR (rr.res_rsv_ruimte_van, 'hh24:mi') begintijd, TO_CHAR (rr.res_rsv_ruimte_tot, 'hh24:mi') eindtijd, r.res_ruimte_nr fclt_f_ruimte, o.res_opstelling_omschrijving opstelling, rr.res_rsv_ruimte_bezoekers aantal, rr.res_rsv_ruimte_omschrijving omschrijving, rr.res_rsv_ruimte_key FROM res_rsv_ruimte rr, res_ruimte_opstelling ro, res_opstelling o, res_ruimte r, res_alg_ruimte ar, alg_v_ruimte_gegevens rg WHERE rr.res_rsv_ruimte_verwijder IS NULL AND ro.res_ruimte_opstel_key = rr.res_ruimte_opstel_key AND o.res_opstelling_key = ro.res_opstelling_key AND r.res_ruimte_key = ro.res_ruimte_key AND ar.res_ruimte_key = r.res_ruimte_key AND ar.res_alg_ruimte_verwijder IS NULL AND rg.alg_ruimte_key = ar.alg_ruimte_key AND rr.res_status_bo_key NOT IN (5, 6) UNION ALL SELECT DISTINCT TO_CHAR (m.mld_melding_datum, 'yyyy-mm-dd') || UPPER (rg.alg_gebouw_code) || TO_CHAR (m.mld_melding_datum, 'hh24:mi') hide_f_srt, 'Melding', TO_CHAR (m.mld_melding_key), alg_g.alg_gebouw_omschrijving, m.mld_melding_datum, TO_CHAR (m.mld_melding_datum, 'hh24:mi'), NULL, rg.alg_ruimte_omschrijving, NULL, NULL, TO_CHAR(SUBSTR(m.mld_melding_omschrijving,1,4000)), m.mld_melding_key FROM mld_melding m, mld_stdmelding sm, mld_disc_params vgp, alg_v_allonrgoed_gegevens rg, alg_gebouw alg_g WHERE rg.alg_onroerendgoed_keys = m.mld_alg_onroerendgoed_keys AND m.mld_stdmelding_key = sm.mld_stdmelding_key AND sm.mld_ins_discipline_key = vgp.mld_ins_discipline_key AND vgp.mld_behandelgroep_key = 4 --Technische dienst AND alg_g.alg_gebouw_key = rg.alg_gebouw_key AND m.mld_melding_status IN (0, 2, 3, 4, 7); CREATE OR REPLACE PROCEDURE drie_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); BEGIN v_errorhint := 'Generieke import'; -- 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;6;2;0;0;' || '0;0;0;0;17;0;0;3;0;1;' || '10;22;0;0;0;0;5;4;7;8;' || '9;13;18;19;14;15;16;20;12;11;' || '0;0;0;0;0;0', '"Mdw.";"Medewerker";"Mail_werk";"Loc";"Locatie";"OE";"Organisatorische_eenheid";"Kostenplaats";"Funct";"Functie";"Roepnaam";"Voorvoegsel";"Geboortenaam";"Naamgebruik_code";"Voorvoegsel_partner";"Geb.naam_partner";"Geslacht";"Begindatum_contract";"Einddatum_contract";"UPN";"Login"'); -- Hier al login vullen, omdat deze anders wordt leeggemaakt en de sessie daarmee ook. Wanneer sessies leeg worden gemaakt, moet men met Mobile steeds opnieuw inloggen (57793) UPDATE fac_imp_perslid SET prs_perslid_oslogin = SUBSTR (prs_perslid_email, 1, INSTR (prs_perslid_email, '@') - 1); v_errorhint := 'Klantspecifieke aanpassingen import'; -- Klantspecifieke aanpassingen drie_post_import_perslid (p_import_key); 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 drie_import_perslid; / CREATE OR REPLACE PROCEDURE drie_post_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); CURSOR cafd IS SELECT i.prs_afdeling_naam, i.prs_kenmerk3 FROM fac_imp_perslid i WHERE i.prs_afdeling_naam NOT IN (SELECT a.prs_afdeling_naam FROM prs_afdeling a WHERE a.prs_afdeling_naam = i.prs_afdeling_naam) GROUP BY (i.prs_afdeling_naam, i.prs_kenmerk3); BEGIN v_errorhint := 'Toevoegen afdelingen'; FOR rec IN cafd LOOP BEGIN INSERT INTO prs_afdeling (prs_bedrijf_key, prs_afdeling_naam, prs_afdeling_upper, prs_afdeling_omschrijving) VALUES (2, rec.prs_afdeling_naam, UPPER(rec.prs_afdeling_naam), rec.prs_kenmerk3); END; END LOOP; 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 drie_post_import_perslid; / CREATE OR REPLACE PROCEDURE drie_update_perslid ( p_import_key IN NUMBER ) IS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_errormsg VARCHAR2 (400); v_errorhint VARCHAR2 (400); v_count NUMBER; c_persoon_inactief VARCHAR2 (30) := 'INACTIEF: '; -- Maximaal percentage aan nieuwe medewerkers tov. actieve medewerkers met een nummer c_max_delta_percentage NUMBER (10) := 1000; v_count_prs_actual NUMBER (10); v_count_prs_import NUMBER (10); -- Matching actual persons! BEGIN v_errorhint := 'Fout bij bepalen geldig bestand obv aantallen'; SELECT DECODE (COUNT (*), 0, 1, COUNT (*)) INTO v_count_prs_actual FROM prs_perslid WHERE prs_perslid_verwijder IS NULL AND prs_perslid_oslogin IS NOT NULL; SELECT DECODE (COUNT (*), 0, 1, COUNT (*)) INTO v_count_prs_import FROM prs_perslid p, fac_imp_perslid ip WHERE p.prs_perslid_oslogin IS NOT NULL AND p.prs_perslid_verwijder IS NULL AND p.prs_perslid_oslogin = ip.prs_perslid_oslogin; IF ( (TRUNC ((v_count_prs_import / v_count_prs_actual) * 100) >= (100 - c_max_delta_percentage ) ) ) THEN -- Geldig importbestand wat betreft aantal personen v_errorhint := 'Updaten personen'; -- 'NR' betekent dat op basis van personeelsNummeR wordt gematched. -- 'A' betekent altijd alle (andere/overige) werkplekken verwijderen prs.update_perslid (p_import_key, 'NR', NULL); COMMIT; -- -- Klantspecifieke aanpassingen v_errorhint := 'Klantspecifieke aanpassingen update'; drie_post_update_perslid(p_import_key); COMMIT; END IF; END drie_update_perslid; / CREATE OR REPLACE PROCEDURE drie_post_update_perslid (p_import_key IN NUMBER) IS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_errormsg VARCHAR2 (400); v_errorhint VARCHAR2 (400); c_key_default_rol NUMBER (10) := 1; v_aanduiding VARCHAR2 (200); v_groep_defaultnaam VARCHAR2 (30); p_prs_key VARCHAR2 (200); p_ruimte_key VARCHAR2 (200); -- Alle personen in de import moeten inlognaam krijgen en extern id tbv inloggen (via SAML) -- Login naam niet meer ivm 57793 CURSOR clogin IS SELECT i.prs_perslid_naam, i.prs_perslid_email, i.prs_perslid_key, i.prs_kenmerk12 FROM fac_imp_perslid i WHERE i.prs_perslid_email IS NOT NULL; -- Alle aanwezige personen met personeelsnummer (ie. de import-doelgroep) niet in een groep CURSOR cnogroup IS SELECT p.prs_perslid_key, p.prs_perslid_oslogin, p.prs_perslid_naam, p.prs_perslid_voornaam FROM prs_v_aanwezigperslid p WHERE p.prs_perslid_oslogin IS NOT NULL AND NOT EXISTS (SELECT 1 FROM fac_gebruikersgroep g WHERE g.prs_perslid_key = p.prs_perslid_key); -- Alle personen in de import moeten een werkplek krijgen. --BESLUIT 4-2-2019: Werkplekken hoeven toch niet aangemaakt te worden! -- CURSOR cwp -- IS -- SELECT i.prs_perslid_key, -- i.prs_perslid_email, -- i.prs_perslid_nr, -- i.prs_perslid_naam, -- i.prs_perslid_oslogin, -- i.prs_kenmerk2, -- (SELECT MAX(r.alg_ruimte_key) -- FROM alg_ruimte r, alg_verdieping v, alg_gebouw g, alg_locatie l -- WHERE UPPER (l.alg_locatie_code) = UPPER (i.prs_kenmerk2) -- 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_verwijder IS NULL -- AND UPPER (r.alg_ruimte_nr) = '_0') AS p_ruimte_key -- FROM fac_imp_perslid i; BEGIN -- Login naam: emailadres; Extern ID: imp_kenmerk12 = UPN (dat wordt meegegeven voor uniek attribuut tbv SAML) -- Login naam niet meer ivm 57793 FOR rec IN clogin LOOP BEGIN v_aanduiding := rec.prs_perslid_naam; v_errorhint := 'Externid updaten tbv login - ' || rec.prs_perslid_naam; UPDATE prs_perslid p SET p.prs_perslid_externid = rec.prs_kenmerk12 WHERE rec.prs_perslid_key = p.prs_perslid_key AND p.prs_perslid_verwijder IS NULL; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); COMMIT; END; END LOOP; COMMIT; -- Iedereen verwijderen die niet meer voorkomt (obv pers.nr) UPDATE prs_perslid SET prs_perslid_verwijder = SYSDATE WHERE prs_perslid_nr NOT IN (SELECT prs_perslid_nr FROM fac_imp_perslid) AND (SUBSTR (prs_perslid_oslogin, 1, 1) <> '_'); -- Iedereen krijgt _default-rol die nog geen groep heeft. v_errorhint := 'Toevoegen default gebruikersprofiel'; FOR recnogroup IN cnogroup LOOP BEGIN v_aanduiding := recnogroup.prs_perslid_oslogin || '|' || recnogroup.prs_perslid_naam || '|' || recnogroup.prs_perslid_voornaam || ' - '; v_errorhint := 'Fout bij bepalen groep met key [' || c_key_default_rol || ']'; SELECT fac_groep_upper INTO v_groep_defaultnaam FROM fac_groep WHERE fac_groep_key = c_key_default_rol; v_errorhint := 'Fout bij koppelen ' || recnogroup.prs_perslid_naam || ' aan groep met key [' || c_key_default_rol || ']'; INSERT INTO fac_gebruikersgroep (fac_groep_key, prs_perslid_key) VALUES (c_key_default_rol, recnogroup.prs_perslid_key); COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 200); v_errormsg := 'OTHERS (error ' || oracle_err_num || '/' || oracle_err_mes || ')'; fac.imp_writelog (p_import_key, 'E', v_errormsg, v_errorhint); COMMIT; END; END LOOP; -- Verhuist een persoon p_prs_key naar een werkplek in p_ruimte_key -- Als er al vaste werkplekken waren binnen het niveau van p_alg_type (R,V,G,L,D,NULL,A) -- dan worden die geleegd/gewist. Bij NULL wordt niks gewist, bij A wordt altijd gewist. --BESLUIT 4-2-2019: Werkplekken hoeven toch niet aangemaakt te worden! -- FOR recwp IN cwp -- LOOP -- BEGIN -- PRS.movetoruimte (recwp.prs_perslid_key, recwp.p_ruimte_key, 'R', 0); -- END; -- END LOOP; -- Iedereen mandateren voor alle kostenplaatsen INSERT INTO prs_perslidkostenplaats (prs_perslid_key, prs_kostenplaats_key, prs_perslidkostenplaats_boeken, prs_perslidkostenplaats_inzage) SELECT p.prs_perslid_key, NULL, 1, 0 FROM prs_v_aanwezigperslid p WHERE NOT EXISTS (SELECT 1 FROM prs_perslidkostenplaats WHERE prs_perslid_key = p.prs_perslid_key); END drie_post_update_perslid; / CREATE OR REPLACE VIEW drie_v_noti_reschange ( code, sender, receiver, text, key, xkey ) AS SELECT 'CUST01', NULL, 2841, --Persoon '_NotificatieReserveringen' ( rrg.res_omschrijving || ' - ' || TO_CHAR (rrg.datum, 'DD/MM/YYYY') || ' - ' || 'reservering is aangepast'), rrr.res_reservering_key, rrg.key FROM res_v_udr_reservering rrg, res_rsv_ruimte rrr, res_activiteit rra, fac_tracking t, fac_srtnotificatie sn WHERE rrg.activiteit = rra.res_activiteit_omschrijving AND rra.res_activiteit_verwijder IS NULL AND t.fac_tracking_refkey = rrg.key AND rrr.res_rsv_ruimte_key = rrg.key AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND sn.fac_srtnotificatie_key = 102 --RESUPD AND rra.res_activiteit_key = 30 --Activiteit Evenementen AND TRUNC (rrg.van) - 90 <= TRUNC (SYSDATE) -- Samen met res_activiteit_key 30 even ingesteld vanwege #63966 -- AND TRUNC (rrg.van) - rra.res_activiteit_posttime <= -- TRUNC (SYSDATE) AND rra.res_activiteit_posttime <> 0 AND TRUNC (rrg.van) > TRUNC (SYSDATE) AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval / 24 FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'DRIE_V_NOTI_RESCHANGE') AND (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'DRIE_V_NOTI_RESCHANGE') GROUP BY rrg.key, rrg.res_omschrijving, rrg.datum, rrr.res_reservering_key; CREATE OR REPLACE VIEW drie_v_rap_sle_toegang ( fclt_3d_locatie_key, fclt_f_bezitter, fclt_f_sleutelset_code, fclt_f_sleutelset_oms, sleutel, fclt_x_locatie, fclt_f_plaats, type, binnenbuiten ) AS SELECT l.alg_locatie_key, pf.prs_perslid_naam_full, s.ins_srtdeel_code sset_code, s.ins_srtdeel_omschrijving sset_oms, sle.ins_deel_omschrijving sleutel, l.alg_locatie_code, -- Locatie ruimte-cilinder (deur of bureau)! DECODE ( cil.ins_alg_ruimte_key_org, NULL, -- Als op (stam)bureau,.. NULL, -- ..dan nergens toegang! l.alg_locatie_code || '-' || aog.alg_gebouw_code || '-' || aog.alg_verdieping_code || '-' || aog.alg_ruimte_nr) plaats, (SELECT DISTINCT ins_kenmerkdeel_waarde FROM ins_kenmerkdeel WHERE ins_deel_key = cil.ins_deel_key AND ins_kenmerk_key = 1 AND ins_kenmerkdeel_verwijder IS NULL) AS type, (SELECT DISTINCT ins_kenmerkdeel_waarde FROM ins_kenmerkdeel WHERE ins_deel_key = cil.ins_deel_key AND ins_kenmerk_key = 2 AND ins_kenmerkdeel_verwijder IS NULL) AS binnenbuiten FROM ins_srtdeel_srtdeel iss, ins_srtdeel c, ins_v_aanwezigdeel cil, alg_v_allonrgoed_gegevens aog, alg_locatie l, ins_srtdeel s, ins_v_aanwezigdeel sle, prs_v_perslid_fullnames_all pf WHERE iss.ins_module = 'SLE' AND iss.ins_srtdeel_key_1 = c.ins_srtdeel_key AND c.ins_srtdeel_key = cil.ins_srtdeel_key AND cil.ins_alg_ruimte_type = 'R' -- Ingenomen of uitgegeven! AND cil.ins_alg_ruimte_key = aog.alg_onroerendgoed_keys AND aog.alg_locatie_key = l.alg_locatie_key AND iss.ins_srtdeel_key_2 = s.ins_srtdeel_key AND s.ins_srtdeel_key = sle.ins_srtdeel_key AND sle.ins_alg_ruimte_type = 'P' AND sle.ins_alg_ruimte_key = pf.prs_perslid_key; CREATE OR REPLACE VIEW DRIE_V_RAP_CATERING ( RES_RESERVERING_KEY, RES_RSV_RUIMTE_VOLGNR, RES_RESERVERING, RES_RSV_RUIMTE_KEY, RES_RUIMTE_KEY, RES_RUIMTE_NR, ALG_LOCATIE_CODE, ALG_LOCATIE_OMSCHRIJVING, ALG_GEBOUW_CODE, ALG_GEBOUW_NAAM, ALG_VERDIEPING_VOLGNR, ALG_VERDIEPING_OMSCHRIJVING, ALG_RUIMTE_NR, ALG_RUIMTE_OMSCHRIJVING, RES_OPSTELLING_KEY, RES_OPSTELLING_OMSCHRIJVING, RES_RSV_RUIMTE_VAN, RES_RSV_RUIMTE_OMSCHRIJVING, RES_RSV_RUIMTE_OPMERKING, RES_RSV_RUIMTE_BEZOEKERS, RES_STATUS_FO_KEY, RES_STATUS_BO_KEY, RES_RSV_ARTIKEL_LEVERING, DATUM, VAN, TOT, AANTAL, RES_ARTIKEL_KEY, ARTIKELNR, ARTIKELOMS, INS_DISCIPLINE_KEY, CATALOGUS, RES_RSV_ARTIKEL_PRIJS, RES_ARTIKEL_PRIJS, EENHEIDSPRIJS, TOTAALPRIJS, CONTACT_NAAM, CONTACT_TUSSENVOEGSEL, CONTACT_VOORLETTERS, CONTACT_VOORNAAM, CONTACT_GESLACHT, CONTACT_EMAIL, CONTACT_TELEFOONNR, CONTACT_MOBIEL, HOST_NAAM, HOST_TUSSENVOEGSEL, HOST_VOORLETTERS, HOST_VOORNAAM, HOST_GESLACHT, HOST_EMAIL, HOST_TELEFOONNR, HOST_MOBIEL, PRS_KOSTENPLAATS_NR, PRS_KOSTENSOORT_OMS, DATUM_GEREGISTREERD, LAST_MINUTE, ARTIKELKENMERKEN, RUIMTE_OMSCHRIJVING, AANVRAGER, DAG, SORT ) AS SELECT rr.res_reservering_key, rr.res_rsv_ruimte_volgnr, rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr, rr.res_rsv_ruimte_key, r.res_ruimte_key, r.res_ruimte_nr, l.alg_locatie_code, l.alg_locatie_omschrijving, g.alg_gebouw_code, g.alg_gebouw_naam, v.alg_verdieping_volgnr, v.alg_verdieping_omschrijving, ar.alg_ruimte_nr, ar.alg_ruimte_omschrijving, op.res_opstelling_key, op.res_opstelling_omschrijving, rr.res_rsv_ruimte_van, rr.res_rsv_ruimte_omschrijving, rr.res_rsv_ruimte_opmerking, rr.res_rsv_ruimte_bezoekers, rr.res_status_fo_key, rr.res_status_bo_key, ra.res_rsv_artikel_levering, TO_CHAR (ra.res_rsv_artikel_levering, 'DD-MM-YYYY') datum, TO_CHAR (ra.res_rsv_artikel_levering, 'HH24:MI') van, TO_CHAR (COALESCE (ra.res_rsv_artikel_afhalen, rr.res_rsv_ruimte_tot), 'HH24:MI') tot, ra.res_rsv_artikel_aantal aantal, a.res_artikel_key, a.res_artikel_nr artikelnr, a.res_artikel_omschrijving artikeloms, d.ins_discipline_key, d.ins_discipline_omschrijving catalogus, ra.res_rsv_artikel_prijs, a.res_artikel_prijs, a.res_artikel_prijs eenheidsprijs, res.getartikelprijs (ra.res_rsv_artikel_key) totaalprijs, c.prs_perslid_naam contact_naam, c.prs_perslid_tussenvoegsel contact_tussenvoegsel, c.prs_perslid_voorletters contact_voorletters, c.prs_perslid_voornaam contact_voornaam, DECODE (c.prs_perslid_geslacht, 0, 'V', 1, 'M', '') contact_geslacht, c.prs_perslid_email contact_email, c.prs_perslid_telefoonnr contact_telefoonnr, c.prs_perslid_mobiel contact_mobiel, h.prs_perslid_naam host_naam, h.prs_perslid_tussenvoegsel host_tussenvoegsel, h.prs_perslid_voorletters host_voorletters, h.prs_perslid_voornaam host_voornaam, DECODE (h.prs_perslid_geslacht, 0, 'V', 1, 'M', '') host_geslacht, h.prs_perslid_email host_email, h.prs_perslid_telefoonnr host_telefoonnr, h.prs_perslid_mobiel host_mobiel, k.prs_kostenplaats_nr, ks.prs_kostensoort_oms, rr.res_rsv_ruimte_aanmaak, DECODE (TRUNC (ra.res_rsv_artikel_levering), TRUNC (rr.res_rsv_ruimte_aanmaak), 'Last Minute!', ''), (SELECT LISTAGG ( COALESCE (rk.res_kenmerk_omschrijving, rs.res_srtkenmerk_omschrijving) || ': ' || rak.res_kenmerkartikel_waarde, CHR (10)) FROM res_v_aanwezigkenmerkartikel rak, res_kenmerk rk, res_srtkenmerk rs WHERE rak.res_kenmerk_key = rk.res_kenmerk_key AND rak.res_rsv_artikel_key = ra.res_rsv_artikel_key AND rk.res_srtkenmerk_key = rs.res_srtkenmerk_key AND rak.res_kenmerkartikel_verwijder IS NULL) artikel_kenmerken, COALESCE (r.res_ruimte_nr, ar.alg_ruimte_omschrijving), cn.prs_perslid_naam_friendly, DECODE (TRUNC (ra.res_rsv_artikel_levering), TRUNC (SYSDATE), 'Vandaag', TRUNC (SYSDATE) + 1, 'Morgen', 'Onbekend'), ( rr.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr || '_' || TO_CHAR (ra.res_rsv_artikel_levering, 'DD-MM-YYYY') || '_' || TO_CHAR (ra.res_rsv_artikel_levering, 'HH24:MI')) FROM res_rsv_artikel ra, res_artikel a, res_discipline d, res_rsv_ruimte rr, res_ruimte_opstelling ro, res_opstelling op, res_ruimte r, alg_ruimte ar, alg_verdieping v, alg_gebouw g, alg_locatie l, prs_perslid c, prs_v_perslid_fullnames cn, prs_kostenplaats k, prs_kostensoort ks, prs_perslid h WHERE rr.res_rsv_ruimte_verwijder IS NULL AND a.res_artikel_key = ra.res_artikel_key AND d.ins_discipline_key = a.res_discipline_key -- AND d.ins_discipline_key IN (36, 841, 881) -- Catering catalogi: Catering, Koffie&Thee, Lunch AND rr.res_rsv_ruimte_key = ra.res_rsv_ruimte_key AND rr.res_ruimte_opstel_key = ro.res_ruimte_opstel_key(+) AND ro.res_ruimte_key = r.res_ruimte_key(+) AND ro.res_opstelling_key = op.res_opstelling_key(+) AND rr.alg_ruimte_key = ar.alg_ruimte_key(+) AND ar.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 rr.res_rsv_ruimte_contact_key = c.prs_perslid_key AND c.prs_perslid_key = cn.prs_perslid_key AND rr.prs_kostenplaats_key = k.prs_kostenplaats_key(+) AND d.prs_kostensoort_key = ks.prs_kostensoort_key(+) AND rr.res_rsv_ruimte_host_key = h.prs_perslid_key AND rr.res_rsv_ruimte_dirtlevel = 0; CREATE OR REPLACE VIEW drie_v_noti_reschange10 ( code, sender, receiver, text, key, xkey, xsender, xemail, xmobile ) AS SELECT DISTINCT 'CUST02', NULL, ag.prs_perslid_key, ( 'Reservering ' || rrr.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr || ' (' || TO_CHAR (rrr.res_rsv_ruimte_van, 'DD/MM/YYYY') || ') ' || rrr.res_rsv_ruimte_omschrijving || ', is ' || DECODE (sn.fac_srtnotificatie_key, 101, 'nieuw ingevoerd', 102, 'aangepast', 106, 'vervallen') || ' op ' || TO_CHAR (t.fac_tracking_datum, 'DD/MM/YYYY HH24:MI')), rrr.res_reservering_key, rrr.res_rsv_ruimte_key, NULL, NULL, NULL FROM res_rsv_ruimte rrr, res_rsv_artikel rra, fac_tracking t, fac_srtnotificatie sn, fac_gebruikersgroep ag WHERE t.fac_tracking_refkey = rrr.res_rsv_ruimte_key AND t.fac_srtnotificatie_key = sn.fac_srtnotificatie_key AND ag.fac_groep_key = 261 --Autorisatiegroep tbv notificatie AND sn.fac_srtnotificatie_key IN (101, 102, 106) --RESNEW, RESUPD, RESDEL AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key AND TRUNC (rrr.res_rsv_ruimte_van) - 10 <= TRUNC (SYSDATE) AND TRUNC (rrr.res_rsv_ruimte_van) >= TRUNC (SYSDATE) AND t.fac_tracking_datum BETWEEN (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval / 24 FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'DRIE_V_NOTI_RESCHANGE10') AND (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE fac_notificatie_job_view = 'DRIE_V_NOTI_RESCHANGE10'); ------ 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