-- -- $Id$ -- -- Script containing customer specific sql statements for the FACILITOR database -- Voor dbuser invullen: - indien script voor 1 klant is: 'AADS' (de klantcode, zoals vermeld in fac_version_cust) -- - script is voor meerdere klanten: 'AAXX' (de groepcode, zoals vermeld in fac_version_group) -- - script is voor meerdere klanten met naam volgens een bepaald patroon: '^AA|^ASMS|^GULU|^NMMS|^RABO|^ZKHM' -- Ook als het script gedraaid wordt voor de verkeerde cust wordt er een logfile gemaakt. -- (dit in tegenstelling tot sample_xxxx.sql) DEFINE thisfile = 'FBEA.SQL' DEFINE dbuser = 'FBEA' 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 PROCEDURE fbea_processemail (pfrom IN VARCHAR2, pto IN VARCHAR2, psubject IN VARCHAR2, pbody IN VARCHAR2, psessionid IN VARCHAR2, pemailkey IN NUMBER) AS v_count NUMBER; sender prs_perslid.prs_perslid_key%TYPE; defaultstdmelding fac_setting.fac_setting_default%TYPE; subject_regexp fac_setting.fac_setting_default%TYPE; v_newkey mld_melding.mld_melding_key%TYPE; v_gebouwkey mld_melding.mld_alg_onroerendgoed_keys%TYPE; v_locatiekey mld_melding.mld_alg_locatie_key%TYPE; v_mldnum VARCHAR2 (4000); v_mldkey mld_melding.mld_melding_key%TYPE; v_email fac_notificatie.fac_notificatie_receiver_email%TYPE; v_check NUMBER; v_pbody VARCHAR2 (4000); v_folder_kkey mld_kenmerk.mld_kenmerk_key%TYPE; -- kkey mld_kenmerk.mld_kenmerk_key%TYPE; errormsg fac_result.fac_result_waarde%TYPE; BEGIN -- Valideer de sender in pfrom: kennen we deze? SELECT COUNT (*) INTO v_count FROM prs_perslid p WHERE UPPER (prs_perslid_email) = UPPER (pfrom); -- Bekende afzender --> dat is de melder IF (v_count = 1) THEN SELECT prs_perslid_key INTO sender FROM prs_perslid p WHERE UPPER (prs_perslid_email) = UPPER (pfrom); -- Geen bekende afzender --> _FACILITOR ELSE SELECT prs_perslid_key INTO sender FROM prs_perslid p WHERE prs_perslid_key = 3; END IF; CASE -- Op basis van het mailadres bepalen we het gebouw waar de melding voor bedoeld is -- Voorlopig doen we dat alleen voor Het Eemhuis en ICOON -- 11 Eemhuis -- 2 ICOON -- 3 Bibliotheek Baarn -- 4 Bibliotheek Bunschoten -- 5 Bibliotheek Hoogland -- 6 Scholen in de Kunst Hoogland -- 7 Bibliotheek Leusden Aanbouw -- 8 Scholen in de Kunst Leusden -- 9 Scholen in de Kunst Soest -- 10 Bibliotheek Woudenberg -- 901 Bibliotheek Woudenberg - Boerderij -- 921 Bibliotheek Leusden Boerderij WHEN UPPER (pto) LIKE 'HETEEMHUIS@%' THEN v_gebouwkey := '1'; WHEN UPPER (pto) LIKE 'ICOON@%' THEN v_gebouwkey := '2'; ELSE NULL; END CASE; -- Check of de afzender pfrom een reply op een bestaande melding doet, in dat geval wordt dat in notities genoteerd. -- 1) Eerst uit het onderwerp het meldingnummer proberen te onderscheppen, uitgangspunt dat in het onderwerp het meldingnummer '1234' kan worden opgevist, met ervoor en erna een spatie -- 2) Het 1e nummer dat in het onderwerp staat wordt gezien als meldingnummer, eventuele andere nummers later in het onderwerp worden genegeerd. subject_regexp := '[[:digit:]]{1,}'; v_mldnum := REGEXP_SUBSTR (psubject, subject_regexp, 1, 1, 'i'); v_mldkey := fac.safe_to_number (v_mldnum); --- kijken of er inderdaad een melding bestaat met het gevonden nummer SELECT COUNT (m.mld_melding_key) INTO v_check FROM mld_melding m WHERE m.mld_melding_key = v_mldkey; IF v_check = 1 THEN -- Bestaande melding gevonden dus we zetten de mail als notitie bij deze melding BEGIN INSERT INTO mld_melding_note (mld_melding_key, mld_melding_note_omschrijving, prs_perslid_key) VALUES ( v_mldkey, SUBSTR ( psubject || CHR (13) || CHR (10) || REPLACE (SUBSTR (v_pbody, 1, 4000 - (LENGTH (psubject) + 2)), CHR (13) || CHR (10) || CHR (13) || CHR (10), CHR (13) || CHR (10)), 1, 4000), -- verwijder onnodige witregels sender); --- vlaggeteje melding bij aanvrager zetten UPDATE mld_melding SET mld_melding_actiecode = 2 WHERE mld_melding_key = v_mldkey; --- notificatie naar (niet geregistreerd) aanvrager SELECT COALESCE (m.mld_melding_email_ext, p.prs_perslid_email) email INTO v_email FROM mld_melding m, prs_perslid p WHERE m.prs_perslid_key_voor = p.prs_perslid_key AND m.mld_melding_key = v_mldkey; INSERT INTO fac_notificatie (fac_srtnotificatie_key, fac_notificatie_status, prs_perslid_key_receiver, fac_notificatie_receiver_email, fac_notificatie_oms, fac_notificatie_refkey, fac_notificatie_prioriteit) VALUES (69, --- mldnot 2, NULL, v_email, 'Er is een opmerking geplaatst bij melding ' || TO_CHAR (v_mldkey), v_mldkey, 2); -- Find the lowest volgnummer of the Folder-flexfield. SELECT MIN (k1.mld_kenmerk_key) INTO v_folder_kkey FROM mld_stdmelding sm1, ins_tab_discipline td1, mld_kenmerk k1, mld_srtkenmerk sk1, mld_melding m WHERE m.mld_stdmelding_key = sm1.mld_stdmelding_key AND m.mld_melding_key = v_mldkey 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') OR (k1.mld_kenmerk_niveau = 'A')); IF v_folder_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 || '\' || v_folder_kkey || '\'); END IF; fac.trackaction ('MLDTRK', v_mldkey, NULL, NULL, 'Nieuwe notitie via Mail2melding'); END; ELSE IF v_gebouwkey IS NOT NULL THEN BEGIN SELECT g.alg_locatie_key INTO v_locatiekey FROM alg_gebouw g WHERE g.alg_gebouw_key = v_gebouwkey; INSERT INTO mld_melding (mld_melding_module, mld_meldbron_key, mld_melding_datum, mld_melding_onderwerp, mld_melding_omschrijving, mld_melding_status, mld_stdmelding_key, mld_alg_locatie_key, mld_alg_onroerendgoed_keys, prs_perslid_key, prs_perslid_key_voor, mld_melding_email_ext, mld_melding_spoed) VALUES ( 'MLD', 4, -- email SYSDATE, SUBSTR (psubject, 1, 60), SUBSTR ( REPLACE (SUBSTR (pbody, 1, 4000), CHR (13) || CHR (10) || CHR (13) || CHR (10), CHR (13) || CHR (10)), 1, 4000), -- verwijder onnodige witregels 2, 61, v_locatiekey, v_gebouwkey, sender, sender, pfrom, 3) RETURNING mld_melding_key INTO v_newkey; INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'maillog', 'Geregistreerd onder melding ' || v_newkey); END; IF errormsg IS NOT NULL THEN INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'errormsg', errormsg); END IF; END IF; END IF; EXCEPTION WHEN OTHERS THEN fac.writelog ( 'PROCESSEMAIL', 'W', 'Mail kon niet verwerkt worden afzender: ' || pfrom || '[' || errormsg || ']', 'OTHERS (error ' || SQLCODE || '/' || SUBSTR (SQLERRM, 1, 100) || ')'); INSERT INTO fac_result (fac_result_sessionid, fac_result_naam, fac_result_waarde) VALUES (psessionid, 'errormsg', 'Database fout - Neem contact op met uw systeembeheerder'); END fbea_processemail; / CREATE OR REPLACE VIEW FBEA_V_TEAMLEIDERS_BIEB ( PRS_PERSLID_KEY, PRS_PERSLID_NAAM, PRS_PERSLID_VERWIJDER ) AS SELECT p.prs_perslid_key, pf.prs_perslid_naam_friendly, pf.prs_perslid_verwijder FROM prs_perslid p, prs_v_perslid_fullnames_all pf, prs_srtperslid f WHERE p.prs_perslid_key = pf.prs_perslid_key AND p.prs_srtperslid_key = f.prs_srtperslid_key AND f.prs_srtperslid_upper = 'TEAMLEIDER BIBLIOTHEEK'; CREATE OR REPLACE VIEW FBEA_V_NOTI_EVALUATIE ( CODE, SENDER, RECEIVER, TEXT, KEY, XKEY ) AS SELECT sn.fac_srtnotificatie_code, '', evaluatie.contact_key, REPLACE (sn.fac_srtnotificatie_oms, '##nr##', evaluatie.reservering) tekst, evaluatie.res_reservering_key, NULL xkey FROM ( SELECT r.res_reservering_key, r.res_reservering_key reservering, c.prs_perslid_key contact_key, c.prs_perslid_email contact_email, h.prs_perslid_key host_key, h.prs_perslid_email host_email, MAX (r.res_rsv_ruimte_volgnr), MAX (r.res_rsv_ruimte_tot), r.res_rsv_ruimte_omschrijving, TO_CHAR (MAX (r.res_rsv_ruimte_tot) + 1, 'DD-MM-YYYY') AS notificatie_datum FROM res_rsv_ruimte r, prs_perslid h, prs_perslid c WHERE r.res_activiteit_key = 30 --- actviteiten bibliotheken Eemland AND r.res_rsv_ruimte_contact_key = c.prs_perslid_key AND r.res_rsv_ruimte_host_key = h.prs_perslid_key GROUP BY r.res_reservering_key, r.res_reservering_key, c.prs_perslid_key, c.prs_perslid_email, h.prs_perslid_key, h.prs_perslid_email, r.res_rsv_ruimte_omschrijving) evaluatie, fac_notificatie_job nj, fac_srtnotificatie sn WHERE sn.fac_srtnotificatie_code = 'CUST01' AND nj.fac_notificatie_job_view = 'FBEA_V_NOTI_EVALUATIE' AND fac.safe_to_date (notificatie_datum, 'DD-MM-YYYY') = TRUNC (SYSDATE); CREATE OR REPLACE VIEW FBEA_V_RAP_INFOBORD ( RESERVERING, AKTIEF, DATUM, DAG, TIJD_VAN, TIJD_TOT, RUIMTE, GASTHEER, OMSCHRIJVING, LOCATIE_OMSCHRIJVING, GEBOUW_CODE, GEBOUW, VERDIEPING_OMSCHRIJVING, VERDIEPING_VOLGNR, TITEL, PUBLIEKE_OMSCHRIJVING ) 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, TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag, TO_CHAR (res_rsv_ruimte_van, 'hh24:mi') tijd_van, TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi') tijd_tot, res_ruimte_nr ruimte, gastheer.prs_perslid_naam_full gastheer, 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, po.omschrijving publieke_omschrijving 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 = 141 AND ut.fac_usrtab_key = 4) weergeven, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde titel FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND sk.res_srtkenmerk_key = 161) titel, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde omschrijving FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND sk.res_srtkenmerk_key = 162) po 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 po.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND weergeven.fac_usrdata_key = 33 --- weergeven is 'Ja' of onbekend AND UPPER (sf.res_status_fo_omschrijving) = 'DEFINITIEF'; CREATE OR REPLACE VIEW FBEA_V_RAP_AKKOORD_ACT ( RES_RSV_RUIMTE_KEY, RESERVERING_KEY, RESERVERING, DATUM_SPECIALIST, BEOORDELING_SPECIALIST, DATUM_TEAMLEIDER, BEOORDELING_TEAMLEIDER, DATUM_MARCOM, BEOORDELING_MARCOM ) AS SELECT rr.res_rsv_ruimte_key, res.res_reservering_key, res.res_reservering_key || '/' || rr.res_rsv_ruimte_volgnr, datum_spec_akkoord, beoordeling_spec, datum_tl_akkoord, beoordeling_marcom, datum_marcom_akkoord, beoordeling_tl FROM res_rsv_ruimte rr, res_reservering res, (SELECT kw.res_rsv_ruimte_key, res_kenmerkwaarde_aanmaak datum_spec_akkoord, ud.fac_usrdata_upper beoordeling_spec FROM res_kenmerk k, res_kenmerkwaarde kw, fac_usrdata ud WHERE k.res_kenmerk_key = 8 --- Specialist akkoord? AND k.res_activiteit_key = 30 AND kw.res_kenmerk_key = k.res_kenmerk_key AND kw.res_kenmerkwaarde_verwijder IS NULL AND ud.fac_usrdata_key = fac.safe_to_number (kw.res_kenmerkreservering_waarde)) spec_akkoord, (SELECT kw.res_rsv_ruimte_key, res_kenmerkwaarde_aanmaak datum_tl_akkoord, ud.fac_usrdata_upper beoordeling_tl FROM res_kenmerk k, res_kenmerkwaarde kw, fac_usrdata ud WHERE k.res_kenmerk_key = 10 --- Teamleider akkoord? AND k.res_activiteit_key = 30 AND kw.res_kenmerk_key = k.res_kenmerk_key AND kw.res_kenmerkwaarde_verwijder IS NULL AND ud.fac_usrdata_key = fac.safe_to_number (kw.res_kenmerkreservering_waarde)) tl_akkoord, (SELECT kw.res_rsv_ruimte_key, res_kenmerkwaarde_aanmaak datum_marcom_akkoord, ud.fac_usrdata_upper beoordeling_marcom FROM res_kenmerk k, res_kenmerkwaarde kw, fac_usrdata ud WHERE k.res_kenmerk_key = 12 --- MarCom akkoord? AND k.res_activiteit_key = 30 AND kw.res_kenmerk_key = k.res_kenmerk_key AND kw.res_kenmerkwaarde_verwijder IS NULL AND ud.fac_usrdata_key = fac.safe_to_number (kw.res_kenmerkreservering_waarde)) marcom_akkoord WHERE rr.res_rsv_ruimte_verwijder IS NULL AND rr.res_activiteit_key = 30 AND rr.res_reservering_key = res.res_reservering_key AND spec_akkoord.res_rsv_ruimte_key = rr.res_rsv_ruimte_key AND tl_akkoord.res_rsv_ruimte_key = rr.res_rsv_ruimte_key AND marcom_akkoord.res_rsv_ruimte_key = rr.res_rsv_ruimte_key; CREATE OR REPLACE VIEW FBEA_V_NOTI_ACT_NIET_AKK ( SENDER, RECEIVER, TEXT, CODE, FAC_SRTNOTIFICATIE_KEY, KEY, XKEY, XEMAIL, XMOBILE ) AS SELECT DISTINCT NULL sender, NULL receiver, REPLACE (n.fac_srtnotificatie_oms, '##nr##', a.reservering) tekst, fac_srtnotificatie_code, n.fac_srtnotificatie_key, a.reservering_key, a.res_rsv_ruimte_key, 'k.postel@bibliotheekeemland.nl;j.haanstra@bibliotheekeemland.nl' xemail, NULL xmobile FROM fbea_v_rap_akkoord_act a, fac_srtnotificatie n WHERE n.fac_srtnotificatie_code = 'CUST02' AND ( a.beoordeling_marcom = 'NIET AKKOORD' OR a.beoordeling_specialist = 'NIET AKKOORD' OR a.beoordeling_teamleider = 'NIET AKKOORD') AND (GREATEST (datum_specialist, datum_teamleider, datum_marcom)) > (SELECT fac_notificatie_job_nextrun - fac_notificatie_job_interval / 24 FROM fac_notificatie_job WHERE UPPER (fac_notificatie_job_view) = 'FBEA_V_NOTI_ACT_NIET_AKK') AND (GREATEST (datum_specialist, datum_teamleider, datum_marcom)) < (SELECT fac_notificatie_job_nextrun FROM fac_notificatie_job WHERE UPPER (fac_notificatie_job_view) = 'FBEA_V_NOTI_ACT_NIET_AKK'); CREATE OR REPLACE VIEW FBEA_V_COORD_SIDK ( PRS_PERSLID_KEY, PRS_PERSLID_NAAM, PRS_PERSLID_VERWIJDER ) AS SELECT p.prs_perslid_key, p.prs_perslid_naam_friendly, p.prs_perslid_verwijder FROM fac_groep g, fac_gebruikersgroep gg, prs_v_perslid_fullnames_all p WHERE g.fac_groep_key = 261 AND gg.fac_groep_key = g.fac_groep_key AND p.prs_perslid_key = gg.prs_perslid_key; CREATE OR REPLACE PROCEDURE fbea_topdesk AS oracle_err_num NUMBER; oracle_err_mes VARCHAR2 (200); v_errorhint VARCHAR2 (100); v_aanduiding VARCHAR2 (100); v_locatie_key NUMBER; v_lengte NUMBER; v_new_note VARCHAR2 (4000); -- Dit haalt het externnummer op uit de opdrachtomschrijving indien externnr bij de melding nog leeg is CURSOR externnr IS SELECT DISTINCT m.mld_melding_key, o.mld_opdr_key, o.mld_opdr_externnr AS externnr, SUBSTR (o.mld_opdr_omschrijving, INSTR (o.mld_opdr_omschrijving, 'TOPdesk nr:') + 12) topdesknr FROM mld_melding m, mld_opdr o WHERE m.mld_melding_key = o.mld_melding_key AND o.mld_opdr_externnr IS NOT NULL AND o.mld_uitvoerende_keys = 1081 --- voorlopig in ieder geval alleen Duzz ICT AND o.mld_statusopdr_key NOT IN (1, 2, 6, 7, 9) AND m.mld_melding_externnr IS NULL; -- Onderstaande cursor verzamelt de gegevens om te bepalen welke meldingen nieuwe opmerkingen heeft en die verzonden kunnen worden naar Topdesk -- Alle notities bij een melding / opdracht die niet al eerder zijn verstuurd en niet door DUZZ zijn gemaakt mogen verstuurd worden CURSOR sync IS SELECT n.mld_melding_key, --- meldingen notes n.mld_opdr_key, n.notitie, n.mld_melding_note_aanmaak FROM ( SELECT mld.mld_melding_key, o.mld_opdr_key, LISTAGG ( pfn.prs_perslid_naam_friendly || '/' || mn.mld_melding_note_aanmaak || ' ' || mn.mld_melding_note_omschrijving, '; ') WITHIN GROUP (ORDER BY mld.mld_melding_key) notitie, MAX (mn.mld_melding_note_aanmaak) mld_melding_note_aanmaak FROM mld_melding mld, mld_melding_note mn, mld_opdr o, prs_perslid p, prs_v_perslid_fullnames_all pfn WHERE mn.mld_melding_key = mld.mld_melding_key AND mn.prs_perslid_key = pfn.prs_perslid_key AND pfn.prs_perslid_key = p.prs_perslid_key AND ( UPPER (p.prs_perslid_email) NOT LIKE '%DUZZ%' OR p.prs_perslid_email IS NULL) -- notities door Duzz zelf gemaakt sturen we niet terug AND mld.mld_melding_key = o.mld_melding_key -- alleen naar Duzz als er ook een opdracht bij Duzz is AND o.mld_uitvoerende_keys = 1081 -- We doen dit alleen voor opdrachten die voor Duzz zijn AND o.mld_statusopdr_key IN (5, 8) AND mld_melding_note_aanmaak > o.mld_opdr_datumbegin AND ( mld.mld_melding_externsyncdate < mld_melding_note_aanmaak OR mld.mld_melding_externsyncdate IS NULL) GROUP BY mld.mld_melding_key, o.mld_opdr_key ORDER BY mld_melding_key, mld_melding_note_aanmaak DESC) n, (SELECT mld_melding_key, aant_char FROM ( SELECT mld.mld_melding_key, SUM (LENGTH (mn.mld_melding_note_omschrijving)) aant_char FROM mld_melding mld, mld_melding_note mn, mld_stdmelding sm, mld_opdr o, prs_v_perslid_fullnames_all prs, prs_perslid p WHERE mn.mld_melding_key = mld.mld_melding_key AND sm.mld_stdmelding_key = mld.mld_stdmelding_key AND mn.prs_perslid_key = prs.prs_perslid_key AND prs.prs_perslid_key = p.prs_perslid_key AND ( UPPER (p.prs_perslid_email) NOT LIKE '%DUZZ%' OR p.prs_perslid_email IS NULL) AND mld.mld_melding_key = o.mld_melding_key -- Enkel bijwerken indien er ook een opdracht is. AND o.mld_uitvoerende_keys = 1081 -- We doen dit alleen voor opdrachten die bij Duzz liggen AND o.mld_statusopdr_key IN (5, 8) AND mld_melding_note_aanmaak > o.mld_opdr_datumbegin AND ( mld.mld_melding_externsyncdate < mld_melding_note_aanmaak OR mld.mld_melding_externsyncdate IS NULL) GROUP BY mld.mld_melding_key) WHERE aant_char < 4000) t WHERE t.mld_melding_key = n.mld_melding_key UNION ALL SELECT n.mld_melding_key, -- opdrachten notes n.mld_opdr_key, n.notitie, n.mld_melding_note_aanmaak FROM ( SELECT mld.mld_melding_key, o.mld_opdr_key, LISTAGG ( pfn.prs_perslid_naam_friendly || '/' || opdrn.mld_opdr_note_aanmaak || ' ' || opdrn.mld_opdr_note_omschrijving, '; ') WITHIN GROUP (ORDER BY mld.mld_melding_key) notitie, MAX (opdrn.mld_opdr_note_aanmaak) mld_melding_note_aanmaak FROM mld_melding mld, mld_opdr_note opdrn, mld_opdr o, prs_perslid p, prs_v_perslid_fullnames_all pfn WHERE opdrn.mld_opdr_key = o.mld_opdr_key AND opdrn.prs_perslid_key = pfn.prs_perslid_key AND pfn.prs_perslid_key = p.prs_perslid_key AND mld.mld_melding_key = o.mld_melding_key -- alleen naar Duzz als er ook een opdracht bij Duzz is AND o.mld_uitvoerende_keys = 1081 -- We doen dit alleen voor opdrachten die voor Duzz zijn AND o.mld_statusopdr_key IN (5, 8) AND NOT EXISTS (SELECT 1 FROM prs_perslid duzz WHERE duzz.prs_perslid_key = 621 AND p.prs_perslid_key = duzz.prs_perslid_key) -- notities door Duzz zelf gemaakt sturen we niet terug AND ( mld.mld_melding_externsyncdate < opdrn.mld_opdr_note_aanmaak OR mld.mld_melding_externsyncdate IS NULL) GROUP BY mld.mld_melding_key, o.mld_opdr_key ORDER BY mld_melding_key, mld_melding_note_aanmaak DESC) n, (SELECT mld_melding_key, aant_char FROM ( SELECT mld.mld_melding_key, SUM (LENGTH (opdrn.mld_opdr_note_omschrijving)) aant_char FROM mld_melding mld, mld_opdr_note opdrn, mld_opdr o WHERE opdrn.mld_opdr_key = o.mld_opdr_key AND mld.mld_melding_key = o.mld_melding_key -- Enkel bijwerken indien er ook een opdracht is. AND o.mld_uitvoerende_keys = 1081 -- We doen dit alleen voor opdrachten die bij Duzz liggen AND o.mld_statusopdr_key IN (5, 8) AND NOT EXISTS (SELECT 1 FROM prs_perslid duzz WHERE duzz.prs_perslid_key = 621 AND opdrn.prs_perslid_key = duzz.prs_perslid_key) -- notities door Duzz zelf gemaakt sturen we niet terug AND ( mld.mld_melding_externsyncdate < opdrn.mld_opdr_note_aanmaak OR mld.mld_melding_externsyncdate IS NULL) GROUP BY mld.mld_melding_key) WHERE aant_char < 4000) t WHERE t.mld_melding_key = n.mld_melding_key; --- meldingen waarbij het totaal te versturen notities de 4000 karakters overschrijdt --- deze zetten we in de tracking CURSOR large IS SELECT mld_melding_key, mld_opdr_key, aant_char FROM ( SELECT mld.mld_melding_key, o.mld_opdr_key, SUM (LENGTH (mn.mld_melding_note_omschrijving)) aant_char FROM mld_melding mld, mld_melding_note mn, mld_stdmelding sm, mld_opdr o, prs_v_perslid_fullnames_all prs, prs_perslid p WHERE mn.mld_melding_key = mld.mld_melding_key AND sm.mld_stdmelding_key = mld.mld_stdmelding_key AND mn.prs_perslid_key = prs.prs_perslid_key AND p.prs_perslid_key = prs.prs_perslid_key AND ( UPPER (p.prs_perslid_email) NOT LIKE '%DUZZ%' OR p.prs_perslid_email IS NULL) AND mld.mld_melding_key = o.mld_melding_key -- Enkel relavant indien er ook een opdracht is. AND o.mld_uitvoerende_keys = 1081 -- We doen dit alleen voor opdrachten die voor Duzz zijn AND o.mld_statusopdr_key IN (5, 8) AND mld_melding_note_aanmaak > o.mld_opdr_datumbegin AND ( mld.mld_melding_externsyncdate < mld_melding_note_aanmaak OR mld.mld_melding_externsyncdate IS NULL) GROUP BY mld.mld_melding_key, o.mld_opdr_key) WHERE aant_char > 4000; BEGIN v_errorhint := 'init'; v_lengte := 0; -- Hier vullen we het externnr bij de melding bij de opdracht binnenkomt vanuit Topdesk FOR rec IN externnr LOOP BEGIN v_aanduiding := 'Topdesknr zetten bij melding: ' || rec.mld_melding_key; v_errorhint := 'Melding vullen met externnr voor melding ' || rec.mld_melding_key; UPDATE mld_melding SET mld_melding_externnr = rec.topdesknr WHERE mld_melding_key = rec.mld_melding_key; -- Vervolgens zetten we de sync state zodat we weten vanaf wanneer de sync van notities en bijlagen mag gaan lopen UPDATE mld_melding SET mld_melding_externsyncdate = SYSDATE WHERE mld_melding_externsyncdate IS NULL AND mld_melding_key = rec.mld_melding_key; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); -- aanmaken mldtrk in fac_tracking INSERT INTO fac_tracking (fac_srtnotificatie_key, fac_tracking_refkey, fac_tracking_oms) VALUES (207, rec.mld_melding_key, v_aanduiding || '/' || oracle_err_num || ': ' || oracle_err_mes); END; END LOOP; FOR rec IN sync LOOP BEGIN -- Eerst verzamelen we alle nieuwe notities en zetten deze klaar in een kenmerk voor verzending v_aanduiding := 'Note naar Topdesk voor melding: ' || rec.mld_melding_key; v_errorhint := 'Notities verzamelen voor verzending ' || rec.mld_melding_key; -- Daarvoor moeten we de juiste kenmerkkey bepalen, dit kenmerk is bij alle opdrachttypen aangemaakt SELECT k.mld_kenmerk_key INTO v_new_note FROM mld_kenmerk k, mld_srtkenmerk sk WHERE sk.mld_srtkenmerk_key = k.mld_srtkenmerk_key AND UPPER (sk.mld_srtkenmerk_omschrijving) = 'UPDATE NOTITIES'; -- De oude notitie gooien we weg DELETE MLD_KENMERKOPDR ko WHERE ko.mld_opdr_key = rec.mld_opdr_key AND ko.mld_kenmerk_key = v_new_note; -- Dan vullen we de nieuwe notitie mld.upsertopdrachtkenmerk (v_new_note, rec.mld_opdr_key, rec.notitie); v_errorhint := 'Opdracht opnieuw te verzenden naar Topdesk voor melding: ' || rec.mld_melding_key; -- Eerst zetten we de opdracht opnieuw klaar om te verzenden UPDATE mld_opdr o SET mld_opdr_teverzenden = 2, mld_opdr_verzonden = NULL WHERE o.mld_opdr_key = rec.mld_opdr_key; v_errorhint := 'Syncdatum Topdesk bijwerken voor melding ' || rec.mld_melding_key; -- Als er nog niet eerder gesynchroniseerd is maken we een kenmerk aan met de syncdatum -- Als al eerder gesynchroniseerd is werken we de syncdatum bij -- Hiermee komt deze notitie de volgende keer niet meer voor in de cursor UPDATE mld_melding m SET m.mld_melding_externsyncdate = SYSDATE WHERE rec.mld_melding_key = m.mld_melding_key; --- deze notitie moet resulteren in een patch naar Topdesk --- dat wordt getriggerd door een ordupd fac.trackaction ('ORDUPD', rec.mld_opdr_key, NULL, NULL, 'Notitie naar Duzz: ' || rec.notitie); COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); -- aanmaken ordtrk in fac_tracking INSERT INTO fac_tracking (fac_srtnotificatie_key, fac_tracking_refkey, fac_tracking_oms) VALUES (210, rec.mld_opdr_key, v_aanduiding || '/' || oracle_err_num || ': ' || oracle_err_mes); END; END LOOP; FOR rec IN large LOOP BEGIN -- v_aanduiding := 'Notities bij melding ' || rec.mld_melding_key || ' te groot voor export naar Topdesk.'; -- aanmaken mldtrk in fac_tracking INSERT INTO fac_tracking (fac_srtnotificatie_key, fac_tracking_refkey, fac_tracking_oms) VALUES (207, rec.mld_opdr_key, v_aanduiding); END; END LOOP; COMMIT; EXCEPTION WHEN OTHERS THEN oracle_err_num := SQLCODE; oracle_err_mes := SUBSTR (SQLERRM, 1, 100); fac.writelog ('Topdesk', 'E', oracle_err_num || '/' || oracle_err_mes, v_errorhint); END fbea_topdesk; / CREATE OR REPLACE VIEW FBEA_V_RAP_ACT_EVALUATIE ( RES_RSV_RUIMTE_KEY, RESERVERING, DATUM, DAG, TIJD_VAN, TIJD_TOT, LOCATIE_OMSCHRIJVING, GEBOUW, RUIMTE, GASTHEER, OMSCHRIJVING, TITEL, PUBLIEKE_OMSCHRIJVING, KWALITATIEVE_DOELST, KWANTITATIEVE_DOELST, WIE_ORGANISEERT, DOELGROEP, VOLKS_UITGESPROKEN, BESCHEIDEN_OUDEREN, GEZELLIGE_EMPTYNESTERS, PLANNEN_RENNEN, GEWOON_GEMIDDELD, WAAROM_MENSEN_KOMEN, SPREKERS_ONDERW, BEGROTING_VOOR, KAART_VERKOOP, MLD_KEY, EVALUATIENR, AANMAAKDATUM_EVALUATIE, EINDDATUM_EVALUATIE, KWALITATIEVE_DOELST_BEHAALD, TOELICHTING_KWAL_DOELST, KWANTITATIEVE_DOELST_BEHAALD, TOELICHTING_KWANT_DOELST, FINANCIEEL_EINDRESULT, AANDACHTSPUNTEN, TEVREDENHEIDSSCORE, WEBSITE_BEZOEKEN, CLICKS_NIEUWSBRIEF, CLICKS_SOCIAL_MEDIA, PERSBERICHT, FLYER, INZET_BETAALMIDDELEN, RESULTATEN_ENQUETE ) AS SELECT r.res_rsv_ruimte_key, r.reservering, r.datum, r.dag, r.tijd_van, r.tijd_tot, r.locatie_omschrijving, r.gebouw, r.ruimte, r.gastheer, r.omschrijving, r.titel, r.publieke_omschrijving, r.kwalitatieve_doelstelling, r.kwantitatieve_doelstelling, r.wie_organiseert, r.doelgroep, r.volks_uitgesproken, r.bescheiden_ouderen, r.gezellige_emptynesters, r.plannen_rennen, r.gewoon_gemiddeld, r.waarom_moeten_mensen_komen, r.sprekers_onderw, r.begroting_voor, r.kaart_verkoop, m.evaluatienr mldkey, m.evaluatienr, m.aanmaakdatum_evaluatie, m.einddatum_evaluatie, m.kwalitatieve_doelstelling_behaald, m.toelichting_kwalitatieve_doelstelling, m.kwantitatieve_doelstelling_behaald, m.toelichting_kwantitatieve_doelstelling, m.financieel_eindresultaat, m.aandachtspunten, m.tevredenheidsscore, m.website_bezoeken, m.aantal_clicks_nieuwsbrief, m.aantal_clicks_social_media, m.persbericht, m.flyer, m.inzet_betaalmiddelen, m.resultaten_enquete FROM (SELECT rrr.res_rsv_ruimte_key, res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reservering, res_rsv_ruimte_van datum, TO_CHAR (res_rsv_ruimte_van, 'dd-mm-yyyy') dag, TO_CHAR (res_rsv_ruimte_van, 'hh24:mi') tijd_van, TO_CHAR (res_rsv_ruimte_tot, 'hh24:mi') tijd_tot, l.alg_locatie_omschrijving locatie_omschrijving, g.alg_gebouw_naam gebouw, res_ruimte_nr ruimte, gastheer.prs_perslid_naam_full gastheer, res_rsv_ruimte_omschrijving omschrijving, titel.titel, po.omschrijving publieke_omschrijving, kwal_doelst.kwalitatieve_doelstelling, kwant_doelst.kwantitatieve_doelstelling, org.wie_organiseert, dg.doelgroep, vu.volks_uitgesproken, bo.bescheiden_ouderen, ge.gezellige_emptynesters, pr.plannen_rennen, gg.gewoon_gemiddeld, why.waarom_moeten_mensen_komen, spr.sprekers_onderw, begr.begroting_voor, krt.kaart_verkoop 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 = 141 AND ut.fac_usrtab_key = 4) 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 = 102) titel, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde omschrijving FROM res_kenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_kenmerk_key = 201) po, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde kwalitatieve_doelstelling FROM res_kenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_kenmerk_key = 5) kwal_doelst, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde kwantitatieve_doelstelling FROM res_kenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_kenmerk_key = 241) kwant_doelst, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde wie_organiseert FROM res_kenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_kenmerk_key = 42) org, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde doelgroep FROM res_kenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_kenmerk_key = 44) dg, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde waarom_moeten_mensen_komen FROM res_kenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_kenmerk_key = 46) why, (SELECT kw.res_rsv_ruimte_key, kw.res_kenmerkreservering_waarde sprekers_onderw FROM res_kenmerkwaarde kw, res_kenmerk k WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND k.res_kenmerk_key = 47) spr, (SELECT res_rsv_ruimte_key, ud.fac_usrdata_omschr begroting_voor, 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 = 9 AND ut.fac_usrtab_key = 5) begr, (SELECT res_rsv_ruimte_key, ud.fac_usrdata_omschr kaart_verkoop, 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 = 27 AND ut.fac_usrtab_key = 4) krt, (SELECT kw.res_rsv_ruimte_key, CASE WHEN kw.res_kenmerkreservering_waarde = 1 THEN 'Ja' ELSE 'Nee' END volks_uitgesproken FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND k.res_kenmerk_key = 541) vu, (SELECT kw.res_rsv_ruimte_key, CASE WHEN kw.res_kenmerkreservering_waarde = 1 THEN 'Ja' ELSE 'Nee' END bescheiden_ouderen FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND k.res_kenmerk_key = 561) bo, (SELECT kw.res_rsv_ruimte_key, CASE WHEN kw.res_kenmerkreservering_waarde = 1 THEN 'Ja' ELSE 'Nee' END gezellige_emptynesters FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND k.res_kenmerk_key = 581) ge, (SELECT kw.res_rsv_ruimte_key, CASE WHEN kw.res_kenmerkreservering_waarde = 1 THEN 'Ja' ELSE 'Nee' END plannen_rennen FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND k.res_kenmerk_key = 582) pr, (SELECT kw.res_rsv_ruimte_key, CASE WHEN kw.res_kenmerkreservering_waarde = 1 THEN 'Ja' ELSE 'Nee' END gewoon_gemiddeld FROM res_kenmerkwaarde kw, res_kenmerk k, res_srtkenmerk sk WHERE kw.res_kenmerk_key = k.res_kenmerk_key AND sk.res_srtkenmerk_key = k.res_srtkenmerk_key AND k.res_kenmerk_key = 583) gg 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 po.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND kwal_doelst.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND kwant_doelst.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND org.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND dg.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND why.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND spr.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND begr.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND krt.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND vu.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND bo.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND ge.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND pr.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key AND gg.res_rsv_ruimte_key(+) = rrr.res_rsv_ruimte_key) r, (SELECT m.res_rsv_ruimte_key, m.mld_melding_key evaluatienr, m.mld_melding_datum aanmaakdatum_evaluatie, COALESCE (mld.getmeldingstatusdate (m.mld_melding_key, 5), mld.getmeldingstatusdate (m.mld_melding_key, 1)) einddatum_evaluatie, kwant_ds.kwantitatieve_doelstelling_behaald, kwant_ds_toel.toelichting_kwantitatieve_doelstelling, kwal_ds.kwalitatieve_doelstelling_behaald, kwal_ds_toel.toelichting_kwalitatieve_doelstelling, fin_eindres.financieel_eindresultaat, aand.aandachtspunten, score.tevredenheidsscore, website.website_bezoeken, clicks_sm.aantal_clicks_social_media, clicks_nb.aantal_clicks_nieuwsbrief, persb.persbericht, flyer.flyer, betaalm.inzet_betaalmiddelen, enq.resultaten_enquete FROM mld_melding m, (SELECT km.mld_melding_key, ud.fac_usrdata_omschr kwantitatieve_doelstelling_behaald FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 43 AND ud.fac_usrdata_key = fac.safe_to_number (km.mld_kenmerkmelding_waarde)) kwant_ds, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde toelichting_kwantitatieve_doelstelling FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 44) kwant_ds_toel, (SELECT km.mld_melding_key, ud.fac_usrdata_omschr kwalitatieve_doelstelling_behaald FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 45 AND ud.fac_usrdata_key = fac.safe_to_number (km.mld_kenmerkmelding_waarde)) kwal_ds, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde toelichting_kwalitatieve_doelstelling FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 46) kwal_ds_toel, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde financieel_eindresultaat FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 47) fin_eindres, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde aandachtspunten FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 48) aand, (SELECT km.mld_melding_key, ud.fac_usrdata_omschr tevredenheidsscore FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 49 AND ud.fac_usrdata_key = fac.safe_to_number (km.mld_kenmerkmelding_waarde)) score, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde website_bezoeken FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 101) website, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde aantal_clicks_social_media FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 102) clicks_sm, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde aantal_clicks_nieuwsbrief FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 103) clicks_nb, (SELECT km.mld_melding_key, ud.fac_usrdata_omschr persbericht FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 104 AND ud.fac_usrdata_key = fac.safe_to_number (km.mld_kenmerkmelding_waarde)) persb, (SELECT km.mld_melding_key, ud.fac_usrdata_omschr flyer FROM mld_kenmerkmelding km, mld_kenmerk k, fac_usrdata ud WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 105 AND ud.fac_usrdata_key = fac.safe_to_number (km.mld_kenmerkmelding_waarde)) flyer, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde inzet_betaalmiddelen FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 106) betaalm, (SELECT km.mld_melding_key, km.mld_kenmerkmelding_waarde resultaten_enquete FROM mld_kenmerkmelding km, mld_kenmerk k WHERE km.mld_kenmerk_key = k.mld_kenmerk_key AND k.mld_kenmerk_key = 107) enq WHERE m.mld_melding_key = kwant_ds.mld_melding_key(+) AND m.mld_melding_key = kwant_ds_toel.mld_melding_key(+) AND m.mld_melding_key = kwal_ds.mld_melding_key(+) AND m.mld_melding_key = kwal_ds_toel.mld_melding_key(+) AND m.mld_melding_key = fin_eindres.mld_melding_key(+) AND m.mld_melding_key = aand.mld_melding_key(+) AND m.mld_melding_key = score.mld_melding_key(+) AND m.mld_melding_key = website.mld_melding_key(+) AND m.mld_melding_key = clicks_sm.mld_melding_key(+) AND m.mld_melding_key = clicks_nb.mld_melding_key(+) AND m.mld_melding_key = persb.mld_melding_key(+) AND m.mld_melding_key = flyer.mld_melding_key(+) AND m.mld_melding_key = betaalm.mld_melding_key(+) AND m.mld_melding_key = enq.mld_melding_key(+)) m WHERE m.res_rsv_ruimte_key(+) = r.res_rsv_ruimte_key; CREATE OR REPLACE VIEW FBEA_RAP_PLANBORD_SIDK ( USER_KEY, ITEM_KEY, LOCATIE, TITLE, VAN, TOT, URL, COLOR, STATUS, BEHANDELTEAM, VAKGROEP ) AS SELECT NULL user_key, m.mld_melding_key, ruimte, vg.mld_stdmelding_omschrijving || CHR (10) || 'Melding: ' || m.mld_melding_key || (CASE WHEN m.mld_melding_onderwerp IS NOT NULL THEN ' (' || m.mld_melding_onderwerp || ')' ELSE NULL END) || CHR (10) || omschrijving txt, TRUNC(m.mld_melding_actiedatum), TRUNC(m.mld_melding_actiedatum), '?u=melding' || CHR (38) || 'k=' || m.mld_melding_key url, CASE WHEN m.MLD_MELDING_STATUS = 5 THEN '#F26522' -- oranje ELSE '#02A528' -- groen END AS color, s.mld_statuses_omschrijving, bt.ins_discipline_omschrijving behandelteam, vg.vakgroep FROM mld_melding m, ins_tab_discipline bt, mld_statuses s, (SELECT sm.mld_stdmelding_key, sm.mld_stdmelding_omschrijving, vg.ins_discipline_omschrijving vakgroep FROM mld_stdmelding sm, ins_tab_discipline vg WHERE sm.mld_ins_discipline_key = vg.ins_discipline_key) vg, (SELECT rsv.res_rsv_ruimte_key, (SELECT g.alg_gebouw_naam 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 = r2r.alg_ruimte_key) || ' ' || r2r.ruimte_nr ruimte, 'Reservering: ' || res.res_reservering_key || '/' || rsv.res_rsv_ruimte_volgnr || CHR (10) || rsv.res_rsv_ruimte_omschrijving || CHR (10) || 'Contactpersoon: ' || (SELECT prs_perslid_naam_full FROM prs_v_perslid_fullnames_all pf WHERE pf.prs_perslid_key = rsv.res_rsv_ruimte_contact_key) omschrijving FROM res_v_aanwezigrsv_ruimte rsv, res_reservering res, res_activiteit ra, res_srtactiviteit rsa, ( SELECT res_rsv_ruimte_key, MAX (o.res_opstelling_omschrijving) opstelling, MAX (ro.res_ruimte_opstel_bezoekers) capaciteit, MAX (ra.alg_ruimte_key) alg_ruimte_key, MAX (rr.res_ruimte_nr) ruimte_nr FROM res_rsv_ruimte r, res_ruimte_opstelling ro, res_opstelling o, res_ruimte rr, res_alg_ruimte ra WHERE r.res_rsv_ruimte_verwijder IS NULL AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND ro.res_opstelling_key = o.res_opstelling_key AND rr.res_ruimte_key = ra.res_ruimte_key GROUP BY res_rsv_ruimte_key UNION ALL SELECT res_rsv_ruimte_key, '' opstelling, NULL capaciteit, 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) r2r WHERE r2r.res_rsv_ruimte_key = rsv.res_rsv_ruimte_key AND res.res_reservering_key = rsv.res_reservering_key AND rsv.res_activiteit_key = ra.res_activiteit_key AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key AND rsa.res_srtactiviteit_key = 30) reservering WHERE m.res_rsv_ruimte_key = reservering.res_rsv_ruimte_key(+) AND bt.ins_discipline_key = m.mld_ins_discipline_key AND vg.mld_stdmelding_key = m.mld_stdmelding_key AND s.mld_statuses_key = m.mld_melding_status; CREATE OR REPLACE VIEW FBEA_V_RAP_PLANNING AS SELECT alle_ruimten.datum, alle_ruimten.dag, (SELECT alg_gebouw_omschrijving 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 = alle_ruimten.alg_ruimte_key) gebouw, alle_ruimten.res_ruimte_nr, COALESCE (ROUND (aantallen.duur_res, 1), 0) tot_duur FROM ( SELECT MAX (ra.alg_ruimte_key) alg_ruimte_key, rr.res_ruimte_key, rr.res_ruimte_nr, datum, dag FROM res_ruimte rr, res_alg_ruimte ra, ( SELECT TRUNC (SYSDATE) + LEVEL - 1 AS datum, TO_CHAR (TRUNC (SYSDATE) + LEVEL - 1, 'DAY') dag FROM DUAL CONNECT BY LEVEL <= SYSDATE - SYSDATE + 365) d WHERE rr.res_discipline_key = 241 AND rr.res_ruimte_verwijder IS NULL AND rr.res_ruimte_key = ra.res_ruimte_key AND (rr.res_ruimte_vervaldatum > SYSDATE OR rr.res_ruimte_vervaldatum IS NULL) GROUP BY rr.res_ruimte_key, rr.res_ruimte_nr, datum, dag) alle_ruimten, ( SELECT d.dag, d.datum, r.res_ruimte_key, r.ruimte, SUM (r.duur) duur_res FROM (SELECT ur.datum, ur.datum_van, ur.datum_tot, ur.duur, ur.res_ruimte_key, ur.ruimte_nr ruimte, ur.key FROM (SELECT rrr.res_rsv_ruimte_key key, res.res_reservering_key || '/' || rrr.res_rsv_ruimte_volgnr reservering, rrr.res_rsv_ruimte_omschrijving, rrr.res_rsv_ruimte_aanmaak, r2a.ruimte_nr, r2a.res_ruimte_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) catalogus_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) catalogus, DECODE (rrr.alg_ruimte_key, NULL, 'Ja', 'Nee') reserveerbare_ruimte, TRUNC (rrr.res_rsv_ruimte_van) datum, rrr.res_rsv_ruimte_van datum_van, rrr.res_rsv_ruimte_tot datum_tot, COALESCE ( (rrr.res_rsv_ruimte_tot - rrr.res_rsv_ruimte_van) * 24, 0) duur, rrr.res_rsv_ruimte_opmerking FROM res_v_aanwezigrsv_ruimte rrr, res_activiteit ra, res_srtactiviteit rsa, res_reservering res, ( SELECT res_rsv_ruimte_key, MAX (o.res_opstelling_omschrijving) opstelling, MAX (ro.res_ruimte_opstel_bezoekers) capaciteit, MAX (ra.alg_ruimte_key) alg_ruimte_key, MAX (rr.res_ruimte_nr) ruimte_nr, MAX (ra.res_ruimte_key) res_ruimte_key FROM res_rsv_ruimte r, res_ruimte_opstelling ro, res_opstelling o, res_ruimte rr, res_alg_ruimte ra WHERE r.res_rsv_ruimte_verwijder IS NULL AND r.res_ruimte_opstel_key = ro.res_ruimte_opstel_key AND ro.res_ruimte_key = rr.res_ruimte_key AND ro.res_opstelling_key = o.res_opstelling_key AND rr.res_ruimte_key = ra.res_ruimte_key GROUP BY res_rsv_ruimte_key) r2a WHERE rrr.res_reservering_key = res.res_reservering_key AND rrr.res_rsv_ruimte_key = r2a.res_rsv_ruimte_key(+) AND rrr.res_activiteit_key = ra.res_activiteit_key AND ra.res_srtactiviteit_key = rsa.res_srtactiviteit_key) ur WHERE UPPER (ur.reserveerbare_ruimte) = 'JA' AND ur.catalogus_key = 241 AND ur.datum_van BETWEEN SYSDATE AND SYSDATE + 365) r, ( SELECT TRUNC (SYSDATE) + LEVEL - 1 AS datum, TO_CHAR (TRUNC (SYSDATE) + LEVEL - 1, 'DAY') dag FROM DUAL CONNECT BY LEVEL <= SYSDATE - SYSDATE + 365) d WHERE r.datum(+) = d.datum GROUP BY d.dag, d.datum, r.res_ruimte_key, r.ruimte ORDER BY datum) aantallen WHERE aantallen.datum(+) = alle_ruimten.datum AND aantallen.res_ruimte_key(+) = alle_ruimten.res_ruimte_key; CREATE OR REPLACE PROCEDURE FBEA_PRE_PUTORDERS AS BEGIN fbea_topdesk; END FBEA_PRE_PUTORDERS; / ------ 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