From 250ed303b7c580bcb4e93a7bafad9b4d610e9af9 Mon Sep 17 00:00:00 2001 From: Norbert Wassink Date: Tue, 26 Sep 2023 07:13:32 +0000 Subject: [PATCH] PROR#74299 -- Inrichten Prorail omgeving, NSecure notificatie svn path=/Customer/trunk/; revision=61891 --- PROR/PROR.sql | 248 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 210 insertions(+), 38 deletions(-) diff --git a/PROR/PROR.sql b/PROR/PROR.sql index 8c863969b..7a365492f 100644 --- a/PROR/PROR.sql +++ b/PROR/PROR.sql @@ -485,9 +485,21 @@ AS AND p.prs_perslid_key NOT IN (SELECT DISTINCT prs_perslid_key FROM prs_perslidkostenplaats pk); + CURSOR p_autgroep -- welke afas accounts hebben nog geen autgroep + IS + SELECT p.prs_perslid_key + FROM prs_perslid p, prs_kenmerklink kl, prs_kenmerk pk + WHERE p.prs_perslid_verwijder is null + AND pk.prs_kenmerk_upper='AFAS ACCOUNT' + AND kl.prs_kenmerk_key = pk.prs_kenmerk_key + AND kl.prs_link_key=p.prs_perslid_key + AND kl.prs_kenmerklink_waarde=1 + AND NOT EXISTS (SELECT 'x' + FROM fac_gebruikersgroep f + WHERE f.prs_perslid_key=p.prs_perslid_key); v_date DATE; - + v_defaultgroep NUMBER:=1; BEGIN prs.update_perslid (p_import_key, 'NR', 'A', 1); @@ -501,6 +513,15 @@ BEGIN LOOP pror.mandateer_prs(rec_man.prs_perslid_key); END LOOP; + + FOR rec2 IN p_autgroep + LOOP + INSERT INTO fac_gebruikersgroep(FAC_GROEP_KEY, prs_perslid_key) + VALUES(v_defaultgroep, rec2.prs_perslid_key); + END LOOP; + + + COMMIT; END; @@ -558,6 +579,84 @@ END; -- NOTIFICATIE VIEWS +-- Notificatie VIEW tbv opdracht updates die met NSecure zijn uitgewisseld +CREATE OR REPLACE VIEW pror_v_Nsecure_update +( + sender, + receiver, + code, + text, + key, + xkey, + xemail, + xmobile +) +AS + SELECT NULL sender, + NULL receiver, + 'CUST03' code, + 'Opdracht '||o.mld_melding_key||'/'||o.mld_opdr_bedrijfopdr_volgnr||' met NSecureNr '||ko.mld_kenmerkopdr_waarde||' is gewijzigd' text, + o.mld_opdr_key, + null xkey, + (SELECT b.prs_bedrijf_email + FROM prs_bedrijf b + WHERE b.prs_leverancier_nr ='313341' + AND b.prs_bedrijf_uitvoerende='1' + AND b.prs_bedrijf_verwijder IS NULL) xemail, + NULL xmobile + FROM mld_opdr o, mld_kenmerkopdr ko, mld_kenmerk km + WHERE o.mld_statusopdr_key IN (5,8) -- toegekend, geaccpeteerd + AND o.mld_uitvoerende_keys=(SELECT b.prs_bedrijf_key + FROM prs_bedrijf b + WHERE b.prs_leverancier_nr ='313341' + AND b.prs_bedrijf_uitvoerende='1' + AND b.prs_bedrijf_verwijder IS NULL) + AND ko.mld_opdr_key = o.MLD_OPDR_KEY + AND ko.mld_kenmerk_key = km.mld_kenmerk_key + AND km.mld_kenmerk_omschrijving='NSecure Nr' + AND LENGTH(ko.mld_kenmerkopdr_waarde)>2 + AND ( + ( o.mld_opdr_verzonden < (SELECT MAX(ft.fac_tracking_datum) + FROM fac_tracking ft + WHERE ft.fac_tracking_refkey=o.mld_opdr_key -- Alleen een update + AND ft.fac_srtnotificatie_key=80 + AND lower(ft.fac_tracking_oms) like '%gewijzigd%omschrijving%veranderd%' + AND ft.prs_perslid_key != 621) + AND (SELECT MAX(ft.fac_tracking_datum) + FROM fac_tracking ft + WHERE ft.fac_tracking_refkey=o.mld_opdr_key -- Alleen een update + AND ft.fac_srtnotificatie_key=80 + AND lower(ft.fac_tracking_oms) like '%gewijzigd%omschrijving%veranderd%' + AND ft.prs_perslid_key != 621) + > + COALESCE((SELECT MAX(ft.fac_tracking_datum) + FROM fac_tracking ft + WHERE ft.fac_tracking_refkey=o.mld_opdr_key -- Alleen een update + AND ft.fac_srtnotificatie_key=220 -- ORDTRL + AND LOWER(ft.fac_tracking_oms) like '%cust03%' + AND ft.prs_perslid_key != 621), o.mld_opdr_verzonden) + ) + OR + ( o.mld_opdr_verzonden < (SELECT MAX(mld_opdr_note_aanmaak) + FROM mld_opdr_note + WHERE mld_opdr_key=o.mld_opdr_key + AND mld_opdr_note_flag in (4,5)) + AND (SELECT MAX(mld_opdr_note_aanmaak) + FROM mld_opdr_note + WHERE mld_opdr_key=o.mld_opdr_key + AND mld_opdr_note_flag in (4,5)) + > + COALESCE((SELECT MAX(ft.fac_tracking_datum) + FROM fac_tracking ft + WHERE ft.fac_tracking_refkey=o.mld_opdr_key -- Alleen een update + AND ft.fac_srtnotificatie_key=220 -- ORDTRL + AND LOWER(ft.fac_tracking_oms) like '%cust03%' + AND ft.prs_perslid_key != 621), o.mld_opdr_verzonden) + ) + ); + + + -- Noifictaie View tbv te late annulering outlook reservereing inc catering CREATE OR REPLACE VIEW pror_v_outl_cat_annu ( @@ -573,29 +672,45 @@ CREATE OR REPLACE VIEW pror_v_outl_cat_annu xkey ) AS - SELECT DISTINCT rrr.res_reservering_key||'/'||rrr.RES_RSV_RUIMTE_VOLGNR reserveringNr, - rrr.res_reservering_key key, - 'CUST02' cust_code, - 'Reservering '||rrr.res_reservering_key||'/'||rrr.RES_RSV_RUIMTE_VOLGNR||' op '|| TO_CHAR(rrr.res_rsv_ruimte_van,'DD-MM-YYYY HH24:MI')||' is verwijderd buiten anullerings horizon.' text, - (SElECT p.prs_perslid_naam_friendly - FROM prs_v_perslid_fullnames_all p - WHERE p.prs_perslid_key= rrr.RES_RSV_RUIMTE_HOST_KEY) gastheer, - null receiver, - NULL sender, - --'norbert.wassink@facilitor.nl' xemail, - 'cateringmanagerprorail@prorail.nl' xemail, - NULL xmobile, - rrr.res_rsv_ruimte_key xkey - FROM res_rsv_ruimte rrr, res_rsv_artikel rra - WHERE rrr.res_rsv_ruimte_verwijder IS NOT NULL - AND rrr.res_rsv_ruimte_externnr IS NOT NULL - AND rrr.res_status_fo_key=4 - AND rra.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key - AND NOT EXISTS (SElECT * - FROM fac_tracking ft - WHERE fac_tracking_refkey=rrr.res_rsv_ruimte_key - AND ft.fac_srtnotificatie_key=223 - AND ft.fac_tracking_oms LIKE '%CUST02%'); + SELECT DISTINCT res_reservering_key||'/'||RES_RSV_RUIMTE_VOLGNR reserveringNr, + res_reservering_key key, + 'CUST02' cust_code, + 'Reservering '||res_reservering_key||'/'||RES_RSV_RUIMTE_VOLGNR||' op '|| TO_CHAR(leverdatum,'DD-MM-YYYY HH24:MI')||' is verwijderd buiten anullerings horizon.' text, + (SElECT p.prs_perslid_naam_friendly + FROM prs_v_perslid_fullnames_all p + WHERE p.prs_perslid_key= gastheer_key) gastheer, + NULL receiver, + NULL sender, + 'cateringmanagerprorail@prorail.nl' xemail, + NULL xmobile, + res_rsv_ruimte_key xkey + FROM (SElECT r.*, + (SELECT MAX(rdp.res_disc_params_cancel_dagen) annuleer_dagen + FROM res_rsv_artikel rra, res_artikel ra, res_discipline rd, res_disc_params rdp + WHERE res_rsv_ruimte_key = r.res_rsv_ruimte_key + AND ra.RES_ARTIKEL_KEY = rra.RES_ARTIKEL_KEY + AND ra.RES_DISCIPLINE_KEY = rd.INS_DISCIPLINE_KEY + AND rdp.res_INS_DISCIPLINE_KEY=rd.INS_DISCIPLINE_KEY) annuleer_dagen + FROM (SELECT DISTINCT + res.res_rsv_ruimte_key res_rsv_ruimte_key, + res.res_reservering_key res_reservering_key, + res.res_rsv_ruimte_volgnr res_rsv_ruimte_volgnr, + res.RES_RSV_RUIMTE_HOST_KEY gastheer_key, + res.res_rsv_ruimte_verwijder datum_verwijder, + fac.safe_to_date ( + TO_CHAR (res.res_rsv_ruimte_van, 'DD-MM-YYYY')||' 12:00', + 'DD-MM-YYYY HH24:MI') leverdatum + FROM res_rsv_ruimte res, res_rsv_artikel rra + WHERE res.res_rsv_ruimte_verwijder IS NOT NULL + AND res.res_rsv_ruimte_externnr IS NOT NULL + AND res.res_status_fo_key=4 + AND rra.RES_RSV_RUIMTE_KEY=res.RES_RSV_RUIMTE_KEY) r) + WHERE datum_verwijder> leverdatum - annuleer_dagen + AND NOT EXISTS (SElECT * + FROM fac_tracking ft + WHERE fac_tracking_refkey=res_rsv_ruimte_key + AND ft.fac_srtnotificatie_key=223 + AND ft.fac_tracking_oms LIKE '%CUST02%') -- Noifictaie View tbv reservereing gedaan door contact<>host @@ -1357,10 +1472,22 @@ AS p.prs_perslid_email email, k.prs_kostenplaats_key, k.prs_kostenplaats_nr kostenplaats, - k.prs_kostenplaats_omschrijving, + k.prs_kostenplaats_omschrijving, + COALESCE ( + (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_verdieping_code||'-'||alg_ruimte_nr + FROM alg_v_ruimte_gegevens alg + WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), + (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_verdieping_code||'-'||MIN(alg.alg_ruimte_nr) + FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg + WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key + AND rr.res_ruimte_key = rro.res_ruimte_key + AND rarm.res_ruimte_key = rr.res_ruimte_key + AND rarm.res_alg_ruimte_verwijder IS NULL + AND alg.alg_ruimte_key = rarm.alg_ruimte_key + GROUP BY alg_locatie_code,alg_gebouw_upper,alg_verdieping_code)) loc_gb_ruimtenr, COALESCE ( (SELECT alg_ruimte_nr - FROM alg_v_allonrgoed_gegevens alg + FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg @@ -1369,7 +1496,8 @@ AS AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr, - ra.res_artikel_groep soort_locatie + ra.res_artikel_groep soort_locatie, + rrr.res_activiteit_key activiteit_key FROM res_rsv_artikel rra, res_artikel ra, res_rsv_ruimte rrr, @@ -1384,7 +1512,11 @@ AS AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key AND rra.res_rsv_artikel_verwijder IS NULL AND rrr.res_rsv_ruimte_verwijder IS NULL - AND rrr.res_rsv_ruimte_externsyncdate IS NULL + AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw.RES_RSV_RUIMTE_KEY FROM res_kenmerkwaarde rkw, res_kenmerk rk + WHERE rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY + AND rk.RES_KENMERK_KEY = rkw.RES_KENMERK_KEY + AND rk.RES_KENMERK_OMSCHRIJVING='ExternSyncDatum') + -- AND rrr.res_rsv_ruimte_externsyncdate IS NULL KUNNEN WE NIET GEBRUIKEN AANGEZIEN DE OUTLOOK KOPPELING DEZE GEBRUIKT UNION -- alle bezrogde reserveringn SELECT distinct rra.res_rsv_ruimte_key rrr_key, rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr reservering, @@ -1401,10 +1533,22 @@ AS k.prs_kostenplaats_nr kostenplaats, k.prs_kostenplaats_omschrijving, -- b.prs_bedrijf_key, - -- b.prs_overeenkomst_nr, + -- b.prs_overeenkomst_nr, + COALESCE ( + (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_verdieping_code||'-'||alg_ruimte_nr + FROM alg_v_ruimte_gegevens alg + WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), + (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_verdieping_code||'-'||MIN(alg.alg_ruimte_nr) + FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg + WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key + AND rr.res_ruimte_key = rro.res_ruimte_key + AND rarm.res_ruimte_key = rr.res_ruimte_key + AND rarm.res_alg_ruimte_verwijder IS NULL + AND alg.alg_ruimte_key = rarm.alg_ruimte_key + GROUP BY alg_locatie_code,alg_gebouw_upper,alg_verdieping_code)) loc_gb_ruimtenr, COALESCE ( (SELECT alg_ruimte_nr - FROM alg_v_allonrgoed_gegevens alg + FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg @@ -1413,7 +1557,8 @@ AS AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr, - ra.res_artikel_groep soort_locatie + ra.res_artikel_groep soort_locatie, + rrr.res_activiteit_key activiteit_key FROM res_rsv_artikel rra, res_artikel ra, res_rsv_ruimte rrr, @@ -1426,7 +1571,11 @@ AS AND rrr.res_status_fo_key = 2 -- vervallen en te laat uit outllok afgemeld AND rrr.res_rsv_ruimte_cvab_mode IS NOT NULL -- vervallen en te laat uit outllok afgemeld AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key - AND rrr.res_rsv_ruimte_externsyncdate IS NULL + AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw.RES_RSV_RUIMTE_KEY FROM res_kenmerkwaarde rkw, res_kenmerk rk + WHERE rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY + AND rk.RES_KENMERK_KEY = rkw.RES_KENMERK_KEY + AND rk.RES_KENMERK_OMSCHRIJVING='ExternSyncDatum') + -- AND rrr.res_rsv_ruimte_externsyncdate IS NULL UNION -- alle te laat verwijderde outlook reservereingen met catering SELECT distinct rra.res_rsv_ruimte_key rrr_key, rrr.res_reservering_key||'/'||rrr.res_rsv_ruimte_volgnr reservering, @@ -1440,9 +1589,21 @@ AS k.prs_kostenplaats_key, k.prs_kostenplaats_nr kostenplaats, k.prs_kostenplaats_omschrijving, + COALESCE ( + (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_verdieping_code||'-'||alg_ruimte_nr + FROM alg_v_ruimte_gegevens alg + WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), + (SELECT alg_locatie_code||'-'||alg_gebouw_upper||'-'||alg_verdieping_code||'-'||MIN(alg.alg_ruimte_nr) + FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg + WHERE rrr.res_ruimte_opstel_key = rro.res_ruimte_opstel_key + AND rr.res_ruimte_key = rro.res_ruimte_key + AND rarm.res_ruimte_key = rr.res_ruimte_key + AND rarm.res_alg_ruimte_verwijder IS NULL + AND alg.alg_ruimte_key = rarm.alg_ruimte_key + GROUP BY alg_locatie_code,alg_gebouw_upper,alg_verdieping_code)) loc_gb_ruimtenr, COALESCE ( (SELECT alg_ruimte_nr - FROM alg_v_allonrgoed_gegevens alg + FROM alg_v_ruimte_gegevens alg WHERE alg.alg_ruimte_key=rrr.alg_ruimte_key), (SELECT MIN(alg.alg_ruimte_nr) FROM res_ruimte_opstelling rro, res_ruimte rr, res_alg_ruimte rarm, alg_v_ruimte_gegevens_all alg @@ -1451,7 +1612,8 @@ AS AND rarm.res_ruimte_key = rr.res_ruimte_key AND rarm.res_alg_ruimte_verwijder IS NULL AND alg.alg_ruimte_key = rarm.alg_ruimte_key)) ruimtenr, - ra.res_artikel_groep soort_locatie + ra.res_artikel_groep soort_locatie, + rrr.res_activiteit_key activiteit_key FROM res_rsv_artikel rra, res_artikel ra, res_rsv_ruimte rrr, @@ -1465,7 +1627,11 @@ AS AND rrr.res_status_bo_key = 2 -- vervallen en te laat uit outllok afgemeld AND p.prs_perslid_key=rrr.res_rsv_ruimte_contact_key AND rrr.res_rsv_ruimte_externnr IS NOT NULL - AND rrr.res_rsv_ruimte_externsyncdate IS NULL + -- AND rrr.res_rsv_ruimte_externsyncdate IS NULL + AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw.RES_RSV_RUIMTE_KEY FROM res_kenmerkwaarde rkw, res_kenmerk rk + WHERE rkw.RES_RSV_RUIMTE_KEY = rrr.RES_RSV_RUIMTE_KEY + AND rk.RES_KENMERK_KEY = rkw.RES_KENMERK_KEY + AND rk.RES_KENMERK_OMSCHRIJVING='ExternSyncDatum') AND rrr.res_rsv_ruimte_key NOT IN (SELECT rkw.res_rsv_ruimte_key -- deze zijn door kenmerk uitgesloten van facturatie (aangegeven door cateraar) FROM res_kenmerkwaarde rkw, res_kenmerk rk WHERE rkw.res_rsv_ruimte_key = rrr.res_rsv_ruimte_key @@ -1483,7 +1649,10 @@ AS SELECT p.*, (SELECT alg.alg_gebouw_code FROM alg_v_allonrgoed_gegevens alg - WHERE alg.alg_ruimte_nr=p.ruimtenr) gebouw_code + WHERE alg.alg_ruimte_nr=p.ruimtenr) gebouw_code, + (SELECT k.res_kenmerk_key from res_kenmerk k + WHERE k.res_kenmerk_omschrijving='ExternSyncDatum' + AND k.res_activiteit_key = p.activiteit_key) kenmerk_sync_key FROM PROR_V_SELECT_EUREST_CAT p WHERE TO_CHAR(p.van,'MM')=TO_CHAR(ADD_MONTHS(SYSDATE,-1),'MM'); @@ -1567,7 +1736,7 @@ BEGIN pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'Reference', rec.gebouw_code); pror.add_xml_row(v_bestand, ''); - pror.add_xml_element (v_bestand, 'Description',rec.ruimteNr); + pror.add_xml_element (v_bestand, 'Description',rec.loc_gb_ruimtenr); pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); pror.add_xml_element (v_bestand, 'RequestedDeliveryDateTime',to_char(rec.van,'YYYYMMDD')||'T'||to_char(rec.van,'HH24:MI:SS')); @@ -1609,7 +1778,10 @@ BEGIN END LOOP; pror.add_xml_row(v_bestand, ''); pror.add_xml_row(v_bestand, ''); - UPDATE res_rsv_ruimte SET res_rsv_ruimte_externsyncdate=SYSDATE WHERE res_rsv_ruimte_key=rec.rrr_key; + + flx.setflex('RES',rec.kenmerk_sync_key,rec.rrr_key,TO_CHAR(TRUNC(SYSDATE),'DD-MM-YYYY')); + + -- UPDATE res_rsv_ruimte SET res_rsv_ruimte_externsyncdate=SYSDATE WHERE res_rsv_ruimte_key=rec.rrr_key; END LOOP; pror.add_xml_row (v_bestand, ''); pror.add_xml_row (v_bestand, '');