diff --git a/BLOS/blos.sql b/BLOS/blos.sql index 04046e396..9faa05b8f 100644 --- a/BLOS/blos.sql +++ b/BLOS/blos.sql @@ -529,72 +529,169 @@ AS CREATE OR REPLACE VIEW blos_v_rap_opdrachten_intern ( - type, -- Uit Intern bedrijf gekoppeld (=TD BLOS = Poule-opdracht) of via MLDORD aan Persoon / Handyman = Klus-opdracht) - mld_opdr_key, - mld_uitvoerende_key, - opdrachtnr, - opdracht_datum, - status, - melding, - behandelaar, - locatie_plaats, - locatie_omschrijving, - geplande_aanvang, - omschrijving, - prs_perslid_key, - naam_uitvoerder, - cluster_blos, - type_locatie, - uren_besteed, - afmeld_datum, - opdracht_type + TYPE, + MLD_OPDR_KEY, + MLD_UITVOERENDE_KEY, + OPDRACHTNR, + OPDRACHT_DATUM, + STATUS, + MELDING, + BEHANDELAAR, + LOCATIE_PLAATS, + LOCATIE_OMSCHRIJVING, + GEPLANDE_AANVANG, + OMSCHRIJVING, + PRS_PERSLID_KEY, + NAAM_UITVOERDER, + CLUSTER_BLOS, + TYPE_LOCATIE, + UREN_BESTEED, + AFMELD_DATUM, + OPDRACHT_TYPE ) AS - SELECT CASE WHEN mu.type = 'B' THEN 'Poule-opdracht' - WHEN mu.type = 'P' THEN 'Klus-opdracht' - ELSE '' END - type, - o.mld_opdr_key, - CASE WHEN mu.type = 'B' THEN o.prs_perslid_key - WHEN mu.type = 'P' THEN mu.mld_uitvoerende_key - ELSE NULL END - mld_uitvoerende_key, - TO_CHAR (o.mld_melding_key) || '/' || o.mld_opdr_bedrijfopdr_volgnr - opdrachtnummer, - o.mld_opdr_datumbegin, - DECODE (os.mld_statusopdr_key, 8, DECODE (o.mld_opdr_halted, 1, 'Onderbroken', os.mld_statusopdr_omschrijving), os.mld_statusopdr_omschrijving) status, - std.mld_stdmelding_omschrijving, - COALESCE(p.prs_perslid_naam_full,''), -- BEHANDELAAR - l.alg_locatie_plaats, - l.alg_locatie_omschrijving, - o.mld_opdr_plandatum, - TRIM(regexp_replace(regexp_substr(o.mld_opdr_omschrijving, '(([^ ]*)( |$)*){10}'), '[[:space:]]',' ')) || '...', - p.prs_perslid_key, - mu.naam, - (select ud.fac_usrdata_omschr from alg_onrgoedkenmerk k, fac_usrdata ud where k.alg_onrgoed_key = m.mld_alg_locatie_key and fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key and ud.fac_usrtab_key=1 and k.alg_kenmerk_key = 1000), -- kenmerk Cluster - (select ud.fac_usrdata_omschr from alg_onrgoedkenmerk k, fac_usrdata ud where k.alg_onrgoed_key = m.mld_alg_locatie_key and fac.safe_to_number(k.alg_onrgoedkenmerk_waarde) = ud.fac_usrdata_key and ud.fac_usrtab_key=2 and k.alg_kenmerk_key = 1002), -- kenmerk Type KDV, BVO, et. - (select ko.mld_kenmerkopdr_waarde from mld_kenmerkopdr ko where ko.mld_opdr_key = o.mld_opdr_key and ko.mld_kenmerk_key = 25), -- kenmerk Uren_besteed - (select max(ft.fac_tracking_datum) from fac_tracking ft where ft.fac_tracking_refkey = o.mld_opdr_key and ft.fac_srtnotificatie_key = 74), -- MLDAFM - ot.mld_typeopdr_omschrijving - FROM mld_opdr o, - mld_melding m, - mld_typeopdr ot, - prs_v_perslid_fullnames p, - ins_tab_discipline d, - mld_stdmelding std, - alg_locatie l, - mld_v_uitvoerende mu, - mld_statusopdr os - WHERE o.mld_melding_key = m.mld_melding_key(+) - AND o.prs_perslid_key = p.prs_perslid_key(+) - AND o.mld_typeopdr_key = ot.mld_typeopdr_key - AND ot.mld_typeopdr_isofferte = 0 -- Alleen werkopdrachten - AND m.mld_stdmelding_key = std.mld_stdmelding_key(+) - AND std.mld_ins_discipline_key = d.ins_discipline_key(+) - AND m.mld_alg_locatie_key = l.alg_locatie_key -- alle std-meldingen hebben verplicht-niveau locatie - AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key - AND os.mld_statusopdr_key = o.mld_statusopdr_key - AND mu.intern = 1 ; + SELECT CASE + WHEN mu.TYPE = 'B' THEN 'Poule-opdracht' + WHEN mu.TYPE = 'P' THEN 'Klus-opdracht' + ELSE '' + END + TYPE, + o.mld_opdr_key, + CASE + WHEN mu.TYPE = 'B' THEN o.prs_perslid_key + WHEN mu.TYPE = 'P' THEN mu.mld_uitvoerende_key + ELSE NULL + END + mld_uitvoerende_key, + TO_CHAR (o.mld_melding_key) + || '/' + || o.mld_opdr_bedrijfopdr_volgnr + opdrachtnummer, + o.mld_opdr_datumbegin, + DECODE ( + os.mld_statusopdr_key, + 8, DECODE (o.mld_opdr_halted, + 1, 'Onderbroken', + os.mld_statusopdr_omschrijving), + os.mld_statusopdr_omschrijving) + status, + std.mld_stdmelding_omschrijving, + COALESCE (p.prs_perslid_naam_full, ''), -- BEHANDELAAR + l.alg_locatie_plaats, + l.alg_locatie_omschrijving, + o.mld_opdr_plandatum, + TRIM ( + REGEXP_REPLACE ( + REGEXP_SUBSTR (o.mld_opdr_omschrijving, + '(([^ ]*)( |$)*){10}'), + '[[:space:]]', + ' ')) + || '...', + p.prs_perslid_key, + mu.naam, + (SELECT ud.fac_usrdata_omschr + FROM alg_onrgoedkenmerk k, fac_usrdata ud + WHERE k.alg_onrgoed_key = m.mld_alg_locatie_key + AND fac.safe_to_number (k.alg_onrgoedkenmerk_waarde) = + ud.fac_usrdata_key + AND ud.fac_usrtab_key = 1 + AND k.alg_kenmerk_key = 1000), -- kenmerk Cluster + (SELECT ud.fac_usrdata_omschr + FROM alg_onrgoedkenmerk k, fac_usrdata ud + WHERE k.alg_onrgoed_key = m.mld_alg_locatie_key + AND fac.safe_to_number (k.alg_onrgoedkenmerk_waarde) = + ud.fac_usrdata_key + AND ud.fac_usrtab_key = 2 + AND k.alg_kenmerk_key = 1002), -- kenmerk Type KDV, BVO, et. + (SELECT ko.mld_kenmerkopdr_waarde + FROM mld_kenmerkopdr ko + WHERE ko.mld_opdr_key = o.mld_opdr_key + AND ko.mld_kenmerk_key = 25), -- kenmerk Uren_besteed + (SELECT MAX (ft.fac_tracking_datum) + FROM fac_tracking ft + WHERE ft.fac_tracking_refkey = o.mld_opdr_key + AND ft.fac_srtnotificatie_key = 74), -- MLDAFM + ot.mld_typeopdr_omschrijving + FROM mld_opdr o, + mld_melding m, + mld_typeopdr ot, + prs_v_perslid_fullnames p, + ins_tab_discipline d, + mld_stdmelding std, + alg_locatie l, + mld_v_uitvoerende mu, + mld_statusopdr os + WHERE o.mld_melding_key = m.mld_melding_key(+) + AND o.prs_perslid_key = p.prs_perslid_key(+) + AND o.mld_typeopdr_key = ot.mld_typeopdr_key + AND ot.mld_typeopdr_isofferte = 0 -- Alleen werkopdrachten + AND m.mld_stdmelding_key = std.mld_stdmelding_key(+) + AND std.mld_ins_discipline_key = d.ins_discipline_key(+) + AND m.mld_alg_locatie_key = l.alg_locatie_key -- alle std-meldingen hebben verplicht-niveau locatie + AND o.mld_uitvoerende_keys = mu.mld_uitvoerende_key + AND os.mld_statusopdr_key = o.mld_statusopdr_key + AND mu.intern = 1; + +-- Notificactiejob voor BLOS vanuit Opdrachten Notities met bepaalde notitie-classificatie voor servicedesk... +-- Flag = 16 (en geen +1 xemail, xmobile) +CREATE OR REPLACE VIEW BLOS_V_NOTI_SERVICEDESK_ORD -- ORD = Orders/Opdrachten +( + SENDER, + RECEIVER, + TEXT, + CODE, + FAC_SRTNOTIFICATIE_KEY, + KEY, + XKEY + -- XEMAIL, + -- XMOBILE +) +AS + SELECT (SELECT prs_perslid_key + FROM prs_perslid + WHERE prs_perslid_upper = 'FACILITOR') + sender, + 241 -- prs_perslid van persoon Facilitairbeheer Onderhoud met juiste emailadres facilitairbeheer@blos.nl + receiver, + 'Opdrachtnotitie bij ' || TO_CHAR(o.mld_melding_key) || '/' || TO_CHAR (o.mld_opdr_bedrijfopdr_volgnr) || + ' van ' || p.prs_perslid_voornaam || ' ' || p.prs_perslid_naam + text, + 'CUST02' + code, + (SELECT fac_srtnotificatie_key + FROM fac_srtnotificatie + WHERE fac_srtnotificatie_code = 'CUST02') + fac_srtnotificatie_key, + o.mld_opdr_key + key, + n.mld_opdr_note_key + xkey + FROM mld_melding m, + mld_opdr o, + mld_opdr_note n, + prs_perslid p, + fac_note_group ng + WHERE o.mld_opdr_key = n.mld_opdr_key + AND m.mld_melding_key = o.mld_melding_key + AND n.prs_perslid_key = p.prs_perslid_key + AND n.fac_note_group_key = ng.fac_note_group_key + AND ng.fac_note_group_key = 1 -- 'Notitie voor Facilitair' + AND n.prs_perslid_key NOT IN + (SELECT gg.prs_perslid_key + FROM fac_gebruikersgroep gg, fac_groep g + WHERE gg.fac_groep_key = g.fac_groep_key + AND g.fac_groep_key = 21) -- Servicedesk - Operationeel + AND n.mld_opdr_note_aanmaak >= + COALESCE ( + ( SELECT MAX (ft.fac_tracking_datum) + FROM fac_tracking ft, fac_srtnotificatie sn + WHERE ft.fac_srtnotificatie_key = sn.fac_srtnotificatie_key + AND sn.fac_srtnotificatie_xmlnode = 'opdracht' + AND sn.fac_srtnotificatie_code = 'CUST02'), + SYSDATE - (SELECT COALESCE (fac_notificatie_job_interval, 1) / 24 + FROM fac_notificatie_job + WHERE fac_notificatie_job_view = 'BLOS_V_NOTI_SERVICEDESK_ORD' ) + ) ; ------ payload end ------